標籤:RoCE and 修改 定義 copy term 調用 多次 圖片
Handlers介紹:
- Handlers也是一些task的列表,和一般的task並沒有什麼區別。是由通知者進行的notify,如果沒有被notify,則Handlers不會執行,假如被notify了,則Handlers被執行;
- 不管有多少個通知者進行了notify,等到play中的所有task執行完成之後,handlers也只會被執行一次
- “notify”這個action可用於在每個play的最後被觸發,這樣可以避免多次有改變發生時每次都執行指定的操作,取而代之,僅在所有的變化發生完成後一次性地執行指定操作。在notify中列出的操作稱為handler,也即notify中調用handler中定義的操作。
通過部署一個實驗來看一下:
- 實驗項目:通過ansible劇本對被管理端進行部署httpd服務,並且修改設定檔,啟動服務。
- 實驗環境:
| 主機 |
作業系統 |
IP地址 |
組 |
| ansible管理端 |
Centos7 |
192.168.72.128 |
/ |
| ansible被管理端 |
Centos7 |
192.168.72.155 |
webserver |
| ansible被管理端 |
Centos7 |
192.168.72.156 |
mysql |
1.現在管理端安裝Apache,提取其設定檔作為模板: * yum install -y httpd * cp /etc/httpd/conf/httpd.conf /opt/httpd.conf.j2
2.修改HTTP設定檔範本: * vim /opt/httpd.conf.j2
3.修改ansible的hosts檔案 * vim /etc/ansible/hosts
4.編寫一個劇本:* vim /opt/httpd.yml- hosts: webserver remote_user: root vars: #定義變數 - package: httpd - server: httpd tasks: #任務 - name: installed apache yum: name={{package}} state=latest #調用變數 - name: copy httpd temp template: src=/opt/httpd.conf.j2 dest=/etc/httpd/conf/httpd.conf #模板路徑和目標路徑 notify: #調用參數handlers - restart httpd - name: start httpd service: name={{server}} enabled=true state=started handlers: #被notify調用的參數 - name: restart httpd service: name={{server}} state=restarted
5.執行ansible-play劇本:
6.被控制端檢查:
Ansible自動化營運之Playbook詳解及體驗(二)