按照这个答案,我想复制 OpenSSL 的配置,并进行一组特定的更改。原始文件不在我的控制范围内,所以我无法将其设为模板。
目前我有:
- name: Make a copy
copy:
src: original.cnf
dest: copy.cnf
force: no
- name: Modify
ini_file:
path: copy.cnf
section: ...
option: ...
value: ...
此更改序列是幂等的,但如果原始文件发生更改,则更改不会传播到副本。如果我将其更改为force: yes
,则将传播原始更改,但每次运行剧本时都会执行更改。这是有问题的,因为我需要在发生变化的情况下重新启动依赖服务,但显然这不能每次都发生。
有没有办法以这样一种方式维护副本,即当且仅在需要时修改目标文件?
根据约翰的回答,我最终得到了以下剧本片段。重要的部分是
changed_when: False
,它确保只有修改目标配置文件副本的步骤才算作更改。