Пример сценария: файлы конфигурации для определенной службы хранятся под контролем версий в частном реестре github. Я хочу написать playbook, который извлекает один из этих файлов на удаленном узле и помещает его в нужное место.Использование Ansible для загрузки одного файла из частного github-репо на удаленный хост
Я могу назвать несколько решений этой:
- сделать проверку на машине, которая работает анзибль (
local_action
), а затем использовать модульcopy
- сделать проверку на удаленном узле (с
git
), скопируйте файлы в нужное место с помощьюcommand: cp src dest creates=dest
(возможно, сделайте это с помощью обработчика - только при изменении настроек репо). - используйте модуль URL или
command: wget https://raw.github.com/repo/.../file creates=file
в playbook, чтобы загрузить файл, представляющий интерес. Действительно ли модульcommand
проверяет, отличается ли файл, который уже существует, или он просто проверяет наличие файла? - использование Wget на машине, которая работает анзибль (
local_action
), а затем использовать модуль копирования, чтобы подтолкнуть его к удаленному узлу
Каковы преимущества/недостатки этого. Какие (если таковые имеются) из них можно считать хорошей практикой. Какое наилучшее общее решение?
Решение 3: определенно просто проверьте файл. И только если add создает: параметр для команды. –