Привет. Вопрос из разряда best practices. Есть набор самописных ролей, которые

нужно запихнуть в git. Также, есть набор сторонних ролей, которые юзаются "as is" (всякие официальные роли по установке популярного софта).
Изначально хотел красиво каждую роль класть в отдельный гит-реп, а в основном environment за счёт requirements.yml подключать все роли (и самописные, и официальные). Но позже пришли в голову нюансы:
1. Хотелось бы, чтобы непосредственно репы с ролями лежали в поддиректории ./roles относительно репы с environment - для удобства. Если устанавливать роли из гита через requirements.yml - они (пожалуй, логично) ставятся не как полноценный гит-репозиторий (через clone), а как просто директория с данными (то есть, без .git внутри).
2. Скорее, нюанс в целом работы с git. Следить за актуальностью N отдельных реп - такое себе удовольствие.

Соответственно, сейчас склоняюсь к тому, чтобы:
1) Самописные роли - хранить все в одной репе (отдельно от репы environment), и на моей рабочей тачке репа с ролями будет лежать в ./roles относительно репы с environment.
2) Сторонние роли - ставить/обновлять через requirements.yml (то есть, они будут ложиться куда-то в ~/.ansible/...)

Вопрос: мб есть какой-то общепринятый подход, который решает эти нюансы? В идеале, описанный/упомянутый где-либо. Самостоятельно пока ничего "однозначно годного" не нашёл.

12 ответов

26 просмотров

То как изначально правильно. Чем не понравилось то

В ansible.cfg в корне проекта указываешь относительный role_path и все

lex-P. Автор вопроса
Отделение Bereke Bank Ор
То как изначально правильно. Чем не понравилось то

вот "корень зла" :) > Хотелось бы, чтобы непосредственно репы с ролями лежали в поддиректории ./roles относительно репы с environment Я бы хотел иметь такую структуру: /path/environment (git-реп, где лежат все мои плейбуки, мб инвентарь и т.д.; ./roles/ в gitignore) /path/environment/roles (git-реп, где лежат все мои самописные роли) Если я буду через requirements.yml устанавливать самописные роли в /path/environment/roles - директории в /path/environment/roles не будут являться git-репозиториями. Я это имел в виду под словами: > Если устанавливать роли из гита через requirements.yml - они (пожалуй, логично) ставятся не как полноценный гит-репозиторий (через clone), а как просто директория с данными (то есть, без .git внутри). То есть, мне, в таком случае, придётся извращаться в виде: 1) Иметь какую-то отдельную директорию, где лежат мои самописные роли (их git-репозитории), там их создавать/править/push/pull/... 2) Каждый раз после изменения ролей - внутри environment делать ansible-galaxy install ... Мб это, конечно, не "извращаться", а "так и надо" - но мне такое пока явно непривычно.

lex P.
вот "корень зла" :) > Хотелось бы, чтобы непосред...

Тогда это не роди в общем-то, а просто набор тасков

lex P.
вот "корень зла" :) > Хотелось бы, чтобы непосред...

А что не так? В одном месте разрабатываете роли, в другом - используете. Вы же когда ПО разрабатываете и в ./bin билдите бинарник для теста, переносите его в свой $PATH после работы. Ваш ансибл environment же кто то будет запускать, возможно им даже не надо будет ничего в ролях править ваших.

lex P.
вот "корень зла" :) > Хотелось бы, чтобы непосред...

Зачем вам локально гит для ролей вне контекста конкретной репы - совершенно непонятно

lex-P. Автор вопроса
inqfen
Тогда это не роди в общем-то, а просто набор таско...

то есть, я тут либо "не согласен", либо "не понял")

lex-P. Автор вопроса
inqfen
Тогда это не роди в общем-то, а просто набор таско...

я полагаю, я таки преисполнился и понял, что имелось в виду. спасибо)

Стикер

lex-P. Автор вопроса
Fire Fighter
git submodules уже предлагали?

нет* :) . спасибо за идею, но, вроде, и так уже какой-то "flow" себе намутил, вопрос более неактуален

Похожие вопросы

Обсуждают сегодня

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Карта сайта