理解 Ansible 执行流程

理解 Ansible 执行流程

我已经完成了 ansible+vagrant 集成,这里http:localhost:8080。Playbook 安装了我指示的所有内容。按照指示进行每个文件修改。但是当我使用或检查本地机器时,http://127.0.0.1:8080它从不适用于 index.php 文件。它总是下载文件。因此,为了让它正常工作,我必须登录 vagrant box 并点击以下命令到服务器以提供 php 页面。

sudo service nginx restart
sudo service php7.0-fpm restart

我已经定义了一个用于重新启动服务的处理程序,如下所示。

- name: "restart services"
  service: >
    name= "{{ item }}"
    state=restarted
  with_items:
    - nginx
    - php7.0-fpm

我有一个需要应用程序 git clone 的任务。如下所示。

- name: Application git clone
  git: 
    repo: https://github.com/shaileshsutar88/deploy.git
    dest: /var/www/html
  notify:
    - restart services

我不确定我在这里做错了什么,或者我是否遗漏了什么。否则,我想了解有关 ansible 执行流程的更多信息。当我使用 verbose 检查 ansible 执行时,它显示 ok,这意味着处理程序未运行。我想知道为什么它没有运行处理程序,因为我是在 git clone 应用程序之后调用它的。

RUNNING HANDLER [web : restart services] ***************************************
ok: [web] => (item=nginx) => {"changed": false, "failed": false, "item": "nginx", "name": "", "status": {}}
ok: [web] => (item=php7.0-fpm) => {"changed": false, "failed": false, "item": "php7.0-fpm", "name": "", "status": {}}

答案1

如果您的 NGINX 开始下载文件,这通常意味着您的 PHP 处理程序配置错误。您是否尝试创建一个 robots.txt 并尝试打开它?应该可以正常工作,无需下载。

正如 Konstantin 昨天提到的,您应该使用处理程序。我读了您的 github repo,发现您定义了一个“重新加载服务”处理程序,但从未使用过它(或者至少我没有看到它)

您需要这样做:

  - 名称:写入 apache 配置文件
    模板:
      源:/srv/httpd.j2
      目标:/etc/httpd.conf
    通知:
      - 重新加载服务

相关内容