在Ansible項目中製作主劇本有什麼意義?該Ansible best practices描述項目的佈局是這樣的:爲什麼有一個Ansible「主劇本」?
production # inventory file for production servers
staging # inventory file for staging servers
site.yml # master playbook
webservers.yml # playbook for webserver tier
dbservers.yml # playbook for dbserver tier
主劇本會是這個樣子:
# site.yml
---
- include: webservers.yml
- include: dbservers.yml
的Web服務器和dbservers會是這個樣子:
---
- name: configure webservers
hosts: webservers
tasks:
(tasks go here)
roles:
(roles go here)
通常情況下,如果您只有一個庫存文件,您可以在ansible.cfg文件中指定它:
# ansible.cfg
[defaults]
hostfile = inventory
然後,您可以簡單地用命令來運行你的劇本:
$ ansible-playbook site.yml
但是,如果我們分裂我們的庫存爲兩個獨立的文件,你總是需要在運行劇本來指定清單文件:
$ ansible-playbook -i production site.yml
然而,由於你的網絡服務器或DBSERVER劇本是在所有的可能性要指定「主機:Web服務器」或「主持人:dbservers」,表示在廣告資源文件中,這些各組,你爲什麼不只是運行這些命令?
$ ansible-playbook -i production webservers.yml
$ ansible-playbook -i production dbservers.yml
有什麼有一個site.yml主劇本買你?
謝謝。