ansible-playbook流程控制-loops循环使用

1. ansible-playbook流程控制-loops循环使用
    有时你想要多次重复任务。在计算机编程中,这称为循环。common ansible循环包括使用文件模块更改多个文件和/或目录的所有权,使用用户模块创建多个用户,并重复轮询步骤,直到达到某个结果。ansible提供两个用于创建循环的关键字:loop和with_<lookup>
    注意:

  • 我们loop在ansible 2.5中添加了,他尚未完全替代with_<lookup>,但我们建议大多数用例。
  • 我们还没弃用with_<lookup> 该语法乃然有效

2. 循环示例1:
  2.1) 示例1:with_list直接替换为loop

 1 - name: with_list
 2   debug:
 3     msg: "{{ item }}"
 4   with_list:
 5     - one
 6     - two
 7 
 8 - name: with_list -> loop
 9   debug:
10     msg: "{{ item }}"
11   loop:
12     - one
13     - two

3. 案例:循环操作
  3.1) 案例1:with_list直接替换为loop

 1 [root@test-1 loops]# vim loops_test1.yaml 
 2 [root@test-1 loops]# cat loops_test1.yaml 
 3 ---
 4 - hosts: web1
 5   gather_facts: no
 6 
 7   tasks:
 8     - name: with list 
 9       debug:
10         msg: "{{ item }}"
11       with_list:
12         - one
13         - two
14     - name: with_list -> loop
15       debug:
16         msg: "{{ item  }}"
17       loop:
18         - one
19         - two

  3.2) 检查配置文件

1 [root@test-1 loops]# ansible-playbook  --syntax-check loops_test1.yaml 
2 
3 playbook: loops_test1.yaml

3.3) 执行模块

 1 [root@test-1 loops]# ansible-playbook loops_test1.yaml 
 2 
 3 PLAY [web1] *************************************************************************************************************************************************************
 4 
 5 TASK [with list] ********************************************************************************************************************************************************
 6 ok: [192.168.200.132] => (item=one) => {
 7     "msg": "one"
 8 }
 9 ok: [192.168.200.132] => (item=two) => {
10     "msg": "two"
11 }
12 ok: [192.168.200.133] => (item=one) => {
13     "msg": "one"
14 }
15 ok: [192.168.200.133] => (item=two) => {
16     "msg": "two"
17 }
18 
19 TASK [with_list -> loop] ************************************************************************************************************************************************
20 ok: [192.168.200.132] => (item=one) => {
21     "msg": "one"
22 }
23 ok: [192.168.200.132] => (item=two) => {
24     "msg": "two"
25 }
26 ok: [192.168.200.133] => (item=one) => {
27     "msg": "one"
28 }
29 ok: [192.168.200.133] => (item=two) => {
30     "msg": "two"
31 }
32 
33 PLAY RECAP **************************************************************************************************************************************************************
34 192.168.200.132            : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
35 192.168.200.133            : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
原文地址:https://www.cnblogs.com/scajy/p/11561437.html