Ansible Tower 提供了一个特性叫做 Job 完成,在 Job 执行完成后会将执行结果和日志记录在系统中,通过 Ansible Tower 用户界面可以方便地查询历史 Job 的执行信息。
如果没有使用 Ansible Tower,则可以考虑在 Playbook 中使用 Ansible Facts 模块记录执行情况并将结果写入文件。示例如下:
- name: Record playbook execution status
hosts: all
tasks:
- name: Get current date time
set_fact:
datetime: "{{ '%Y-%m-%d %H:%M:%S' | strftime }}"
- name: Get playbook name
set_fact:
playbook_name: "{{ playbook_name }}"
- name: Get playbook status
set_fact:
playbook_status: "{{
'success' if 'failed=0' in ansible_playbook_control else 'failure'
}}"
- name: Write execution status to file
lineinfile:
path: "/var/log/ansible/playbook_execution.log"
line: "{{ datetime }},{{ playbook_name }},{{ playbook_status }}"