文章目录

  • 一、循环
  • 二、条件
  • 三、触发器
  • 四、处理失败任务

一、循环

循环迭代任务

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中的任务执行控制介绍相关推荐

  1. 5.Ansible中的任务执行控制

    Ansible中的任务执行控制 实验环境 一.循环 1.循环 2.循环散列或字典列表 3.实验: 二.条件 1.条件判断 判断实验 2.多条条件组合 实验多条条件组合 测试题 三.触发器 1.触发器 ...

  2. Anisble中的任务执行控制

    一.循环 #1.简单循环# loop: ##赋值列表- value1- value2- ...{{item}} ##迭代变量名称#实例# --- - name: create filehosts: 1 ...

  3. Ansible中的一些特殊变量与执行控制

    文章目录 一.注册变量 二.事实变量 三.魔术变量 四.触发器 五.处理失败任务 1.ignore_errors 2.force_handlers 3.changed_when 4.failed_wh ...

  4. Ansible(十九)-- ansible 中的任务控制(四)--block、rescue、always块

    使用"when"关键字对条件进行判断,如果条件成立,则执行对应的任务,但是,我们可以发现,当条件成立时,我们只能执行一个任务,如果我们想要在条件成立时,执行三个任务,该怎么办呢?难 ...

  5. ansible的任务执行控制(循环、条件判定、触发器、处理失败任务)

    ansible的任务执行控制 一.循环 1.简单循环 2.循环散列或字典列表 二.条件判定 1.when条件语句 2.条件判断 三.触发器 四. 处理失败任务 1.ignore_errors 2.fo ...

  6. Ansible中的常用模块介绍

    文章目录 一.ansible实现管理的方式 二.Ad-Hoc执行方式中如何获得帮助 三.ansible命令运行方式及常用参数 四.ansible的基本颜色代表信息 五.ansible中的常用模块 让设 ...

  7. spark的RDD中的action(执行)和transformation(转换)两种操作中常见函数介绍

    参考文章:spark的RDD中的action(执行)和transformation(转换)两种操作中常见函数介绍 spark常见的RDD 1. 函数概览 2. 常见的Transformations 操 ...

  8. 简单介绍oracle执行计划,Oracle性能优化之oracle中常见的执行计划及其简单解释

    一.访问表执行计划 1.table access full:全表扫描.它会访问表中的每一条记录(读取高水位线以内的每一个数据块). 2.table access by user rowid:输入源ro ...

  9. linux中怎么退出执行过程,(进程)处理过程中的Linux:从执行到退出

    Linux是一个多任务操作系统,表面上看,同时运行许多任务--即进程.每一个进程都在系统中留下足迹.这里介绍一些检查这些足迹的工具,并且还要说明蔓延的/proc目录到底是什么. 欢迎归来.上周我们考察 ...

最新文章

  1. OSChina 周一乱弹 —— 六天颓废一天看剧
  2. 使用Storm实现实时大数据分析!
  3. NSMutableDictionary中 setValue和setObject的区别
  4. 一个有趣的问题 : 如何设计一个线程池
  5. linux安装pytorch-GPU版本
  6. putty远程linux系统时间修改,用putty怎么修改监控服务器时间?
  7. Win10 不火不行!Edge 无缝兼容 Chrome扩展
  8. Abp框架 Abp中使用Redis
  9. Word文献右上角标注以及自动更新——以Word2016为例
  10. javascript 操作coolie
  11. 数据安全“考题”怎么破解?11月2日厦门站算力私享会开启
  12. 计算机进入vga模式,VGA模式是什么,怎么进入VGA模式
  13. 一文看懂推荐系统:排序11:Deep Cross Network(DCN)
  14. Oralce ERP中AP模块Vender银行信息查询语句
  15. 微信公众号之底部菜单
  16. 双十一小马哥背后的女人们
  17. 《算法图解》读书笔记
  18. 小猿日记(8) - 接口优化从13秒到3秒,我做了什么
  19. JS - 利用performance.timing进行性能分析
  20. 学术-艺术-图书-软件-资源搜索

热门文章

  1. 星爷和山哥的聊天记录被我发现
  2. 此时身体已将近排空千万不可暴饮暴食因为这个时候
  3. 备考经验PMP中的敏捷知识点汇总
  4. c语言文件操作字符,C语言文件操作
  5. [react] React项目中使用阿里font-icon的svg形式
  6. SQL Server 数据库单用户模式处理
  7. 微信小程序不合法域名(的坑)
  8. 门禁系统小结(三)-终结篇
  9. 德语语法:双宾动词总结
  10. 1.USB详解(简介)