Ansible執行任務的方式

2022-08-18 06:09:11 字數 833 閱讀 6462

一是 ad-hoc 命令,一是寫 ansible playbook.前者可以解決一些簡單的任務, 後者解決較複雜的任務.

/usr/bin/ansible

/usr/bin/ansible-playbook

例子:使用 ansible 的命令列工具來重啟 atlanta 組中所有的 web 伺服器,每次重啟10個.

ssh-agent bash

ssh-add ~/.ssh/id_rsa

ansible atlanta -a "/sbin/reboot" -f 10 # -f 10 選項表示使用10個並行的程序,也可在配置檔案中設定:forks = 10

ansible atlanta -a "/usr/bin/foo" -u username

ansible atlanta -a "/usr/bin/foo" -u username --sudo [--ask-sudo-pass]

ansible atlanta -a "/usr/bin/foo" -u username -u otheruser [--ask-sudo-pass]

ansible raleigh -m shell -a 'echo $term'
使用 ansible ad hoc 命令列介面時(與使用 playbooks 的情況相反),尤其注意 shell 引號的規則.

比如在上面的例子中,如果使用雙引號」echo $term」,會求出term變數在當前系統的值,而我們實際希望的是把這個命令傳遞到其它機器執行.

Ansible任務執行控制的traning

需求 建立playbook westos.yml要求如下 建立大小為1500m名為 dev vdb1的裝置 如果 dev vdb不存在請輸入 dev vdb is not exist 如果 dev vdb大小不足2g請輸出 dev vdb is less then 2g 並建立800m大小的 dev...

Ansible 處理失敗的任務

1 管理play中任務錯誤 1 ansible評估任務的返回 從而確定任務是成功還是失敗 2 通常而言,當任務失敗時,ansible將立即在該主機上中止play的其餘部分並且跳過所有後續任務,但有些時候,可能希望即使在任務失敗時也繼續執行play 2 忽略任務失敗 1 預設情況下,任務失敗時play...

Ansible 編寫迴圈和條件任務

1 ansible支援使用loop關鍵字對一組專案迭代任務,可以配置迴圈以利用列表中的各個專案 列表中各個檔案的內容 生成的數字序列或更為複雜的結構來重複任務 1 簡單迴圈 1 簡單迴圈對一組專案迭代任務。loop關鍵字新增到任務中,將應對其迭代任務的專案列表取為值。迴圈變數item儲存每個迭代過程...