170 похожих чатов

Ребят, а кто как деплоит приложеньки с гитлаба? Хочу пример

с ансиблом найти..

29 ответов

8 просмотров

А как у тебя приложение в прод должно поставляться?

Yury- Автор вопроса
Alexey Shumkin
А как у тебя приложение в прод должно поставляться...

Без докера. Склонировать, собрать, остановить старое, скопировать бинарь, запустить. Все выглядит так, как ансибл, но пока не получается найти подробно как из гитлаб ci запустить плейбук

Можно без ансибла через докер https://habr.com/ru/post/449952/

Yury- Автор вопроса
Andrew ᛉ
Можно без ансибла через докер https://habr.com/ru/...

Надо без докера, но статейку не видел, может чего почерпну,спасибо)

Yury
Без докера. Склонировать, собрать, остановить стар...

раз без докера, тогда лучше тогда RPM/DEB-пакет собирать

Yury
а разница?

спроси у админов ))))) они тебе расскажут

Вот пример с деплоем по SSH без докера и ансибла. https://golangforall.com/ru/post/go-build-and-deploy-ssh-gitlab.html

Yury
а разница?

Собрать RPM (или deb) - это не сложно. Плюсом имеешь быстрое обновление, плюс историю, в которой можешь всегда сделать rollback на нужный шаг.

Yury
а разница?

но отвечая на вопрос: ты можешь поставить, удалить, обновить, задаунгрейдить/откатить приложение средствами ОС банально узнать какая его версия стоит - тоже в пакете (нормального приложения) есть дока, релиз-ноутс ,etc при установке, обновлении, откате выполнить определённые действия в ОС - тоже... и т.п.

Alexey Shumkin
но отвечая на вопрос: ты можешь поставить, удалить...

+ инфа о том, где оно установлено какие файлы использует (необходимы для работы) не изменено ли оно с момента установки.. на эти вопросы легко получить ответ админу без обращения к разработчику

Elmanov Anton
Вот пример с деплоем по SSH без докера и ансибла. ...

