![理解 Ansible 执行流程](https://linux22.com/image/714385/%E7%90%86%E8%A7%A3%20Ansible%20%E6%89%A7%E8%A1%8C%E6%B5%81%E7%A8%8B.png)
我已经完成了 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 通知: - 重新加载服务