ansible playbook迴圈
阿新 • • 發佈:2020-10-20
http://docs.ansible.com/ansible/latest/playbooks_loops.html#standard-loops
-
標準Loops
- hosts: all
gather_facts: False
tasks:- name: debug loops
debug: msg=" name -----> {{ item }}"
with_items:- one
- two
執行結果:ansible-playbook loops.yaml -l 192.168.1.1
TASK [debug loops] *****
ok: [192.168.1.1] => (item=one) => {
"item": "one",
"msg": " name -----> one"
}
ok: [192.168.1.1] => (item=two) => {
"changed": false,
"item": "two",
"msg": " name -----> two"
}
- name: debug loops
- hosts: all
PLAY RECAP ****
192.168.1.1 : ok=1 changed=0 unreachable=0 failed=0
with_items的值是python list資料結構,每個task會迴圈讀取裡面的值;也支援字典
2.巢狀Loops
主要實現一對多或者多對多的合併
3.雜湊Loops
雜湊loops直接支援YAML格式的資料變數
4.檔案匹配Loops
針對一個目錄下指定格式的檔案進行處理,引用with_fileglob迴圈去匹配需要處理的檔案
5.隨機選擇Loops(with_random_choice)
6.條件判斷Loops
5秒執行一次cat /root/ansible將結果register給host然後判斷host.stdout.startswith的內容是否是軼Master字串開頭,如果條件成立,此task完成;如果條件不成立5s之後重試,2次重試還不成立,此task執行失敗
7.檔案優先匹配Loops
with_first_found會從list裡面定義的檔案從上往下一個一個的匹配,如果匹配到了item就是該檔案
8.register Loops
register除了用作單一的task臨時變數儲存,還可以同時接受多個task的結果當做變數臨時儲存
轉載於:https://blog.51cto.com/yangxiongchun/2068384