Playbooks 與 adhoc 相比,是一種徹底不一樣的運用 ansible 的方式,是很是之強大的.html
簡單來講,playbooks 是一種簡單的配置管理系統與多機器部署系統的基礎.與現有的其餘系統有不一樣之處,且很是適合於複雜應用的部署.nginx
Playbooks 可用於聲明配置,更強大的地方在於,在 playbooks 中能夠編排有序的執行過程,甚至於作到在多組機器間,來回有序的執行特別指定的步驟.而且能夠同步或異步的發起任務.異步
使用 adhoc 時,主要是使用 /usr/bin/ansible 程序執行任務.而使用 playbooks 時,更可能是將之放入源碼控制之中,用之推送你的配置或是用於確認你的遠程系統的配置是否符合配置規範.rest
playbook使用yaml語法。yaml語法能夠經過yaml官方資料查看,也能夠查看Ansible中文文檔的相關介紹。code
ansible-playbook [options] playbook.yml [playbook2 ...]
nginx.yml
htm
--- - hosts: all tasks: - name: Install Nginx yum: name=nginx state=present - name: template nginx.conf template: src=./nginx.conf.js dest=/etc/nginx/nginx.conf owner=root group=root mode=0644 validate='nginx -t -c %s' notify: - Restart Nginx Service handlers: - name: Restart Nginx Service service: name=nginx state=restarted
nginx -t -c %s
命令去作nginx文件語法驗證,notify是觸犯handlers,若是同步後,文件的MD5值有變化會觸發Restart Nginx Service這個handler。ansible-playbook nginx.yml --syntax-check playbook: nginx.yml
ansible-playbook -i hosts nginx.yml PLAY [all] ************************************************************************************************************* TASK [Gathering Facts] ************************************************************************************************************* ok: [172.16.1.11] ok: [172.16.1.10] TASK [Install Nginx] ************************************************************************************************************* changed: [172.16.1.10] changed: [172.16.1.11] TASK [template nginx.conf] ************************************************************************************************************* ok: [172.16.1.10] ok: [172.16.1.11] PLAY RECAP ************************************************************************************************************* 172.16.1.10 : ok=3 changed=1 unreachable=0 failed=0 172.16.1.11 : ok=3 changed=1 unreachable=0 failed=0