Alexander
git-workflow, когда ветка отражает текущее состояние среды
Я видел такие подходы. Не знаю, откуда они, но рано или поздно люди их использующие познают боль.
Alexander
Но это опять таки моё мнение. На мой взгляд это усложнение без причины.
Dmitry
Само собой, задача - полный CI + контроль доступа к изменениям конфигов сред
Nklya
полный сиай и полный сиди))
Alexander
Я себя к таковым не отношу :)
Nklya
женкинса не хватает, с плагинами
Dmitry
женкинса не хватает, с плагинами
ну он там где то есть, а точнее гитлаб. меня интересует подход к мультисредовму workflow
Nklya
я помню что похожий разговор в этом чате уже был. про дичь с енвайроментами в бранчах и сливанием
Nklya
ничего хорошего из этого не выйдет
Dmitry
я помню что похожий разговор в этом чате уже был. про дичь с енвайроментами в бранчах и сливанием
были еще советы про вынос определенных частей в отдельные бранчи
Dmitry
и вынос параетров во внешние хранилища. Но это все теория
Alexander
Это идёт в разрез со всеми рекомендациями типа транкбейзд разработки.
Nklya
почему просто не пихать разные окружения в разные папочки?
Dmitry
почему просто не пихать разные окружения в разные папочки?
Ок. я так щас и делаю. Давай с этого момента начнем рассуждение
Alexander
Есть 1 реп на проект. Там около 6 энвов. Все работает. Единственного, что в плейбуках много относительнах путей и требования к запуску с указанием энва.
Alexander
Структура близкая к варианту на сайте ансибла номер 2, но немного изменено.
Alexander
Тем что роли отдельно. Плюс кое что ещё.
Dmitry
Вопрос, 1. как такую структуру положить в CI/CD?
Dmitry
с возможностью роллбека, тестовых сред и прочих необходимостей ?
Dmitry
Дано: 5 DevOps которые с различной пересеченностью работают над данным репом
Alexander
Вопрос не ясен для меня честно говоря. Все зависит от вашего си и квалити гейта. Изменение в репе запускает процесс. А дальше уже по требованиям.
Sergey
Вопрос, 1. как такую структуру положить в CI/CD?
Не очень понятно, причём тут CI/CD.
Sergey
с возможностью роллбека, тестовых сред и прочих необходимостей ?
Тестовый инвентори - всего лишь ещё один инвентори.
Nklya
Не очень понятно, причём тут CI/CD.
ну во-первых, это красиво))
Sergey
Что именно?
Nklya
полный сиайсиди) P.S. я тоже не понимаю нахера здесь оно нужно
Dmitry
А как гарантирвоать иначе полное соответствие конфига тому что в среде?
Sergey
полный сиайсиди) P.S. я тоже не понимаю нахера здесь оно нужно
Тебе просто выражение нравится? 😊 Вообще деплой тестируется в момент деплоя. Конец. В процессе написания и отладки у меня деплой обычно бывает запущен больше сотни раз - это факт. Какие ещё нужны гарантии?
Sergey
Можно для профилактики НЕ катать ничего руками - от слова "совсем". Да, медленно получается, да, неудобно. Но важный момент - в процессе отладки ты залазишь окружению в такие места, о которых даже архитектор не имел понятия.
Dmitry
Я не могу запустить конфиг даже на dev, предполагая что в теории оно может удалить что-то
Dmitry
а когда это делают несколько человек, так вообще
Sergey
ansible-playbook <......> —check —diff
Dmitry
есть 5 челвоек, как сделать тестирование PR двух из них?
Sergey
PR не тестируется. dev - сборище говна, песочница, может быть сломан в любой момент. если нельзя ломать dev - это не dev.
Dmitry
ansible-playbook <......> —check —diff
не факт что баги типа отсутсивия переменной в скоупе заметишь таким образом. тестирование по любому надо
Dmitry
две разных оси поломки
Nklya
а дев для дивапсов это вообщее))
Dmitry
Не понятно о чем спор, если честно. Мне нужно чтобы команда из 5 человек могла эффективно использовать средства git для создания, тестирвоания и разворачивания сред
Dmitry
Пока я слышу что "мы длеаем все вручную и тестируем на месте" но это ведь никак не решает проблемы, один протестировал на тестовом инвенторе, другой протестировал. Оба запустили ручной деплой и все сломалось
Sergey
Я, честно признаться, не вкурю никак, причём тут всё-таки git.
Dmitry
а как иначе связать работу 5 человек по инфраструктуре?
Nklya
при чем здесь деплой постоянно? у вас ансибл только для этого что ли?
Dmitry
Я, честно признаться, не вкурю никак, причём тут всё-таки git.
вполне возможно что я смотрю на проблему с другого угла
Dmitry
при чем здесь деплой постоянно? у вас ансибл только для этого что ли?
только для деплоя инфраструктуры, да. в т.ч. ресурсов AWS, что самое страшное - если хоп и удалить все vpc)
Sergey
есть веб-морда (любая), люди жмут кнопку, веб-морда запускает анисбл с нужными параметрами, конец.
Nklya
если хочешь тестирование - тестируй роли. можно их вынести в отдельные репы и версионировать
Nklya
гит нужен для контроля что менялось и можно линтеры гонять на pull request
Dmitry
если хочешь тестирование - тестируй роли. можно их вынести в отдельные репы и версионировать
тестирование ролей есть в том или ином смысле. Но это не покрывает интеграции. возможно если добавить test среду то интеграция покроется.
Sergey
на преыдущем есте работы у меня было отдельное окружение, на котором можно было тестировать плейбуки.
Dmitry
Вот пример: Нужно добавить еще одну подсеть в AWS vpc
Nklya
а зачем менеджить инфру в амазоне ансиблом-то?
Nklya
хочется острых ощущений?
Nklya
ну такое
Dmitry
Расскажи
Sergey
ну такое
так какое? 😊
Nklya
каждый инструмент лучше всего работает для своих задач
Nklya
что-либо сложнее одного-двух серваков я бы ансиблом не делал
Dmitry
...поверь, работает хорошо
Sergey
что-либо сложнее одного-двух серваков я бы ансиблом не делал
ну фу. 130 хостов, из них 36 в софтлеере, 94 в пяти регионах - легко.
Nklya
есть же тераформ, и прости господи клауд формейшен
Dmitry
есть же тераформ, и прости господи клауд формейшен
ну так ансибл и рулит клаудформейшеном в моем случае
Dmitry
схема прекрасно работает
Dmitry
давайте вернемся к тестированию изменений типа "добавить или удалить подсеть из одной из VPC"
Nklya
это дорого будет
Dmitry
Как оно попадает в тестовый аккаунт ?
Dmitry
это дорого будет
все относительно. Мне дорого будет положить прод)
Dmitry
давайте так, если бы у вас были все деньги ) нужен дизайн мечатателя
Nklya
видел пару статей на тему как тестируют модули тераформа. их гоняют на тестовых аккаунтах