我正在将auditd
配置文件部署到固定清单文件中的约1000台主机。
我使用复制模块执行此操作。在剧本输出中,它显示任务已更改,但是当我去验证几台主机时,我发现5台主机中有2台没有更改/替换文件。
我使用group_by
来分隔操作系统,因为我拥有的RedHat 6和7没有相同的配置参数
然后使用处理程序重新启动服务
但是当我在目标主机上验证时,不会复制新的配置文件。我曾考虑过将assert与hash结合使用,以检测为什么副本无提示地失败,但是我不知道如何开始。
这是剧本:
---
- name: get os major version
hosts: all
tasks:
- name: classify hosts
group_by:
key: rhel_{{ ansible_distribution_major_version }}
- hosts: rhel_6
become: yes
gather_facts: false
tasks:
- name: copy auditd.conf
copy:
src: "{{ playbook_dir }}/files/auditd.conf_rhel6"
dest: /etc/audit/auditd.conf
backup: yes
mode: 0640
notify:
- restart auditd
handlers:
- name: restart auditd
service:
name: auditd
state: restarted
enabled: yes
如何确定文件确实被复制?通过执行断言任务/校验和比较?