LINUX.ORG.RU

Deploy конфигурации/скрипта на сервер

 ,


1

2

Мой кейс: я отлаживаю сложный диалплан на Lua для Asterisk на тестовом сервере. Docker и прочие контейнеры тут не подходят - есть работа с железом (DAHDI).

Сейчас я просто ковыряюсь в NeoVim через SSH, но дошел до той стадии когда пора заливать в Git.

И тут вилка:

  1. Продолжить ковырять через SSH с периодическими коммитами (бакап)

  2. Писать на десктопе, но это будут постоянные качели пуш/пулл между сервером и рабочей машиной.

  3. Через что-то вроде remote плагин для VSCode.

Идеологически правильным вижу второй вариант - он же и останется после введения сервера в продакшн. Но что-то как-то муторно на каждый чих commit => push > pull > module relad pbx_lua.so

Может есть какой-то метод про который я не слышал?

Мне нужно погружаться в CI/CD, хуки и т.д., да?

★★★★★

Последнее исправление: Turbid (всего исправлений: 1)

Можно сделать гитовый хук (например, post-commit у себя, или post-receive на гит-сервере), который будет делать автоматическое развертывание (например, scp и module reload через ssh-команду) на целевую машину. Как вариант - делать это хуком на сервере во время пуша

но дошел до той стадии когда пора заливать в Git

С этой стадии надо начинать, а не «доходить» :)

annulen ★★★★★
()
Ответ на: комментарий от annulen

Можно сделать гитовый хук

Ну понятно, я так и предполагал

С этой стадии надо начинать

Ну кому интересна история о том, как я учу Lua и запускаю тестовые этюдики диалплана.

Turbid ★★★★★
() автор топика
Ответ на: комментарий от Turbid

Ну понятно, я так и предполагал

Некоторые, конечно, делают развертывание через git pull, но вообще это так себе идея, потому что даже для скриптов исходники != артефакты.

annulen ★★★★★
()

в CI/CD

В идеале, да - ты пушишь изменения, они проходят проверку, и только потом развертываются. Но в более простых случаях можно обойтись примитивным хуком.

annulen ★★★★★
()
Последнее исправление: annulen (всего исправлений: 1)

В качестве временного решения можно примонтировать каталог с сервера по nfs (в локалке), sshfs и т.п. А для автоматического релоуда запустить на сервере какой-нибудь монитор фс (скрипт с inotifywait или что-то более продвинутое).

annulen ★★★★★
()
Ответ на: комментарий от annulen

Нубвопрос - а нельзя на десктопе написать скрипт push, который по ssh забрасывает что надо и куда надо, делает коммит (если надо) и даже тестов запускает?

У мну скажем есть машины с которых я не могу сделать pull (на них войти могу, с них выйти никуда нее могу - ключей нет). Опять таки гит нужен, но каждый чих коммитить как то не хочется.

sshfs хорошее решение, но надо не забывать отмонтировать - ноут усыпил/разбудил и оно все зависает.

AntonI ★★★★
()
Ответ на: комментарий от AntonI

а нельзя на десктопе написать скрипт push, который по ssh забрасывает что надо и куда надо, делает коммит (если надо) и даже тестов запускает?

Можно, разрешаю.

каждый чих коммитить как то не хочется

Вариант с хуками предназначен для случая, когда не хочется деплоить «каждый чих», а делать это только при пуше (или при коммите). Если разработка ведется методом тыка, то понятное дело что он не подходит.

annulen ★★★★★
()
Ответ на: комментарий от AntonI

У мну

Мну - Меня Нужно Убить. Аккуратнее с этим заклинанием

на них войти могу, с них выйти никуда нее могу - ключей нет

ssh-add, agent forwarding, м?! Как много ещё предстоит узнать в этом мире!…

гит нужен, но коммитить не хочется

🤔

aol ★★★★★
()
Ответ на: комментарий от aol

Мну

Мну - это форма 1-го лица ед.ч. наст.вр. глагола мять.

Или «межушный нервный узел», если рассматривать как аббревиатуру.

annulen ★★★★★
()
Последнее исправление: annulen (всего исправлений: 1)

Юзал и юзаю для этой цели ssh+vim, ну и автобэкап конфигов куда подальше раз в сутки. Редактирование на пекарне и постоянные дрочения туда-обратно не понравились, оверкилл без преимуществ imho. Если и двигаться от этой ситуации куда-то, то сразу писать свою морду к этому диалплану или максимально выносить всю телефонную логику и управление в биллинг (radius call management).

yu-boot ★★★★
()