playbook conditionals

目前ansible的所有conditionals方式都是使用when进行判断,when的值是一个条件表达式,如果判断成立这个task就执行某个操作,不成立则不执行或跳过

  • hosts: test
    tasks:

    • name: Host localhost run this task
      debug: msg="{{ ansible_default_ipv4.address }}"
      when: ansible_default_ipv4.address == "172.19.95.175"

    • name: memtotal_mb < 1000M and ansible_processor_cores == 1 run this task
      debug: msg="{{ ansible-fqdn }}"
      when: ansible_memtotal_mb < 1000 and ansible_processor_cores == 1

    • name: all host run this task
      shell: hostname
      register: info

    • name: Hostname is python machie run this task
      debug: msg="{{ ansible_fqdn }}"
      when: info['stdout'] == "cxiong"

    • name: Hostname is startswith M run this task
      debug: msg="{{ ansible_fqdn }}"
      when: info['stdout'].startswith('C')
      第1个when是判断facts信息,条件符合执行
      第2个when判断ansible_memtotal_mb and ansible_processor_cores信息,2个信息都是int类型,不 需要引号,2个条件表达式用and结合
      第3个when是判断第3个task的运行结果stdout的值
      第4个when也是判断第3个task运行结果stdout的值,这里使用了python的str内置王法startswith,最终会返回True和False

执行结果:
playbook conditionals
第4个如果不跳过:
ok: [192.168.1.1] => {
"msg": "cxiong"
}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值