我需要将 dest 文件夹的内容设置为与 src 文件夹相同。所以我使用同步模块:
- name: files for /lib/user/ based on the Runtime version
synchronize:
src: "/data/managedFiles/lib/{{ runtime.version }}/user/"
dest: "{{ mule_directory }}{{ mule_runtime_name }}/lib/user/"
delete: yes
register: result
Run Code Online (Sandbox Code Playgroud)
但这会将结果中的“changed”设置为“true”,即使没有发生任何变化。我只需要在发生某些更改时将其设置为“true”,因为下一个任务会测试此状态。
如果我在此之后立即重复相同的同步任务,它不会将“更改”设置为“true”。但那个总是不会被设置为“true”。
在不更改 src 的情况下,后续运行的 play 始终将结果设置为“已更改”。
默认情况下,文件的时间戳包含在检测何时复制文件的测试中。由于文件是从 git 中提取的,因此每次播放的时间戳都不同,从而产生了错误信号。但当相同的同步连续运行两次时则不然。解决方案是将 checksum 参数设置为 yes,以便不检查时间戳。但这还需要设置递归和归档参数:
- name: files for /lib/user/ based on the Runtime version
synchronize:
src: "/data/managedFiles/lib/{{ runtime.version }}/user/"
dest: "{{ mule_directory }}{{ mule_runtime_name }}/lib/user/"
recursive: yes
archive: no
checksum: yes
delete: yes
register: result
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2249 次 |
最近记录: |