Ansible之playbook原理
阿新 • • 發佈:2020-10-07
PlayBook即"劇本","兵書"之意,PlayBook是由以下部分組成的
play(host): 定義的是主機的角色。(主角還是配角)
Book(task): 定義的是具體執行的任務。(角色的臺詞和動作)
playbook: 由一個或多個play(角色)組成,一個play(角色)可以包含多個task(臺詞,動作)。
簡單理解為: 對不同的主機使用很多不同的模組做很多工作完成一件事情
在Ansible中"劇本檔案"是以yml結尾的檔案。
在SaltStack中"劇本檔案"是以sls結尾的檔案。
但是語法,使用的都是yaml語法
[root@m01 ~]# vim touch.yml
#指定執行動作的主機組
- hosts: web_group
#指定遠端操作的使用者
remote_user: root
#開始定義變數
vars:
file_name: lhd
#指定動作
tasks:
#註釋:說明這個動作
- name: 建立檔案
#指定shell模組建立一個檔案
shell: touch /tmp/{{ file_name }}
#執行前檢查語法
[root@m01 ~]# ansible-playbook --syntax-check touch.yml
playbook: touch.yml
#該命令,只能檢查語法,無法驗證邏輯
完整性 | √ | ✘ |
---|---|---|
永續性 | √ | ✘ |
特點 | PlayBook | ad-hoc |
執行效率 | 低 | 高 |
變數 | 支援 | 不支援 |
耦合度 | 低 | 高 |
1.PlayBook功能比ad-hoc更全,是對ad-hoc的一種編排.
2.PlayBook能很好的控制先後執行順序, 以及依賴關係.
3.PlayBook語法展現更加的直觀.
4.playbook可以持久使用,ad-hoc無法持久使用.