---
- name: Checks
hosts: myhosts
connection: local
tasks:
- name: Run Commands
eos_command:
commands:
- show ip pim neighbor | json
- show ip bgp summary | json
register: result
- name: Save to file
copy:
content: "{{ result.stdout_lines | to_nice_json }}"
dest: "/home/homedirectory/results.json"
是否可以在同一个文件中记录两个(最终所有生产的)设备?
#1 楼
这个问题有两种方法,都对SO有答案:使用
json
stdout回调将所有Ansible输出转换为JSON并使用您喜欢的工具进行解析。每个设备的eos_command
输出将在结果json中位于不同的主机密钥下。请参见此内容。
执行
run_once
任务来从其他主机收集数据,如下所示:- debug:
msg: "{{ ansible_play_hosts | map('extract', hostvars, 'result') | map(attribute='stdout_lines') | list }}"
run_once: yes
请参见此。
#2 楼
使用Ansible回调。停止查看日志文件。使用Logstash之类的日志聚合技术。
https://github.com/ujenmr/ansible-logstash-callback
另请参见:
https:// groups .google.com / forum /#!topic / ansible-project / zOjsYxLN578