古詩詞大全網 - 古詩大全 - Ansible(二)如何在多臺主機上批量執行任務

Ansible(二)如何在多臺主機上批量執行任務

Ansible批量執行任務有兩種方式 adhoc 和 playbook ,當執行簡單的命令時,可以使用 adhoc ,當執行復雜的命令,涉及多個模塊/條件等時,建議使用 playbook

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 的執行結果