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