к примеру, есть роль которая ставит какой-то софт и подсовывает конфиг, который темплейтом создаётся из каких-то параметров.
Вышло обновление софта, и теперь в конфиге есть новые параметры. Но тебе нужно и старую версию софтины поддерживать. Как безболезненно добавить конфиг от новой версии, так чтобы не сломать старую?
1. Городить условия в конфиге, что если версия больше такой-то, то можно добавить такой-то параметр.
2. На каждую версию или мажорную версию софта держать свой темплейт и выбирать его по принципу first_found.
3. Или же новую роль на новую версию?
Чем пользуются профи ансибла? @tnt4brain @tgadiev
1 и 2 варианты более универсальны, на мой взгляд
Мигрировать всё на новую версию. Но как всегда нельзя небось...
Че прямо вот так сразу прод на новую версию? :) Авось пронесёт? :))
2 норм. Ещё есть беспроигрышный yaml multiline в который можно засунуть весь конфиг 😏
Помню давно ты пытался победить генерацию конфига какого-то :)))
Чот не помню. Столько дерьма повидал
Разные инвентори и ветки. Я сначало тестирую на тесте, потом перевожу дев и только потом прод
Я бы напилил второй шаблон, и в имя обоих включил версию.
Можно версионировать роль вместе с софтом и указывать в requirements.yml версию роли в зависимости от версии софта.
Возможно придётся бекпортить изменения в роли, если это бывает чаще чем обновление шаблонов, то скорее всего проще жинжей шаблоны генерить с условиями.
Ещё универсальный варик - таскать шаблон конфига вместе с софтом, и роли его брать из артефакта софта. Тогда нужно озаботиться только тем, чтобы ансиблу были доступны все возможные переменные.
Обсуждают сегодня