取消存档然后修改提取的文件的 Ansible 幂等性问题

Ansible idempotency issue with unarchive and then modify extracted file

在其中一个 ansible 角色中,我们提取了一些 tar.gz 文件,然后我们将其中一个提取的文件替换为另一个文件以解决一些问题。

问题是当我们再次 运行 ansible 时,ansible 正在重新提取存档,因为目录内容已更改,自然会标记任务已更改,并且还会按预期再次替换文件。

所以我们现在每次 运行 剧本时都有两个 "changes"...

我应该如何处理这个问题以保持操作的幂等性?

使用 exclude 选项忽略某些路径,请参阅 documentation。 即

- unarchive:
    src: https://example.com/example.zip
    dest: /usr/local/bin
    remote_src: True
    exclude: bad.config

creates 可能也适合您,如果远程计算机上已存在指定路径

,则取消存档步骤将不会 运行