Bootstrap

ansible:loop模块


1. loop模块:循环执行语句

[root@server4 loop]# cat loop1.yml 
---
- hosts: testB
  remote_user: root
  gather_facts: no
  tasks:
  - debug:
      msg: "{
   {item}}"
    loop:
    - teststr1
    - teststr2

测试:

[root@server4 loop]# ansible-playbook loop1.yml 

PLAY [testB] *******************************************************************

TASK [debug] *******************************************************************
ok: [172.25.60.3] => (item=teststr1) => {
   
    "msg": "teststr1"
}
ok: [172.25.60.3] => (item=teststr2) => {
   
    "msg": "teststr2"
}

2. 使用loop和dict替换with_dict

[root@server4 loop]# cat loop2.yml 
---
- hosts: testB
  remote_user: root
  gather_facts: no
  vars:
    user:
      zjy: female
      ljl: male
  tasks:
  - debug:
      msg: "{
   {item.key}} is {
   {item.value}}"
    loop: "{
   {lookup('dict',user)}}"

测试:

[root@server4 loop]# ansible-playbook loop2.yml 

PLAY [testB] *******************************************************************

TASK [debug] *******************************************************************
ok: [172.25.60.3] => (item={
   'key': u'ljl', 'value': u'male'}) => {
   
    "msg": "ljl is male"
}
ok: [172.25.60.3] => (item={
   'key': u'zjy', 'value': u'female'}) => {
   
    "msg": "zjy is female"
}

3. loop+filter替换loop+loopup

[root@server4 loop]# cat loop3.yml 
---
- hosts: testB
  remote_user: root
  gather_facts: no
  vars