将可见输出保存到一个变量



对于以下Ansible Console输出:

TASK [Run Ping Command] *********************************
Changed: [HostName]
TASK [Add Ping Command Results to Log] *********************************
ok: [HostName]

我如何将Changed: [HostName]ok: [HostName]的输出保存到一个变量?

我尝试使用register:,但它只是保存命令的输出,而不是在Ansible控制台打印的内容(更改,ok,跳过…)

寄存器将完成此任务,这些文本消息将根据从任务

的结果接收到的值显示假设你有这个任务:

- name: Run Ping Command
ansible.builtin.ping:
register: ping_result
变量ping_result将具有任务 的结果。
- name: Task changed
ansible.builtin.debug:
msg: "task changed"
when:
- not ping_result.skipped | default(false)
- ping_result.changed | default(false)
- name: Task failed
ansible.builtin.debug:
msg: "task failed"
when:
- not ping_result.skipped | default(false)
- ping_result.failed | default(false)
- name: Task succeeded
ansible.builtin.debug:
msg: "task succeeded"
when:
- not ping_result.skipped | default(false)
- (not ping_result.failed) | default(false)
- name: Task skipped
ansible.builtin.debug:
msg: "task skipped"
when:
- ping_result.skipped | default(false)

因为Ansible控制台输出是剧本本身之外的东西,是由Callback插件生成的,你需要

  • 以某种方式实现您自己的功能,例如在这里给出的答案

  • 或启用(另一个)回调插件,例如log_playscallback -写入剧本输出到日志文件,可以

    将剧本输出写入/var/log/ansible/hosts目录下的每个主机的文件

    ,稍后再从另一个剧本中读取,以进行进一步处理。

相关内容

  • 没有找到相关文章

最新更新