gpt4 book ai didi

Ansible:在任务运行时累积跨多个主机的输出

转载 作者:行者123 更新时间:2023-12-02 14:22:32 25 4
gpt4 key购买 nike

我有以下剧本

- hosts: all
gather_facts: False
tasks:
- name: Check status of applications
shell: somecommand
register: result
changed_when: False
always_run: yes

在此任务之后,我想运行一个邮件任务,该任务将邮寄在变量 result 中注册的上述任务的所有命令的累积输出。截至目前,当我尝试执行此操作时,我会收到每个主机的邮件。有没有某种方法可以跨多个主机累积输出并将其注册到变量中?

最佳答案

您可以从 run_once 任务中的 hostvars 提取结果:

- hosts: mygroup
gather_facts: false
tasks:
- shell: date
register: date_res
changed_when: false
- debug:
msg: "{{ ansible_play_hosts | map('extract', hostvars, 'date_res') | map(attribute='stdout') | list }}"
run_once: yes

这将打印出当前播放中所有主机的所有 date_res.stdout 列表,并且仅运行此任务一次。

关于Ansible:在任务运行时累积跨多个主机的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43903134/

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