Anonymous
Не пробовал такой бекдор)
Павел П.
Павел П.
ansible_play_hosts ещё в первом комменте. Завтра и попробую)
Timur
Timur
И только одним репозиторием
Timur
Если у вас версий ролей много, а обращаться к ним можно не только на уровне последней версии бранча, но и по тегу и вплоть до единичных коммитов, то ваша схема работать не будет
Timur
Если роли лежат больше, чем в одной репе - аналогично
Timur
В итоге вы просто дублируете функции гита с непонятной целью, попутно сильно усложняя структуру ролей
Sergey
Sergey
Много хостов. накатанных одной ролью, но причём разными версиями O_o
Люди упарываются, топят за однообразие, IaaC, servers as cattle, а тут...
"..И поднимал он тяжёлые камни, и говорил с ними, вспоминая их имена."
Какой тогда вообще смысл Ansible использовать? Скорее всего, из-за башсибла в ролях.
Vladislav 👻
Люди любят усложнять себе. Пока народ стремиться сделать одинаковые прод и дев стенды, другие делают разнообразие прод стендов...
Vladislav 👻
Sergey
Andrey
Много хостов. накатанных одной ролью, но причём разными версиями O_o
Люди упарываются, топят за однообразие, IaaC, servers as cattle, а тут...
"..И поднимал он тяжёлые камни, и говорил с ними, вспоминая их имена."
Какой тогда вообще смысл Ansible использовать? Скорее всего, из-за башсибла в ролях.
Во первых, разные проекты внутри компании могут использовать разные версии ролей, во вторых в моменте может быть две версии: текущая и ту на которую переходишь. В третьих возможность задать версию роли через group_vars позволяет не править лишний раз плейбук и переключаться через репу с inventory.
Vladislav 👻
первое без аргументов не заходит, второе решается не версиями ролей, а отдельными ролями
Vladislav 👻
ну а третье есть из коробки в ансибле, называется инвентори
Andrey
И только одним репозиторием
Так и есть, все роли в одной репе. Интересно было бы узнать use case при котором требуется собирать роли из разных реп. Кроме случая притащить какое-нибудь непроверенное г. из чужого репо, ничего не могу представить.
Vadim
Уф, монорепа с версиями ролей через переименование каталогов, я правильно понял?
Sergey
Во первых, разные проекты внутри компании могут использовать разные версии ролей, во вторых в моменте может быть две версии: текущая и ту на которую переходишь. В третьих возможность задать версию роли через group_vars позволяет не править лишний раз плейбук и переключаться через репу с inventory.
Ещё раз - это фу, и это - полное непонимание ролей. Роль - это самодостаточная единица, в best practices по Ansible этого что-то не видать, чтобы так над ролями издевались.
Во-вторых, это, к сожалению, многое говорит о состоянии инфраструктуры. Здесь эта роль - вот такой версии, здесь - другой, а здесь - третьей. Второе фу.
Ну и переизобрести гит в group_vars - это, конечно, сильно, повторюсь, но нет, you shall not pass. Третье фу.
Vadim
Ох, версия роли в groupvars?
Vadim
ну вот
>разные проекты внутри компании могут использовать разные версии ролей
Vadim
вот дали rolesfile.yml, ну пользуйся же, нет?
Vadim
тут тебе и версии, и гарантированный чекаут вместо "ой, а тут версионность роли не сработала"
Andrey
Ещё раз - это фу, и это - полное непонимание ролей. Роль - это самодостаточная единица, в best practices по Ansible этого что-то не видать, чтобы так над ролями издевались.
Во-вторых, это, к сожалению, многое говорит о состоянии инфраструктуры. Здесь эта роль - вот такой версии, здесь - другой, а здесь - третьей. Второе фу.
Ну и переизобрести гит в group_vars - это, конечно, сильно, повторюсь, но нет, you shall not pass. Третье фу.
Хорошо. Расскажите свой способ перевода прода на новую роль? Всё и сразу? ))
Vadim
О, это моя любимая часть
Vadim
"ага, вы тут все такие умные, тогда прочитайте мне тут документацию!"
Andrey
Sergey
Круто, подход настоящего самурая...
А с вашим подходом, похоже, прям хромированные версии ролей тряпочкой с колой протирают.
"... А ты 2.4.2 пробовал?....
- Не, не встала, не нашла чот-там.
- Ну блин, ну тогда попробуй 2.5.0 хотя бы.
- Да ладно, я уже 2.7.1 накатил [давит бычок в пепльнице] Пошли давай, до утра ещё сотню серверов обновить надо." (с)
Sergey
Vadim
причем это пуллреквест с чем-то вроде https://github.com/ljozsa/ansible-raspi/commit/9d85c83ecf95dfcd4deca8b9f7a4c38a4cbbf13c + CI
Andrey
Vladislav 👻
Vladislav 👻
Я уж молчу про тестирование ролей через докеры те же например
Andrey
Vladislav 👻
А зачем так делать?
Vladislav 👻
Точнее не так, если вам надо разные, то зачем сверять?
Vladislav 👻
А если одинаковые, то зачем делать разные?
Vadim
Vadim
рядом с ними еще идут blue-green или вообще colorful
Vadim
казалось бы, причем тут роли?
Sergey
Ок. Допустим вылезло на стейдже. Так и как вы делаете что у вас на стейдже и проде разные версии ролей?
Всё просто - я не запускаю деплой на продакшн. Есть такая категория. как вебморды. В период тестов из мастера вебморда для продакшна отключается.
Опять же - в репозитории с ролями могут существовать теги, и вообще ничто не мешает деплоить продакшн по тегу (как это можно делать, впрочем, с любым кодом, хранящимся в системе контроля версий).
И ещё - если всё-таки изначально одними скриптами деплоить всё, то расхождений (кроме мощности самих хостов) не будет.
Andrey
казалось бы, причем тут роли?
Наверное при том что там могут завалятся темплейты конфигов... ) Всякие модные etcd и k8s пока сюда не будем приплетать... )
Vadim
не умеете собирать список создаваемых артефактов? Что ж, тогда так и живите
Andrey
Sergey
Sergey
Но мы вообще-то в странную плоскость перешли, при чём тут вообще как именно сделано у меня?
Sergey
Ресь о том, что так, как сделано в вашей компании - не надо делать.
Andrey
Sergey
Sergey
Vadim
Sergey
Senior YaML developer 😊
Alex
Какой у вас тут лютый пиздец. У меня файл requirements.yaml и в нём роли с версиями и именем, а не чтобы именем роли, имя РЕПО делать. Хочу одну роль под разными именами скачаю и будет у меня 2 роли разных версий под ( но это странное)
Alex
А ещё то что назвал странный человек ролью, по сути ролью не является, а просто плейбуком
Vadim
Alex
Vadim
а, ну с тегами сфейлить слишком просто
Alex
✙ DarkKC ✙
✙ DarkKC ✙
но у нас было несколько (довольно много) разных проектов, с разным набором унифицированных ролей
✙ DarkKC ✙
и все проекты в итоге могли иметь свой набор версий, как продовых, проверенных, так и стейджевых, и дев-вакханалией
GithubReleases
ansible/ansible was tagged: v2.7.5
Link: https://github.com/ansible/ansible/releases/tag/v2.7.5
Release notes:
New release v2.7.5
ℭ𝔞𝔯𝔯𝔬𝔩
Yerlan
версия ansible 2.7.4
Timur
Ошибка в другом таске же
Timur
Не в том, который вы показали