ansible中的执行流控制

一.循环
循环迭代任务
1.简单迭代

loop: ##循环遍历表
- user1
- user2
- user3

test:
vim user.yml

---
- name: create user
  hosts: westos
  tasks:
    - name: useradd
      user:
        name: "{{item:name}}"
        state: present
      loop:
        - user1
        - user2
        - user3

在这里插入图片描述在这里插入图片描述在这里插入图片描述

2.循环散列字典或表

loop: ##循环遍历字典
- name: user1
uid: 1005
- name: user2
uid: 1008
- name: user3
uid: 1089

test:
vim user.yml

---
- name: create user
  hosts: 172.25.254.143
  tasks:
    - name: useradd
      user:
        name: "{{item['name']}}"
        uid: "{{item['uid']}}"
        state: present
      loop:
        - name: user1
          uid: 1005 
        - name: user2
          uid: 1008
        - name: user3
          uid: 1089

在这里插入图片描述在这里插入图片描述
ansible localhost -m setup ##查看事实变量

二.条件

when
  - 条件1
  - 条件2

条件判断

=    value  == "字符串"  value == 数字
<
>
<=

>=
!=
is defined   ##变量存在
is not defined  ##变量不存在
in    value is in value ##value为
not in   value is not in value  ##value不为
bool 变量
  value  ##value的值为true
  not value ##value的值为false
  value in value2 ##value的值在value2中
ignore_errors  ##出现错误忽略
register:bianliang   ##指示变量
bianliang = 0  ##等于0即执行成功

多条件组合中
when中变量表示: westos.rc == 0

when:
  条件1and条件2
  - 条件1
  - 条件2

when:
  条件1 or 条件2

when:
  条件1
  or
  条件2

测试题:
建立playboook

  • 建立大小为1500M名为exam_lvm的lvm在westos组中
  • 如果westos组不存在请输出 ;
    westos is not exist
    *如果组大小不足1500
    westos is less than 1500M
    在这里插入图片描述

3.触发器

handlers ##触发器
notify ##文件更改指定执行触发器片段

force_handlers ##force执行终止依旧执行

---
- name: aphache server
  hosts: westos
  vars: 
    PORT: 80
  tasks:
    - name: install apache
      dnf:
        name: httpd
        state: latest

    - name: config aphache
      lineinfile: 
        path: /etc/httpd/conf/httpd.conf
        regexp: "^Listen"
        line: "Listen {{PORT}}"
      notify: restart apache   ##修改文件后执行restart apache触发器内容

    - name: start apache
      service: 
        name: httpd
        state: restarted

  handlers:
    - name: restart apache
      service:
        name: httpd
        state: restarted

在这里插入图片描述

4.处理失败

ignore_errors ###任务失败依旧向下执行

5.change_when

change_when ##控制任务在何时报告它已被执行

6.faild_when

##条件符合时强制报错强制报错

7.block

block ##定义要运行的任务
rescue ##错误拯救内容
always ##总是会执行的
在这里插入图片描述
测试题:
在这里插入图片描述
在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值