ansible 的底層是 python ,但是我們在使用 ansible 的時候不需要寫 python 腳本,而是直接調用模塊即可。
模塊是由紅帽官方或者其他合作夥伴或開發愛好者開發好的腳本,我們可以通過調用模塊,來執行對應的命令。
ansible-doc -l
ansible-doc ping
ansible" host-pattern" -m "module" -a"module argument" -i "inventroy-path"
playbook 是壹個 yaml 格式的文件,後綴名為 .yml 或者 .yaml
在壹個 playbook 文件中,可以包含多個 play
壹個 play 就是要在指定主機中執行的壹系列操作,在壹個 play 中可以指定 hosts (在哪些主機上執行)和 tasks (執行哪些命令)
tasks 中可以包含多個 task ,每個 task 就是對壹個模塊的調用
ansible-playbook webserver.yml -e "user=root"
Playbook通常是冪等的,即同壹個playbook,無論運行多少次,最終的結果都是壹樣的。如果被控主機之前已經進行了更改,那麽再次運行playbook的時候不會進行變更。
以下是壹個 playbook 的執行結果示例
TASK 的執行結果