Ansible中的任务执行控制介绍
文章目录
- 一、循环
- 二、条件
- 三、触发器
- 四、处理失败任务
一、循环
循环迭代任务
1.简单循环
loop: ##赋值列表- value1- value2- ...{{item}} ##迭代变量名称
实例
---
- name: create filehosts: 172.25.0.254tasks:- name: file modulefile:name: /mnt/{{item}}state: presentloop:- westos_file1- westos_file2
2.循环散列或字典列表
---
- name: create filehosts: 172.25.0.254tasks:- name: file moduleservice:name: "{{ item.name}}"state: "{{ item.state }}"loop:- name: httpdstate: started- name: vsftpdstate: stopped
二、条件
when:- 条件1- 条件2
条件判断
= value == "字符串",value == 数字
< value < 数字
> value > 数字
<= value <= 数字
>= value >= 数字
!= value != 数字
is defined value value is defined 变量存在
is not defined value is not defined 变量不存在
bool变量 为true value value的值为true
bool变量 false not value value的值为falsevalue in value2 value的值在value2列表中
多条条件组合
when:条件1 and 条件2- 条件1- 条件2when:条件1 or 条件2when: >条件1or条件2
三、触发器
notify:触发器当遇到更改是触发handlers
handlers:触发器触发后执行的动作
实例
---
- name: create virtualhost for web serverhosts: 172.25.0.254vars_files:./vhost_list.ymltasks:- name: create documentfile:path: "{{web2.document}}"state: directory- name: create vhost.confcopy:dest: /etc/httpd/conf.d/vhost.confcontent:"<VirtualHost *:{{web1.port}}>\n\tServerName {{web1.name}}\n\tDocumentRoot {{web1.document}}\n\tCustomLog logs/{{web1.name}}.log combined\n</VirtualHost>\n\n<VirtualHost *:{{web2.port}}>\n\tServerName {{web2.name}}\n\tDocumentRoot {{web2.document}}\n\tCustomLog logs/{{web2.name}}.log combined\n</VirtualHost>"notify:restart apachehandlers:- name: restart apacheservice:name: httpdstate: restarted
四、处理失败任务
1.ignore_errors
作用:
当play遇到任务失败是会终止,而当ignore_errors: yes 则将会忽略任务失败使下面的任务继续运行。
实例
- name: testdnf:name: westosstate: latestignore_errors: yes- name: create filefile:path: /mnt/westosstate: touch
2.force_handlers
作用:当任务失败后play被终止也会调用触发器进程。
实例
---
- name: apache change porthosts: 172.25.0.254force_handlers: yesvars:http_port: 80tasks:- name: configure apache conf filelineinfile:path: /etc/httpd/conf/httpd.confregexp: "^Listen"line: "Listen {{ http_port }}"notify: restart apache- name: install errordnf:name: westosstate: latesthandlers:- name: restart apacheservice:name: httpdstate: restartedenabled: yes
3.changed_when
作用:控制任务在何时报告它已进行更改。
---
- name: apache change porthosts: 172.25.0.254force_handlers: yesvars:http_port: 8080tasks:- name: configure apache conf filelineinfile:path: /etc/httpd/conf/httpd.confregexp: "^Listen"line: "Listen {{ http_port }}"changed_when: truenotify: restart apachehandlers:- name: restart apacheservice:name: httpdstate: restartedenabled: yes
4.failed_when
作用:当符合条件时强制任务失败。
---
- name: testhosts: 172.25.0.254tasks:- name: shellshell: echo helloregister: westosfailed_when: "'hello' in westos.stdout"
5.block
block: #定义要运行的任务
rescue: ##定义当block句子中出现失败任务后运行的任务
always: #定义最终独立运行的任务
Ansible中的任务执行控制介绍相关推荐
- 5.Ansible中的任务执行控制
Ansible中的任务执行控制 实验环境 一.循环 1.循环 2.循环散列或字典列表 3.实验: 二.条件 1.条件判断 判断实验 2.多条条件组合 实验多条条件组合 测试题 三.触发器 1.触发器 ...
- Anisble中的任务执行控制
一.循环 #1.简单循环# loop: ##赋值列表- value1- value2- ...{{item}} ##迭代变量名称#实例# --- - name: create filehosts: 1 ...
- Ansible中的一些特殊变量与执行控制
文章目录 一.注册变量 二.事实变量 三.魔术变量 四.触发器 五.处理失败任务 1.ignore_errors 2.force_handlers 3.changed_when 4.failed_wh ...
- Ansible(十九)-- ansible 中的任务控制(四)--block、rescue、always块
使用"when"关键字对条件进行判断,如果条件成立,则执行对应的任务,但是,我们可以发现,当条件成立时,我们只能执行一个任务,如果我们想要在条件成立时,执行三个任务,该怎么办呢?难 ...
- ansible的任务执行控制(循环、条件判定、触发器、处理失败任务)
ansible的任务执行控制 一.循环 1.简单循环 2.循环散列或字典列表 二.条件判定 1.when条件语句 2.条件判断 三.触发器 四. 处理失败任务 1.ignore_errors 2.fo ...
- Ansible中的常用模块介绍
文章目录 一.ansible实现管理的方式 二.Ad-Hoc执行方式中如何获得帮助 三.ansible命令运行方式及常用参数 四.ansible的基本颜色代表信息 五.ansible中的常用模块 让设 ...
- spark的RDD中的action(执行)和transformation(转换)两种操作中常见函数介绍
参考文章:spark的RDD中的action(执行)和transformation(转换)两种操作中常见函数介绍 spark常见的RDD 1. 函数概览 2. 常见的Transformations 操 ...
- 简单介绍oracle执行计划,Oracle性能优化之oracle中常见的执行计划及其简单解释
一.访问表执行计划 1.table access full:全表扫描.它会访问表中的每一条记录(读取高水位线以内的每一个数据块). 2.table access by user rowid:输入源ro ...
- linux中怎么退出执行过程,(进程)处理过程中的Linux:从执行到退出
Linux是一个多任务操作系统,表面上看,同时运行许多任务--即进程.每一个进程都在系统中留下足迹.这里介绍一些检查这些足迹的工具,并且还要说明蔓延的/proc目录到底是什么. 欢迎归来.上周我们考察 ...
最新文章
- OSChina 周一乱弹 —— 六天颓废一天看剧
- 使用Storm实现实时大数据分析!
- NSMutableDictionary中 setValue和setObject的区别
- 一个有趣的问题 : 如何设计一个线程池
- linux安装pytorch-GPU版本
- putty远程linux系统时间修改,用putty怎么修改监控服务器时间?
- Win10 不火不行!Edge 无缝兼容 Chrome扩展
- Abp框架 Abp中使用Redis
- Word文献右上角标注以及自动更新——以Word2016为例
- javascript 操作coolie
- 数据安全“考题”怎么破解?11月2日厦门站算力私享会开启
- 计算机进入vga模式,VGA模式是什么,怎么进入VGA模式
- 一文看懂推荐系统:排序11:Deep Cross Network(DCN)
- Oralce ERP中AP模块Vender银行信息查询语句
- 微信公众号之底部菜单
- 双十一小马哥背后的女人们
- 《算法图解》读书笔记
- 小猿日记(8) - 接口优化从13秒到3秒,我做了什么
- JS - 利用performance.timing进行性能分析
- 学术-艺术-图书-软件-资源搜索