不做大哥好多年 不做大哥好多年
首页
  • MySQL
  • Redis
  • Elasticsearch
  • Kafka
  • Etcd
  • MongoDB
  • TiDB
  • RabbitMQ
  • 01.GO基础
  • 02.面向对象
  • 03.并发编程
  • 04.常用库
  • 05.数据库操作
  • 06.Beego框架
  • 07.Beego商城
  • 08.GIN框架
  • 09.GIN论坛
  • 10.微服务
  • 01.Python基础
  • 02.Python模块
  • 03.Django
  • 04.Flask
  • 05.SYL
  • 06.Celery
  • 10.微服务
  • 01.Java基础
  • 02.面向对象
  • 03.Java进阶
  • 04.Web基础
  • 05.Spring框架
  • 100.微服务
  • Docker
  • K8S
  • 容器原理
  • Istio
  • 数据结构
  • 算法基础
  • 算法题分类
  • 前置知识
  • PyTorch
  • 01.Python
  • 02.GO
  • 03.Java
  • 04.业务问题
  • 05.关键技术
  • 06.项目常识
  • 10.计算机基础
  • Linux基础
  • Linux高级
  • Nginx
  • KeepAlive
  • ansible
  • zabbix
  • Shell
  • Linux内核

逍遥子

不做大哥好多年
首页
  • MySQL
  • Redis
  • Elasticsearch
  • Kafka
  • Etcd
  • MongoDB
  • TiDB
  • RabbitMQ
  • 01.GO基础
  • 02.面向对象
  • 03.并发编程
  • 04.常用库
  • 05.数据库操作
  • 06.Beego框架
  • 07.Beego商城
  • 08.GIN框架
  • 09.GIN论坛
  • 10.微服务
  • 01.Python基础
  • 02.Python模块
  • 03.Django
  • 04.Flask
  • 05.SYL
  • 06.Celery
  • 10.微服务
  • 01.Java基础
  • 02.面向对象
  • 03.Java进阶
  • 04.Web基础
  • 05.Spring框架
  • 100.微服务
  • Docker
  • K8S
  • 容器原理
  • Istio
  • 数据结构
  • 算法基础
  • 算法题分类
  • 前置知识
  • PyTorch
  • 01.Python
  • 02.GO
  • 03.Java
  • 04.业务问题
  • 05.关键技术
  • 06.项目常识
  • 10.计算机基础
  • Linux基础
  • Linux高级
  • Nginx
  • KeepAlive
  • ansible
  • zabbix
  • Shell
  • Linux内核
  • Linux入门

  • Linux高级

  • Nginx

  • Keepalive

  • ansible

    • 01.ansible基础
    • 02.ansible安装配置
    • 03.Inventory(主机清单)
    • 04.ansible基本使用
    • 05.ansible常用模块
    • 06.playbook语法
    • 07.自动部署Tomcat
    • 08.playbook文件复用
    • 09.playbook条件循环
      • 01.条件:when
        • 1.1 when测试
        • 1.2 when安装httpd
      • 02 循环
        • 2.1 with_list
        • 2.2 loop
    • 10.角色(Role)
    • 11.ansible部署lnmp
  • zabbix

  • Shell

  • Linux内核

  • Linux
  • ansible
xiaonaiqiang
2021-02-13
目录

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
  • 执行
[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

# 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
  • 运行
[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.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
上次更新: 2024/3/13 15:35:10
08.playbook文件复用
10.角色(Role)

← 08.playbook文件复用 10.角色(Role)→

最近更新
01
04.数组双指针排序_子数组
03-25
02
08.动态规划
03-25
03
06.回溯算法
03-25
更多文章>
Theme by Vdoing | Copyright © 2019-2025 逍遥子 技术博客 京ICP备2021005373号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式