Ansible--5.Ansible中的任务执行控制
前言
本章主要介绍loop循环、when条件、触发器notify以及处理失败任务的方法。
一、循环loop
循环迭代任务:
vim test.yml
---
- name: test loop
hosts: all
tasks:
- name: loop test
file:
path: /mnt/"{
{item}}"
state: touch
loop:
- westosfile1
- westosfile2
ansible-playbook test.yml
ansible westos -m shell -a ‘ls -ld /mnt/*’
循环散列或字典列表
vim test.yml
---
- name: test loop
hosts: all
vars:
USERS:
- NAME: user1
ID: 123
- NAME: user2
ID: 456
tasks:
- name: loop test
user:
name: "{
{ item['NAME'] }}"
uid: "{
{ item['ID'] }}"
loop: "{
{USERS}}"
ansible-playbook test.yml
二、条件when
when:
- case 1
- case 2
条件判断:
条件 | 含义 |
---|---|
= | value == “字符串”,value == 数字 |
< | value < 数字 |
> | value > 数字 |
<= | value <= 数字 |
>= | value >= 数字 |
!= | value != 数字 |
is defined | value is defined 变量存在 |
is not defined | value is not defined 变量不存在 |
in | value is in value 变量为 |
not in | value is not in value 变量不为 |
bool变量 为true | value value的值为true |
bool变量 false | not value value的值为false |
value in value2 value的值在value2列表中 |
多条条件组合:
条件1与条件2并且关系,共同成立才实施