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
来源:oschina
链接:https://my.oschina.net/u/4290522/blog/3252416