gpt4 book ai didi

ansible - 需要隐藏失败的登录ansible任务

转载 作者:行者123 更新时间:2023-12-04 13:26:22 25 4
gpt4 key购买 nike

我是 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

对于上面的一个,我创建了可以正常工作的任务。

我的问题,在执行登录操作时 - 它失败并显示如下错误消息......

我不想显示日志消息,即使日志中没有任何失败的字符串。

我试过 no_log: True ,这给

failed: [127.0.0.1] => {"censored": "results hidden due to no_log parameter", "changed": true, "rc": 1}



我不想在 o/p 中显示失败的字符串。

最佳答案

你不能。 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

因此,在这种情况下,任务永远不会失败( false ),但您可以提供任何可能基于任务输出的复杂条件。

现在,任务没有失败,而是返回码 cqlsh仍然是 1 ,您可以在下一个任务的条件下使用它。
- name: Run the cql script to create new user
shell: sh create-new-user.cql"
when: loginoutput.rc == 1

理论上这应该与之前的结果相同,只是第一个任务没有被标记为失败,因此 no_log: True应该有想要的效果。

关于ansible - 需要隐藏失败的登录ansible任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35723913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com