Logging 如何在不接触日志路径和ansible\u日志路径的情况下单独存储ansible运行日志
我是Ansible的新手,对Ansible的运行日志有要求。有人能帮忙吗?谢谢 我说的是运行日志,而不是剧本日志。 例如: 客户有一些剧本要运行,只有他们有权更新ansible.cfg 我还将开发一些剧本,但我必须使用coutomer的配置,包括ansible.cfg(log\u path)和变量ansible\u log\u path 现在我想将ansible运行日志保存在单独的日志文件中 (对于我开发的所有剧本,我不能影响客户的剧本) 另一个限制是剧本可以同时执行 我尝试了很多,但我发现这几乎是不可能的 我的第一次尝试是在每个剧本的开头添加一个任务:Logging 如何在不接触日志路径和ansible\u日志路径的情况下单独存储ansible运行日志,logging,ansible,Logging,Ansible,我是Ansible的新手,对Ansible的运行日志有要求。有人能帮忙吗?谢谢 我说的是运行日志,而不是剧本日志。 例如: 客户有一些剧本要运行,只有他们有权更新ansible.cfg 我还将开发一些剧本,但我必须使用coutomer的配置,包括ansible.cfg(log\u path)和变量ansible\u log\u path 现在我想将ansible运行日志保存在单独的日志文件中 (对于我开发的所有剧本,我不能影响客户的剧本) 另一个限制是剧本可以同时执行 我尝试了很多,但我发现这几
- name: create log file
hosts: localhost
tasks:
- name: rename log file
shell: /bin/bash -l -c "touch {{ lookup('env','ANSIBLE_LOG_PATH') }};mv {{ lookup('env','ANSIBLE_LOG_PATH') }} {{ lookup('env','ANSIBLE_LOG_PATH') }}-{{ lookup('pipe','date +%Y%m%d%H%M%S') }}"
delegate_to: localhost
become: yes
become_user: "{{ lookup('env', 'USER') }}"
它首先运行良好,但如果同时运行多个Playbook,则只有第一个日志文件包含所有日志,其他日志文件为空
我正在考虑创建一个模块,但我不知道模块是否是我的解决方案
有什么建议吗?
我也不能使用插件,因为插件会影响所有的剧本,包括客户的剧本
谢谢你的建议。
顺致敬意,
秦彼得你可以试试下面的方法。如果您使用的是同一个终端,或者您是唯一使用该终端的用户,那么这将起作用。如果多个用户要运行ansible playbook,则每个用户都已运行/设置以下命令。希望这有帮助
“导出可解析日志路径=`date+%Y%m%d%H%m%S`.LOG”
alias ansible playbook=“ansible\u LOG\u PATH=\`date+%Y%m%d%H%m%S\`。LOG ansible playbook”
你可以试试下面的方法。如果您使用的是同一个终端,或者您是唯一使用该终端的用户,那么这将起作用。如果多个用户要运行ansible playbook,则每个用户都已运行/设置以下命令。希望这有帮助
“导出可解析日志路径=`date+%Y%m%d%H%m%S`.LOG”
alias ansible playbook=“ansible\u LOG\u PATH=\`date+%Y%m%d%H%m%S\`。LOG ansible playbook”
- name: create log file
hosts: localhost
tasks:
- name: rename log file
shell: /bin/bash -l -c "touch {{ lookup('env','ANSIBLE_LOG_PATH') }};mv {{ lookup('env','ANSIBLE_LOG_PATH') }} {{ lookup('env','ANSIBLE_LOG_PATH') }}-{{ lookup('pipe','date +%Y%m%d%H%M%S') }}"
delegate_to: localhost
become: yes
become_user: "{{ lookup('env', 'USER') }}"