Хочется удобного распределения по ролям и авто-апдейтов. Судя по тому, что большинство модулей имеет параметры present, latest и т. д. с помощью Ansible вполне можно не только быстро развертывать окружения, но и поддерживать в актуальном состоянии.
При написании первых ролей столкнулся с такой проблемой, что каждый следующий запуск будет делать новую конфигурацию. В моем примере это конфигурация бекап-клиента, при его инициализации создается некий ключ, который далее следует сообщить бекап-контролллеру, и мне конечно же не нужно генерировать его каждый раз новый. Однако я не смог найти какого-то более-менее простого и готового решения.
Сам я представляю себе это так:
1) Запускать плейбук с тегом firstrun, выполняя такие таски только c этим тегом
2) Сочинять какой-то lock-file и проверять его перед запуском этого таска, самое логичное решение - но как-то много лишнего нужно писать и придумывать
Неужели нет более простого решения?
Или подход должен быть такой: для каждого случая писать свою роль/плейбук?
Вообще, я расскажите в кратце в каких ситуациях вы используете Ansible?
Очень богатый проект в плане возможностей и сразу не понять как его готовить эффективно.
Да, наверное так и надо сделать.
Меня немного смутило то, что слишком громоздким выходит конфиг, такая тривиальная задача, а решение похоже на костыли.