Sander
если питон запускать
Anonymous
тонко!
так это ж вроде идеология короси. типа сама система - это тоже контейнер
Sander
в случаи с контейнерами это навряд ли понадобиться
Sander
))
Oleksandr
да я понял )
Sander
🤔
Sander
CoreOS чудо
Oleksandr
в продакшоне же coreos у тебя?
Sander
в продакшене у меня ничего нет, я только все создаю и изучаю )
Oleksandr
жаль
Sander
почему
Sander
конено лучше было бы если я бы все уже умел
Sander
все было бы намного быстрей
Oleksandr
ну как почему. хочется лулзы под вечер почитать про coreos в проде )
Sander
аа
Sander
нууу
Sander
я CoreOS, взял ток потому что там нет ничего лишнего, он заточен чисто под контейнеры, ну это так же повышает безопасность сервера.
но скорей в самой программе будет больше дыр, чем в самом сервере )
Sander
docker,rocket там уже стоит
Sander
что очень удобно
Oleksandr
а поставить докер на любой другой дистрибутив не очень удобно?
Sander
так же
Sander
но надо будет поставить еще сам docker, rocket
Sander
а в coreos, нужно поставить python
Alchemist
нафига*
Sander
ну да, она заточена под контейнеры, поэтому я и выбрал coreos
Oleksandr
да я так-то ничего против не имею. хочется половить баги coreos, чому б и нет )
Sander
да я думаю там багов намного меньше чем в любом другом дистрибутиве
Sander
ядро там gentoo
Max
Ох, мастер нелогичных решений
Sander
ты умней тебе видней
Vlad
Anonymous
там нет ркт
Alchemist
coreos еще и под кластер
Aleksey
кстати ansible-semaphor уже можно смотреть даже
Дмитрий
работает ?)
Aleksey
он пока все еще вызывает отвращение но уже запускается и позволяет что то вносить
maniac
оно и раньше так работало
jagga
2я версия?
Artemiy
Народ, подскажите, вот как внутри CI процесса фигурирует ansible-playbook.
Конкретный кейс, который пытаюсь разобрать, такой:
Есть GitlabCI. При мерже в ветку мастер задан PipeLine Build -> Test -> Deploy
GitlabCI, для выполнения задач (build, test и т.д.) имеет Runner'ов.
Runners распределены, т.е. могут быть вне одной машины.
Artemiy
Так вот Build и Test получается можно выполнить на других машинах
Artemiy
А деплоиться Ansibl'ом в таком кейсе как?
Artemiy
Как и откуда запускать Ansible? Где должен быть play-book-cfg.yaml?
Artemiy
Ну т.е. не понимаю самого flow
nvkv
Смотри, как сделано у меня
nvkv
в папке с проектом прямо лежит папка ansible, в которой лежит роль для деплоя и плейбук
nvkv
там же лежит ansible.cfg
nvkv
предварительно на все машины с раннерами раскатываешь нужный ssh ключик
nvkv
на фазе Deploy просто запускаешь cd ansible && ansible-playbook deploy.yml
nvkv
если вдруг, по каким-то причинам, тебе нельзя запускать разные фазы на разных машинах — в гитлабе можно помечать раннеры тэгами и прописать в .gitlab-ci.yml, на раннерах с каким тэгом запускать ту или иную фазу
Vlad
nvkv
или так, да
Artemiy
Ну т.е. в каждом ранере сначала ставить Ansible?
Artemiy
К тому же все роли вместе с плейбуком держать получается? Если 20 сервисов и надо поменять в деплое что-то, то 20 раз менять не айс же.
Оправдан ли такой подход? Или может есть способ более красивый?
nvkv
пжжди
nvkv
у тебя в каждом проекте лежит роль и плейбук для его деплоя
nvkv
или у тебя монолит?
Artemiy
У меня щас еще ансибл не используется, хочу начать использовать. Так что пока никаких плейбуков не лежит.
Собственно интересует как с ними обращаться и куда класть.
По поводу структуры:
У меня ~10 штук PHP сервисов. Это один проект.
nvkv
они на разные машины деплоятся?
Artemiy
Да
nvkv
но лежат в одном гит-репозитории?
Artemiy
Нет, на каждый сервис свой репо, конечно.
nvkv
ну, дак тогда у тебя в каждой репе лежит роль для деплоя конкретно вот этого сервиса
hamper 𓅝
вообще вариантов откуда запускать может быть много, если это именно деплой то да, на серверах с ранерами иногда удобно, хотя я и деплой и настройку сейчас с локального компа на текущем проекте запускаю, так чуть удобнее, но не во всех случаях
Artemiy
Хм, я хотел общий конфиг иметь, а только переменными регулировать всё.
nvkv
ну можно и так
nvkv
тогда тебе надо выделить контрольную ноду и запускать всё с неё, передавая ей контекст
nvkv
*как-то*
Artemiy
Вот да, я примерно так и предлагаю.
Artemiy
Идеи реализации есть?
Artemiy
Может кто-то так организовывает?
hamper 𓅝
у тебя каждый сервис отдельно деплоится?
nvkv
ну тут главная заморочка как передать артефакты на контрольную ноду
nvkv
но я вообще не уверен, что это правильная идея
nvkv
почему бы не деплоить их отдельно?
hamper 𓅝
просто например на прошлом проекте у меня ансиблом только настройка серверов была, а деплой был на баш скриптах вообще, все от проекта зависит, где то одно удобнее где то другое
Artemiy
Да, деплой каждого сервиса отдельно у меня.
hamper 𓅝
а условие деплоя какое? автоматически по коммиту в определенную ветку или ручной запуск?
Artemiy
Комит в мастера
Artemiy
Такой флоу в голове
Build -> Tests -> Push to Docker Registry.
После пуша сервера должны забрать из регистри новый image и запустить.