1. 程式人生 > 實用技巧 >Ansible之playbook原理

Ansible之playbook原理

1.什麼是playbook

PlayBook即"劇本""兵書"之意,PlayBook是由以下部分組成的

play(host): 定義的是主機的角色。(主角還是配角)
Book(task): 定義的是具體執行的任務。(角色的臺詞和動作)
playbook: 由一個或多個play(角色)組成,一個play(角色)可以包含多個task(臺詞,動作)。

簡單理解為: 對不同的主機使用很多不同的模組做很多工作完成一件事情

在Ansible中"劇本檔案"是以yml結尾的檔案。
在SaltStack中"劇本檔案"是以sls結尾的檔案。
但是語法,使用的都是yaml語法

2.playbook組成

[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
#該命令,只能檢查語法,無法驗證邏輯

3.PlayBook與ad-hoc

完整性
永續性
特點 PlayBook ad-hoc
執行效率
變數 支援 不支援
耦合度

1.PlayBook功能比ad-hoc更全,是對ad-hoc的一種編排.
2.PlayBook能很好的控制先後執行順序, 以及依賴關係.
3.PlayBook語法展現更加的直觀.
4.playbook可以持久使用,ad-hoc無法持久使用.