 09.playbook条件循环
09.playbook条件循环
  # 条件&循环
https://docs.ansible.com/ansible/latest/user_guide/playbooks_conditionals.html
# 01.条件:when
# 1.1 when测试
- 只有 192.168.56.65 机器才会执行
[root@k8s-node2 ~]# vim when.yaml 
---
- hosts: webservers 
  gather_facts: yes
  tasks:
    - name: test
      debug: msg={{ansible_default_ipv4.address}}
      when: ansible_default_ipv4.address=='192.168.56.65'
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
- 执行
[root@k8s-node2 ~]# ansible-playbook when.yaml 
TASK [test] *************************************************************************************************************************************************
ok: [192.168.56.65] => {
    "msg": "192.168.56.65"
}
skipping: [192.168.56.66]
PLAY RECAP **************************************************************************************************************************************************
192.168.56.65              : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
192.168.56.66              : ok=1    changed=0    unreachable=0    failed=0    skipped=1    rescued=0    ignored=0   
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 1.2 when安装httpd
- 管理工具是yum用yum安装,管理工具为apt,用apt安装
[root@k8s-node2 ~]# cat when2.html 
- hosts: webservers
  tasks:
    - name: Update apache version - yum
      yum: name=httpd state=present
      when: ansible_pkg_mgr == 'yum'
      notify: restart httpd
    - name: Update apache version - apt
      apt: name=apache2 state=present update_cache=yes
      when: ansible_pkg_mgr == 'apt'
      notify: restart apache2
  handlers:
    - name: restart httpd
      service: name=httpd state=restarted
    - name: restart apache2
      service: name=apache2 state=restarted
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
- 运行
[root@k8s-node2 ~]# ansible-playbook when2.html
1
# 02 循环
# 2.1 with_list
[root@k8s-node2 ~]# vim with-list1.yaml
---
- hosts: 192.168.56.66
  remote_user: root
  gather_facts: no
  tasks:
  - debug:
      msg: "{{item}}"
    with_list:
    - [1,2,3]
    - [a,b]
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 2.2 loop
[root@k8s-node2 ~]# vim loop.yaml
---
- hosts: 192.168.56.66
  remote_user: root
  gather_facts: no
  tasks:
  - debug:
      msg: "{{item}}"
    loop:
    - [1,2,3]
    - [a,b]
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
上次更新: 2024/3/13 15:35:10
