我一直在 Ansible 中创建一个角色,当我运行 gitci 管道时,我收到一条警告消息:
“no-changed-when:如果不需要做任何事情,命令不应该改变事情”
我尝试在任务文件上使用
changed_when: false
。当我尝试部署映像构建时,出现权限错误或状态未正确显示。让我知道如何使用 shell 模块。
例如
- name: Copy the configuration files to the Helm Directory
shell: "cp {{ files_dir_path }}/*.xml {{ roles_dir_path }}/{{ image.docker_tag }}/files/helm- chart/"
我参加聚会有点晚了,但对于那些偶然发现这一点的人来说: Ansible 希望实现幂等,因此它需要能够验证是否需要进行更改。在您的示例中,Ansible 必须盲目运行命令,而无法检查是否有必要。这就是警告想要告诉你的。
您可以通过向 Ansible 提供一个文件来解决此问题,该文件仅在命令运行后才会出现。这样 Ansible 下次就会跳过该任务。
- name: Copy the configuration files to the Helm Directory
shell: "cp {{ files_dir_path }}/*.xml {{ roles_dir_path }}/{{ image.docker_tag }}/files/helm- chart/"
args:
creates: "{{ roles_dir_path }}/{{ image.docker_tag }}/files/helm- chart/*.xml"
请参阅命令模块文档以获取更多参考。