ansible实施任务控制

循环和条件任务

简单循环

简单循环用于一组迭代的任务。

在任务中添加关键字loop,对应迭代任务将要取的项目列表的值,循环变量item保存每个迭代过程中使用的值。

例:

- name: test loop
  service: 
    name: "{{ item }}"
    state: started
  loop:
    - service1
    - service2
##  vars
##    service_vars:
##      - service1
##      - service2
##  loop: "{{ service_vars }}"

循环散列

loop列表值不是简单的列表,而是字典

例:

- name: test loop2
  user: 
    name: "{{ item.name }}"
    state: present
    group: "{{ item.group }}"
  loop:
    - name: name1
      group: group1
    - name: name2
      group: group2

register关键字与loop

register关键字可以用于捕获循环任务的输出

在playbook.yml文件中使用register关键字,与loop同级

tasks:
  - name: test loop register
    shell: echo "this is {{ item }}"
    loop:
      - word1
      - word2
    register: result
  - name: show result
    debug:
      var: result

有条件运行任务

ansible使用conditionals在符合特定条件时执行任务或play

条件任务语法

使用when语句有条件的执行任务(when的级别和loop一样)

常见的条件:比较(==、<、>、>=、<=、!=)、存在(is)、布尔值(true、false)

例:

vars:
  mservice: service1
tasks:
  - name: "{{ mservice }} is ..."
    yum:
      name: " {{ mservice }} "
    when: mservice is defined

测试多个条件时可以使用 and 或 or 运算组合条件,使用 > 或 | 可以换行编写

循环和条件可以组合使用运行任务

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值