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

时间:2021-02-09 08:08:38

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

 - name: with_list
debug:
msg: "{{ item }}"
with_list:
- one
- two - name: with_list -> loop
debug:
msg: "{{ item }}"
loop:
- one
- two

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

 [root@test-1 loops]# vim loops_test1.yaml
[root@test-1 loops]# cat loops_test1.yaml
---
- hosts: web1
gather_facts: no tasks:
- name: with list
debug:
msg: "{{ item }}"
with_list:
- one
- two
- name: with_list -> loop
debug:
msg: "{{ item }}"
loop:
- one
- two

3.2) 检查配置文件

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

 playbook: loops_test1.yaml

3.3) 执行模块

 [root@test-1 loops]# ansible-playbook loops_test1.yaml 

 PLAY [web1] *************************************************************************************************************************************************************

 TASK [with list] ********************************************************************************************************************************************************
ok: [192.168.200.132] => (item=one) => {
"msg": "one"
}
ok: [192.168.200.132] => (item=two) => {
"msg": "two"
}
ok: [192.168.200.133] => (item=one) => {
"msg": "one"
}
ok: [192.168.200.133] => (item=two) => {
"msg": "two"
} TASK [with_list -> loop] ************************************************************************************************************************************************
ok: [192.168.200.132] => (item=one) => {
"msg": "one"
}
ok: [192.168.200.132] => (item=two) => {
"msg": "two"
}
ok: [192.168.200.133] => (item=one) => {
"msg": "one"
}
ok: [192.168.200.133] => (item=two) => {
"msg": "two"
} PLAY RECAP **************************************************************************************************************************************************************
192.168.200.132 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
192.168.200.133 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0