Linux

理解 ansible 執行流程

  • December 6, 2017

我已經完成了我的 ansible+vagrant 集成,在這裡。Playbook 安裝了我指示的所有內容。按照指示進行每個文件修改。但是當我檢查我的本地機器時http:localhost:8080http://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 執行流程的資訊。當我用詳細檢查 ansible 執行時,它說好的,這意味著處理程序沒有執行。我想知道為什麼它沒有執行處理程序,因為我在我的應用程序的 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": {}}

如果您的 NGINX 開始下載文件,這通常意味著您的 PHP 處理程序配置錯誤。例如,您是否嘗試創建 robots.txt 並嘗試打開它?無需下載即可使用。

正如康斯坦丁昨天提到的,你應該使用處理程序。我閱讀了您的 github 儲存庫並看到您定義了一個“重新載入服務”處理程序,但從未使用過它(或者至少我沒有看到它)

你需要這樣做:

- 名稱:編寫 apache 配置文件
模板:
原始碼:/srv/httpd.j2
目標:/etc/httpd.conf
通知:
- 重新載入服務

引用自:https://serverfault.com/questions/886462