gpt4 book ai didi

linux - Ansible 任务写入本地日志文件

转载 作者:太空宇宙 更新时间:2023-11-04 04:52:07 25 4
gpt4 key购买 nike

使用 Ansible 我希望能够将运行命令的任务的系统输出写入本地(即在托管服务器上)日志文件。目前我只能使用这样的任务来做到这一点:

- name: Run my command
shell: <command> <arg1> <arg3> ... |tee -a <local log file>

这样做的原因是需要很长时间才能完成(即我们不能等到它完成才能获取输出)并且希望在执行期间收集输出。

是否有任何“Ansible”方法可以在执行期间将命令的 sysout 重定向到本地日志文件,而不使用 tee 管道?

最佳答案

不能 100% 回答您的问题,因为您不会在管理服务器中获得不断更新的文件,但您可以使用 async commands

# Requires ansible 1.8+
- name: 'YUM - async task'
yum:
name: docker-io
state: installed
async: 1000
poll: 0
register: yum_sleeper

- name: 'YUM - check on async task'
async_status:
jid: "{{ yum_sleeper.ansible_job_id }}"
register: job_result
until: job_result.finished
retries: 30

然后将 yum_sleeper 的内容转储到文件中

- name: save log locally
copy:
content: '{{ yum_sleeper.stdout }}'
dest: file.log
delegate_to: localhost

关于linux - Ansible 任务写入本地日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55238056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com