вот это — ssh -p$SSH_PORT $SSH_USER@$SSH_HOST 'sudo service project stop && cp ~/binary_tmp /var/www/project/binary && sudo service project restart' прям доставляет у меня первый вопрос, откуда на хосте, например, изначально взялся project.service (т.е. /etc/systemd/system/project.service`) файл?

Yury- Автор вопроса
Alexey Shumkin
+ инфа о том, где оно установлено какие файлы испо...

тогда по хорошему надо ещё репу поднимать, верно?

Yury
тогда по хорошему надо ещё репу поднимать, верно?

ну, это прям совсем по хорошему, да приложение собирается и релизится в репу (или в артифактори/нексус) и ансиблом(если ансибл) уже деплоится из репы на все хосты (мы же помним, что на проде у нас может быть не один инстанс)

Alexey Shumkin
вот это — ssh -p$SSH_PORT $SSH_USER@$SSH_HOST...

есть некоторая предварительная работа на хосте - там должен появиться systemd (что дефолтно для многих систем, собственно он и использован потому как дефолтный, иначе можно было бы еще в supervisord закопаться). ну и надо создать деплой юзера с sudo правами на перезапуск сервиса.

Alexey Shumkin
вот это — ssh -p$SSH_PORT $SSH_USER@$SSH_HOST...

"прям доставляет" деплой без виртуализации вообще я бы сказал - мне кажется, это огромная редкость и потому там кругом кастомные операции, зависящие от системы. И тот же ансибл у каждого свой. Если на хосте больше 500 мб оперативы - то я бы все же рекомендовал докер. Небольшой оверхед на его работу, но зато все сразу встает на рельсы.

Elmanov Anton
есть некоторая предварительная работа на хосте - т...

не, про системд всё понятно.. я про файл с описанием сервиса... т.е. с нуля (первый раз) приложение этим скриптом не поставишь.. это - хрень, как по мне )) вредный совет от автора

Yury- Автор вопроса
Alexey Shumkin
не, про системд всё понятно.. я про файл с описани...

у меня мейкфайлом системд сервис создается

Elmanov Anton
"прям доставляет" деплой без виртуализации вообще ...

про докер соглашусь про "огромная редкость" - сомневаюсь, что прям редкость... к тому же мы говорим про Го, который "один бинарник", ему докер как бы не очень прям сильно нужен

Yury- Автор вопроса
Elmanov Anton
"прям доставляет" деплой без виртуализации вообще ...

у меня lxc контейнеры под проксмоксом, докер в виртуалке поднимать спецом не хочется

Yury
у меня мейкфайлом системд сервис создается

нуу.. это не значит, что это best practice

Yury- Автор вопроса
Alexey Shumkin
нуу.. это не значит, что это best practice

согласен, но рпм/деб пакеты также делают)

Yury
согласен, но рпм/деб пакеты также делают)

они это делают стандартным всем админам понятным способом

Alexey Shumkin
про докер соглашусь про "огромная редкость" - сомн...

с одним бинарником как раз удобство в деплое образов FROM scratch, вес которых равен весу бинарника, только есть инфраструктура докера для деплоя

Elmanov Anton
с одним бинарником как раз удобство в деплое образ...

да я не против докера )) я к тому, что не у всех есть докеры/куберы, и приложение на Го вполне себе счастливо может жить без проблем с зависимостями в ОС

Yury
у меня lxc контейнеры под проксмоксом, докер в вир...

Тогда, я бы предпочел выстроить систему деплоя и найти ansible роли (или как оно там называлось), которые по сути сделают тот же деплой. С deb я видел в реализации отдельного деб-репозитория - может потребоваться время. Про плюсы в виде различных версий - не то, чтобы был солюшн решаем только deb-пакетами. При обычном деплое по SSH, можно делать папки с новой версией, старые оставлять (например, 10 последних) и менять только симлинк.

Yury- Автор вопроса
Elmanov Anton
Тогда, я бы предпочел выстроить систему деплоя и н...

вот я тоже склоняюсь к ансиблу. хранить исходники на боевой машине это требование такое, поэтому деб пакет не совсем мое, хоть и заманчивое. пока не могу найти вменяемого руководства по запуску плейбуков из гитлаб ci

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

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

@Aiwan что такое база образца?
Alexey
27
Не многие знают, а кто знает, тот уже успел забыть, что в далёком 2004 году эта игра произвела настоящий фурор, настолько революционной была технология, применяемая для её соз...
ICCID
4
коллеги, добрый вечер! А никто не знает как модальная форма может себя закрыть? Ну допустим модальная форма определила, что смысла ей работать нет и хочет вернуть modalResult...
Михаил
83
Короче я тут узнал полный пиздец Что кучу постов которые я создавал через posted Спустя время не могу редактировать и менять Мол телега возвращае ошибку Это реально так ...
inc.
13
Хотя у меня сейчас есть более сложная задача, вот её думаю: как объяснить челу переходного возраста противоположного полу, обучающегося в польском колледже (а-ля наш техникум)...
Вячеслав Кузьменко
15
а сколько всего в IT умерло? Где флеш-игры, их было туча, где они все? Сегодня технология есть, а завтра вжух и мёртвая. Этот wasm сильно напоминает джавовские апплеты, silver...
Constantin F.
5
Добрый день Хочу начать обучение языку, не являюсь представителем it, буду благодарна за помощь, совсем пока не понимаю ничего) Подскажите, пожалуйста, где можно начать первы...
Sara Lala
30
а вы в курсе, что Initialize() не работает? var arr123: array[0..123] of Byte; ... Initialize(arr123, SizeOf(arr123));
Iluha Companets
8
что читать по делфи?вообще 0 в нем
fd dsds
9
верно что я могу удалить эти addq и subq т.к. со стеком никакого взаимодействия нет (исключая call)?
Michael
16
Карта сайта