Привет. Вопрос из разряда 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 ответов

10 просмотров

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

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

Alex-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 ... Мб это, конечно, не "извращаться", а "так и надо" - но мне такое пока явно непривычно.

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

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

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

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

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

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

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

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

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

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

Стикер

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

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

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

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

Тут кто-то шарит в мед оборудовании?
Benz
10
https://t.me/iDubTG/827 это для владельцев каналов?
Андрей
4
Читаю сейчас [нет, уже больше не читаю!] курсовую о Булгакове, написанную, похоже, с помощью ChatGPT. Это удивительный психоделический опыт. Текст в основном написан в стиле б...
✨ Uni [🌊 В отпуске]
1
Диски перестали работать почему-то в Нидерландах тогда. 0кб в сек Никто как я понял не сможет посоветовать vds в Нидерландах ?
Stargrapefruit
16
В сборку не попала актуальная библиотека. Хотя в других проектах, где она используется норм, актуальная. Пришлось пересобирать саму библиотеку и только после проект. Почему...
Dastan Smailov
2
Ребя, тут спрашивают, что лучше использовать для юзербота на java? 👀
Mars BATYA [NYА]
12
а в ботах подписки - это цифровой товар?
Андрей
3
а есть какая нить ссылка для быстрого открытия меню со старсами? типа tg://stars
Андрей
6
Привет гайс, как через телеграф отправить сообщения в канал альбомом? как тут ( не анимешник, хотя чуть-чуть )
Kokni
1
какая максимальная длительность голосового сообщения может быть?
Косоглазый Циклоп
4
Карта сайта