在执行Playbook之后如何将调试输出逐行重定向到文本文件

时间:2019-02-03 16:25:52

标签: ansible

在执行Playbook之后如何将调试输出逐行重定向到文本文件。

- name: Copy content to the output file ====> ( redirecting output variable i.e.  paths to a file.)
  copy:
      content: "{{ paths }}"  
      dest:"/home/oracle/script_results/{{inventory_hostname}}_get_facts.txt" 

在一行中获得此输出。

[u'/u01/oracle/Oracle_Home/abc.txt', u'/u01/oracle/Oracle_Home/oracle.jar', u'/u01/oracle/Oracle_Home/oracle.war', u'/u01/oracle/Oracle_Home/oracle.ear', u'/u01/oracle/Oracle_Home/xyz.ear'

,.........继续。

2 个答案:

答案 0 :(得分:1)

带有回调插件的可行策略

您可以使用 log_play 插件

这是文档:https://docs.ansible.com/ansible/latest/plugins/callback/log_plays.html

  

此回调将Playbook输出写入/ var / log / ansible / hosts目录中每个主机的文件中

您需要在ansible.cfg中将其列入白名单,这是有关操作方法的文档:https://docs.ansible.com/ansible/latest/plugins/callback.html#enabling-callback-plugins

BASH策略

或者您也可以使用bash重新发布ansible输出:

ansible-playbook ... | tee -a ansible_log_file.log

命令tee将显示输出到标准输出并将其保存到文件

答案 1 :(得分:-1)

使用-vvvv选项运行剧本以进行详细记录。