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