Ansible的条件判断介绍和使用方式详解!(5)
Ansible的条件判断介绍和使用方式详解
always
当block执行失败时,rescue中的任务才会被执行;而无论block执行成功还是失败,always中的任务都会被执行:
- hosts: dbsrvs
tasks:
- block:
- shell: 'ls /bunianSky'
rescue:
- debug:
msg: '/bunianSky is not exists'
always:
- debug:
msg: 'This task always executes'
条件判断与错误处理
fail模块
在shell中,可能会有这样的需求:当脚本执行至某个阶段时,需要对某个条件进行判断,如果条件成立,则立即终止脚本的运行。在shell中,可以直接调用”exit”即可执行退出。事实上,在playbook中也有类似的模块可以做这件事。即fail模块。
fail模块用于终止当前playbook的执行,通常与条件语句组合使用,当满足条件时,终止当前play的运行。
fail模块只有一个参数,即 msg:终止前打印出信息
# 使用fail模块中断playbook输出
- hosts: dbsrvs
tasks:
- shell: echo "Just a test--error"
register: result
- fail:
msg: "Conditions established,Interrupt running playbook"
when: "'error' in result.stdout"
- debug:
msg: "Inever execute,Because the playbook has stopped"
failed_when
当fail和when组合使用的时候,还有一个更简单的写法,即failed_when,当满足某个条件时,ansible主动触发失败。
如果在command_result存在错误输出,且错误输出中,包含了FAILED字串,即返回失败状态:
- name: this command prints FAILED when it fails
command: /usr/bin/example-command -x -y -z
register: command_result
failed_when: "'FAILED' in command_result.stderr"
直接通过fail模块和when条件语句:
- name: this command prints FAILED when it fails
command: /usr/bin/example-command -x -y -z
register: command_result
ignore_errors: True
- name: fail the play if the previous command did not succeed
fail: msg="the command failed"
when: " command_result.stderr and 'FAILED' in command_result.stderr"
- ansible一旦执行返回失败,后续操作就会中止,所以failed_when通常可以用于满足某种条件时主动中止playbook运行的一种方式。
- ansible默认处理错误的机制是遇到错误就停止执行。但有些时候,有些错误是计划之中的。我们希望忽略这些错误,以让playbook继续往下执行。此时可以使用ignore_errors忽略错误,从而让playbook继续往下执行。
changed_when
当我们控制一些远程主机执行某些任务时,当任务在远程主机上成功执行,状态发生更改时,会返回changed状态响应,状态未发生更改时,会返回OK状态响应,当任务被跳过时,会返回skipped状态响应。我们可以通过changed_when来手动更改changed响应状态
相关阅读
-
telnet命令不可用 telnet不是内部或外部命令怎么办
今天小编介绍telnet不是内部或外部命令怎么办的话题,关于telnet命令不可用 telnet不是内部或外部命令怎么办,接下来IT袋小编就来介绍。 在使用win10系统的过程中想必大家都遇到过一个共同的
-
win10玩游戏比win7流畅吗 win7玩游戏流畅还是win10
今天小编介绍win10玩游戏比win7流畅吗方面的介绍,关于win10玩游戏比win7流畅吗 win7玩游戏流畅还是win10,下面IT袋为您详细介绍 现在不少的IT袋网友都会在电脑上玩游戏。同时,也有人会提出疑
-
win10怎么修改电脑的开机密码 电脑开机密码设置步骤
您可能不了解win10怎么修改电脑的开机密码和电脑开机密码设置步骤的介绍,很不错的方法小知识,建议收藏哦! 在我们日常生活中,最常见的就是开机密码了,而电脑作为我们使用频率最高
-
win10系统电脑蓝屏怎么解决 win10电脑蓝屏了怎么处理方法
文章摘要:win10系统电脑蓝屏怎么解决IT技巧方面的经验,关于win10系统电脑蓝屏怎么解决 win10电脑蓝屏了怎么处理方法,下面小编为您详细解答 win10系统是一款非常优秀的智能电脑系统,在全


