use*_*565 6 ansible ansible-playbook
我是ansible任务的新手,正在创建一个执行登录操作的yml,如果登录失败,则需要调用一些脚本.
- name: Logging Action
shell: "/usr/local/bin/cqlsh -u xyzyx -p 1234abc"
register: loginoutput
ignore_errors: yes
no_log: True
- name: Run the cql script to create new user
shell: sh create-new-user.cql"
when: loginoutput|failed
Run Code Online (Sandbox Code Playgroud)
对于上面的一个我创建了很好的taks.
我的问题,当执行登录操作时 - 它失败并显示如下错误消息...
我不想显示日志messgaes甚至没有任何失败的字符串在日志中.
我试过 no_log: True,这给了
失败:[127.0.0.1] => {"审查":"由于no_log参数隐藏了结果","已更改":true,"rc":1}
我不想在o/p中显示失败的字符串.
udo*_*dan 13
你不能.no_log: True是最好的,以防止输出.
如果它有帮助,旁边ignore_errors: yes有一个failed_when选项,您可以在其中准确定义使任务失败的原因.我们的想法是不要让任务首先失败.
- name: Logging Action
shell: "/usr/local/bin/cqlsh -u xyzyx -p 1234abc"
register: loginoutput
failed_when: false
no_log: True
Run Code Online (Sandbox Code Playgroud)
因此,在这种情况下,任务永远不会失败(false)但您可以提供任何可能基于任务输出的复杂条件.
现在,任务没有失败,但cqlsh仍然是返回代码1,您可以在下一个任务的条件下使用它.
- name: Run the cql script to create new user
shell: sh create-new-user.cql"
when: loginoutput.rc == 1
Run Code Online (Sandbox Code Playgroud)
从理论上讲,这应该具有与以前相同的结果,只是第一项任务没有被标记为失败,因此no_log: True应该具有预期的效果.
| 归档时间: |
|
| 查看次数: |
12195 次 |
| 最近记录: |