ansbile-playbook是一系統(tǒng)ansible命令的集合,其利用yaml 語言編寫,運行過程,ansbile-playbook命令根據(jù)自上而下的順序依次執(zhí)行。同時,playbook開創(chuàng)了很多特性,它可以允許你傳輸某個命令的狀態(tài)到后面的指令,如你可以從一臺機器的文件中抓取內(nèi)容并附為變量,然后在另一臺機器中使用,這使得你可以實現(xiàn)一些復(fù)雜的部署機制,這是ansible命令無法實現(xiàn)的。
ansible-playbook的簡單使用方法: #ansible-playbook example-play.yml [參數(shù)]
常用參數(shù):
-u REMOTE_USER :手工指定遠(yuǎn)程執(zhí)行playbook的系統(tǒng)用戶
--syntax-check :檢查playbook的語法
-T TIMEOUT :定義playbook執(zhí)行超時時間
--step:以單任務(wù)分步驟運行,方便做每一步的確認(rèn)工作
一個簡單的例子
[root@www ansible]# ls
test.yml
[root@www ansible]# vim test.yml
- name: create user
hosts: all
user: root
gather_facts: false
vars:- user: "test"
tasks: - name: create fuchao
user: name="{{ fuchao }}"
- user: "test"
測試:
[root@www ansible]# ansible-playbook test.yml
PLAY [create user] ************************************************************
TASK: [create user] **********************************************************
changed: [192.168.1.144]
changed: [192.168.1.145]
fatal: [10.25.1.56] => {'msg': 'FAILED: timed out', 'failed': True}
fatal: [db01.intranet.mydomain.net] => {'msg': 'FAILED: timed out', 'failed': True}
fatal: [db02.intranet.mydomain.net] => {'msg': 'FAILED: timed out', 'failed': True}
fatal: [10.25.1.57] => {'msg': 'FAILED: timed out', 'failed': True}
PLAY RECAP ********************************************************************
to retry, use: --limit @/root/test.retry
10.25.1.56 : ok=0 changed=0 unreachable=1 failed=0
10.25.1.57 : ok=0 changed=0 unreachable=1 failed=0
192.168.1.144 : ok=1 changed=1 unreachable=0 failed=0
192.168.1.145 : ok=1 changed=1 unreachable=0 failed=0
db01.intranet.mydomain.net : ok=0 changed=0 unreachable=1 failed=0
db02.intranet.mydomain.net : ok=0 changed=0 unreachable=1 failed=0