无变化 - 当 ansible 剧本中出现 lint 警告时

问题描述 投票:0回答:1

我一直在 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/" 
automation ansible
1个回答
0
投票

我参加聚会有点晚了,但对于那些偶然发现这一点的人来说: 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"

请参阅命令模块文档以获取更多参考。

© www.soinside.com 2019 - 2024. All rights reserved.