【发布时间】:2018-09-06 08:25:48
【问题描述】:
我在 makefile 中有以下内容:
some_file: some_script
bash some_script > $@
并希望在 ansible playbook 任务中复制此内容,在该任务中运行任务会重新创建文件,但前提是生成的脚本文件已更改,否则它是无操作的。有没有办法使用股票 ansible 模块来实现这一点?
【问题讨论】:
-
Ansible 不存储过去运行的状态,而是执行“stuff”(有时是孤立的)并比较结果。然后将状态标记为
changed或ok。但是没有模块知道在随机生成文件的结果中要比较什么。 -
@techraf 我试图在这方面复制 make 的行为,而不是运行 makefile。 Make IIRC 查看生成文件和依赖文件的最后修改元数据,如果后者更新,则运行规则。这就是为什么你可以强制它运行例如
touch文件。 -
我理解你想要做什么。 Ansible 不存储...哦,我已经写了我的第一条评论。
-
@techraf make 也不存储它。正如我在 my 评论中所说,它查询文件系统。如果 ansible 不能做到这一点,无论如何,告诉我它不能,例如检查文件元数据。如果它可以告诉我怎么做,但不要做出与我所说的相反的假设。除非你能证明我错了。在这种情况下显示我怎么错了。
-
我不做任何假设。我告诉过你 Ansible 模块是如何工作的,请阅读我的第一条评论。我没有写关于
make的文章,因为你问的是 Ansible,所以我解释了 Ansible 做什么和不做什么。您可以接受我的评论并自己实现您想要的逻辑,或者对您没有在 70 分钟内获得 SO 上的 codez 感到不高兴。
标签: ansible