В рамках развертывания я хочу выполнить небольшую компиляцию на хосте.Это состоит из перемещения исходных файлов, компиляции программы и удаления исходных файлов.Я хотел бы, чтобы это работало так, чтобы это приводило только к ok
, а не changed
, если программа не изменилась.
Это точно описало бы ситуацию, потому что, если программа не измениласьзатем, запустив playbook, можно создать (предположительно) несуществующий каталог, выполнить команду, в результате чего какой-то файл будет перемещен туда, где была идентичная копия, а затем исходные файлы будут удалены, а созданный каталог будет один разопять не существует.
Конкретно, задачи будут выглядеть примерно так:
- copy:
src: src/
dest: /tmp/my_program_src/
- shell: my_compiler -o /usr/local/bin/my_program /tmp/my_program_src/main.file
become: true
- file:
path: /tmp/my_program_src/
state: absent
Конечно, в действительности все три отчета «изменились»;потому что для оболочки я должен был бы определить changed_when
сам, а copy
, а также file
что-то изменить, хотя они взаимно отменяют друг друга.
Могу ли я сгруппировать это вместе в одну задачу, которая сообщает ok
если /usr/local/bin/my_program
не изменилось?Если да, то как?Если нет, то каков был бы «правильный» способ сделать что-то подобное?