Roo*_*dra 35 ansible ansible-playbook
如果某些条件失败,我想中止剩余任务的执行.并显示正确的错误消息.
因此,我没有跳过剩余的任务,而是希望显示错误消息并停止执行ansible playbook.
让我们说我在命令之下运行
$ ansible-playbook playbook.yml -e "param1=value1 param2=value"
Run Code Online (Sandbox Code Playgroud)
我的剧本看起来像这样: -
playbook.yml: -
---
- hosts: local
user: roop
gather_facts: no
vars: {param1: "", param2: ""}
tasks:
#check whether param1 defined
- name: 'Check for valid param1'
shell: echo {{ param1 }}
register: isValidParam1
when: param1 !=""
#check if param1 is null or invalid
- name: 'check if param1 is null or invalid'
debug: msg="Please enter correct param1"
when: param1 == ""
#check whether param2 defined
- name: 'Check for valid param2'
shell: echo {{ param2 }}
register: isValidParam2
when: param2 != ""
#check if param2 is null or invalid
- name: 'check if param2 is null or invalid'
debug: msg="Please enter correct param2"
when: param2 == ""
#check params is valid and defined
- name: 'Check for valid params'
shell: echo "param1={{ param1 }} param2={{ param2 }}
register: validParams
when: isValidParam1 is defined and isValidParam2 is defined
#check if params are invalid then abort below all tasks.
- name: 'check if validParams is null or invalid'
debug: msg="Please enter correct Params"
when: validParams is not defined
# based on validParams, and different value of param1 more than
10 task executing.
Run Code Online (Sandbox Code Playgroud)
正如我在上一篇评论中提到的那样.我基础上执行超过10个任务validParams和param1不同的价值.这里我需要的validParams是if undefined然后中止所有执行并显示错误消息.
有没有有效的方法来做到这一点.请建议我.
Dom*_*tro 54
你可以使用assert http://docs.ansible.com/assert_module.html或者失败http://docs.ansible.com/fail_module.html
它将伴随着这样的事情
#check if params are invalid then abort below all tasks.
- name: 'check parm is null or invalid'
fail: msg="Please enter correct Params"
when: "param1 is not defined or param2 is not defined " ## whatever condition you want
Run Code Online (Sandbox Code Playgroud)
Ansible> = 2.0具有块功能,允许您对任务进行逻辑分组.这允许您将when应用于一组任务.
它与fail或assert模块之间的主要区别在于任务未标记为失败; 它只是跳过了.这是否更好取决于您的使用案例.例如,我有一些任务写入日志,后来解析失败; 如果仅记录"真实"故障条件,则更容易执行此操作.
示例代码:
- block:
# task 1
# task 2
# task 3
when: "param1 is defined or param2 is defined"
# otherwise output a message
- block:
debug: msg="Missing params"
when: "param1 is not defined or param2 is not defined"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
56243 次 |
| 最近记录: |