我有以下剧本
- hosts: all
gather_facts: False
tasks:
- name: Check status of applications
shell: somecommand
register: result
changed_when: False
always_run: yes
Run Code Online (Sandbox Code Playgroud)
完成此任务后,我想运行一个邮件任务,该邮件任务将邮寄已在变量结果中注册的上述任务的所有命令的累计输出.截至目前,当我尝试这样做时,我会收到每个主机的邮件.有没有办法在多个主机上累积输出并将其注册到变量?
您可以从结果中提取hostvars一个内部run_once任务:
- 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
Run Code Online (Sandbox Code Playgroud)
这将打印出date_res.stdout当前播放中所有主机的所有主机列表,并仅运行此任务一次.
| 归档时间: |
|
| 查看次数: |
2831 次 |
| 最近记录: |