ansible playbook循环

本文详细介绍了Ansible中各种循环任务的应用方法,包括标准循环、嵌套循环、散列循环、文件匹配循环、随机选择循环及条件判断循环等。通过实际例子展示了如何使用with_items及其他循环模块来简化重复任务配置。

http://docs.ansible.com/ansible/latest/playbooks_loops.html#standard-loops

  1. 标准Loops

    • hosts: all
      gather_facts: False
      tasks:
      • name: debug loops
        debug: msg=" name -----> {{ item }}"
        with_items:
        • one
        • two
          执行结果:ansible-playbook loops.yaml -l 192.168.1.1
          TASK [debug loops] *****
          ok: [192.168.1.1] => (item=one) => {
          "changed": false,
          "item": "one",
          "msg": " name -----> one"
          }
          ok: [192.168.1.1] => (item=two) => {
          "changed": false,
          "item": "two",
          "msg": " name -----> two"
          }

PLAY RECAP ****
192.168.1.1 : ok=1 changed=0 unreachable=0 failed=0

with_items的值是python list数据结构,每个task会循环读取里面的值;也支持字典
ansible playbook循环
ansible playbook循环

2.嵌套Loops
主要实现一对多或者多对多的合并
ansible playbook循环
ansible playbook循环

3.散列Loops
散列loops直接支持YAML格式的数据变量
ansible playbook循环
ansible playbook循环

4.文件匹配Loops
针对一个目录下指定格式的文件进行处理,引用with_fileglob循环去匹配需要处理的文件
ansible playbook循环
ansible playbook循环

5.随机选择Loops(with_random_choice)
ansible playbook循环
ansible playbook循环

6.条件判断Loops
ansible playbook循环
ansible playbook循环
5秒执行一次cat /root/ansible将结果register给host然后判断host.stdout.startswith的内容是否是轶Master字符串开头,如果条件成立,此task完成;如果条件不成立5s之后重试,2次重试还不成立,此task运行失败

7.文件优先匹配Loops
with_first_found会从list里面定义的文件从上往下一个一个的匹配,如果匹配到了item就是该文件
ansible playbook循环
ansible playbook循环

8.register Loops
register除了用作单一的task临时变量存储,还可以同时接受多个task的结果当做变量临时存储
ansible playbook循环
ansible playbook循环

转载于:https://blog.51cto.com/yangxiongchun/2068384

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值