Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在ansible日志文件中附加日期、时间戳?_Ansible - Fatal编程技术网

如何在ansible日志文件中附加日期、时间戳?

如何在ansible日志文件中附加日期、时间戳?,ansible,Ansible,如何在ansible日志文件中附加日期、时间戳? 目前,我在ansible.cfg中把它作为log_path=/var/ansible playbooks/ansible.log 每次我运行时,我都需要将此日志保存为带有时间戳的文件 示例ansible-20160808142400.log使用ansible\u log\u PATH环境变量。 按如下方式执行剧本: ANSIBLE_LOG_PATH=/tmp/ansible_$(date "+%Y%m%d%H%M%S").log ansible-

如何在ansible日志文件中附加日期、时间戳? 目前,我在ansible.cfg中把它作为log_path=/var/ansible playbooks/ansible.log

每次我运行时,我都需要将此日志保存为带有时间戳的文件


示例ansible-20160808142400.log

使用ansible\u log\u PATH环境变量。
按如下方式执行剧本:

ANSIBLE_LOG_PATH=/tmp/ansible_$(date "+%Y%m%d%H%M%S").log ansible-playbook myplabook.yml

或者,您可以编写自己的回调插件,记录您想要的内容和位置。

使用ANSIBLE\u log\u PATH环境变量。
按如下方式执行剧本:

ANSIBLE_LOG_PATH=/tmp/ansible_$(date "+%Y%m%d%H%M%S").log ansible-playbook myplabook.yml

或者,您可以编写自己的回调插件,以记录您想要的内容和位置。

如果您在基于UNIX的系统上运行,则可以利用inode的行为。在ansible.cfg中定义日志路径。我在$HOME/.ansible中创建了一个目录

log_path = $HOME/.ansible/log/ansible.log
在剧本中创建任务前部分,并包括以下任务:

- name: Create the log file for this run
  shell: /bin/bash -l -c "mv {{ lookup('env', 'HOME') }}/.ansible/log/ansible.log  {{ lookup('env', 'HOME') }}/.ansible/log/ansible.log-{{ lookup('pipe', 'date +%Y%m%d%H%M%S') }}"
  delegate_to: localhost
  become: yes
  become_user: "{{ lookup('env', 'USER') }}"

当ansible开始运行playbook时,它会创建日志文件并开始写入其中。然后将日志文件重命名为ansible.log-YYYYmmddHHMMSS,ansible进程将继续向其写入,因为即使日志文件的名称已更改,但与之关联的inode尚未更改。

如果在基于UNIX的系统上运行,则可以利用inode的行为。在ansible.cfg中定义日志路径。我在$HOME/.ansible中创建了一个目录

log_path = $HOME/.ansible/log/ansible.log
在剧本中创建任务前部分,并包括以下任务:

- name: Create the log file for this run
  shell: /bin/bash -l -c "mv {{ lookup('env', 'HOME') }}/.ansible/log/ansible.log  {{ lookup('env', 'HOME') }}/.ansible/log/ansible.log-{{ lookup('pipe', 'date +%Y%m%d%H%M%S') }}"
  delegate_to: localhost
  become: yes
  become_user: "{{ lookup('env', 'USER') }}"
当ansible开始运行playbook时,它会创建日志文件并开始写入其中。然后将日志文件重命名为ansible.log-YYYYmmddHHMMSS,ansible进程将继续向其写入,因为即使日志文件的名称已更改,与之关联的inode也未更改