Как я могу уведомить обработчика 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
обработчик.