ansible playbook循環

http://docs.ansible.com/ansible/latest/playbooks_loops.html#standard-loopshtml

  1. 標準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) => {
          "changed": false,
          "item": "one",
          "msg": " name -----> one"
          }
          ok: [192.168.1.1] => (item=two) => {
          "changed": false,
          "item": "two",
          "msg": " name -----> two"
          }

PLAY RECAP ****
192.168.1.1 : ok=1 changed=0 unreachable=0 failed=0python

with_items的值是python list數據結構,每一個task會循環讀取裏面的值;也支持字典
ansible playbook循環
ansible playbook循環數據結構

2.嵌套Loops
主要實現一對多或者多對多的合併
ansible playbook循環
ansible playbook循環dom

3.散列Loops
散列loops直接支持YAML格式的數據變量
ansible playbook循環
ansible playbook循環ide

4.文件匹配Loops
針對一個目錄下指定格式的文件進行處理,引用with_fileglob循環去匹配須要處理的文件
ansible playbook循環
ansible playbook循環oop

5.隨機選擇Loops(with_random_choice)
ansible playbook循環
ansible playbook循環debug

6.條件判斷Loops
ansible playbook循環
ansible playbook循環
5秒執行一次cat /root/ansible將結果register給host而後判斷host.stdout.startswith的內容是不是軼Master字符串開頭,若是條件成立,此task完成;若是條件不成立5s以後重試,2次重試還不成立,此task運行失敗3d

7.文件優先匹配Loops
with_first_found會從list裏面定義的文件從上往下一個一個的匹配,若是匹配到了item就是該文件
ansible playbook循環
ansible playbook循環htm

8.register Loops
register除了用做單一的task臨時變量存儲,還能夠同時接受多個task的結果當作變量臨時存儲
ansible playbook循環
ansible playbook循環blog

相關文章
相關標籤/搜索