Назад | Перейти на главную страницу

Обработчик триггера по определенному условию

Как я могу уведомить обработчика ansible о конкретном условии?

Мой сценарий таков;

  - name: git clone repo
    notify: build
    git:
      repo=git://example.com/repo.git
      dest=~/repo

Это уведомит build обработчик, который в основном выполняет make;make install из каталога репо и создает файл с именем: /usr/local/include/something.h. Пока все в порядке.

В случае, если репозиторий git уже существует и обновлений нет, обработчик сборки не сработает, и make;make install не побежит.

Как я могу вызвать build обработчик для запуска, если файл /usr/local/include/something.h не существует?

Способ, который я нашел, работает, но кажется немного окольным.

Публикуем это как ответ для других, но я надеюсь, что есть более элегантный способ достичь моей цели;

- name: install repo
  command: /bin/true
  args:
    creates: /usr/local/include/something.h
  notify: build2

В creates пункт действует как охранник для этой задачи. Если something.h уже на месте, он будет пропущен. Если его там нет, то задача всегда оценивается как измененная, таким образом уведомляя мои build обработчик.