如何在特定情况下通知 ansible 处理程序?
我的情况是这样的;
- name: git clone repo
notify: build
git:
repo=git://example.com/repo.git
dest=~/repo
这将通知处理程序,该处理程序基本上从 repo 目录build
执行操作,并创建一个名为的文件: 。到目前为止一切顺利。make;make install
/usr/local/include/something.h
如果 git repo 已经到位,并且没有更新,则构建处理程序将不会触发,也make;make install
不会运行。
build
如果文件/usr/local/include/something.h
不存在,如何触发处理程序?
答案1
我发现这种方法可行,但感觉有点迂回。
将此作为其他人的答案发布,但我希望有一种更优雅的方式来实现我的目标;
- name: install repo
command: /bin/true
args:
creates: /usr/local/include/something.h
notify: build2
子句creates
充当此任务的保护。如果something.h
已经存在,则会跳过它。如果不存在,则任务始终评估为已更改,从而通知我的build
处理程序。