特定条件下的触发处理程序

特定条件下的触发处理程序

如何在特定情况下通知 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处理程序。

相关内容