Ansible将有关节点的信息写入本地csv文件

时间:2017-08-16 14:23:13

标签: python csv logging ansible

我写了一个ansible脚本,它从各种来源返回一些信息。我在任务期间保存在变量中的变量之一是某个mysql数据库表中的记录数。

我可以很好地打印出剧本中的结果。 但是,我想要的是将所有主机的结果写入主/控制服务器或运行该剧本的计算机上的单个(csv)文件中

  - name: Show results
    debug:
    msg: "URL: {{hostvars[inventory_hostname]['ansible_nodename']}} RECORDCOUNT: {{results.stdout}} BASE VERSION: {{baseversion.stdout}}"

这件作品打印了我想要的20个节点的信息。 我现在想在主服务器上的单个文件中写入此行。 (csv)

我尝试了各种各样的本地副本,但直到现在都无济于事

2 个答案:

答案 0 :(得分:2)

当没有其他解决方案可见时,

shell模块可以派上用场:

  - name: Save results
    shell: echo URL: {{hostvars[inventory_hostname]['ansible_nodename']}} RECORDCOUNT: {{results.stdout}} BASE VERSION: {{baseversion.stdout}} >> /opt/my_file.log
    delegate_to: localhost

答案 1 :(得分:0)

如果内容太长而导致回声错误,则此方法会出现问题。 我最终使用了模板模块。

只需在此处发布即可,这可能会对其他人有所帮助。