Files
SecondBrain/90 Library/Programming/Ruby On Rails/Capistrano deploy через systemd.md
2026-05-31 10:18:48 +03:00

2.0 KiB
Raw Permalink Blame History

status, type, tags, created, updated, source, aliases
status type tags created updated source aliases
seed guide
programming
ruby-on-rails
deploy
2026-05-29 2026-05-29 Команды для деплоя с помощью Capistrano
Capistrano deploy через systemd

Capistrano deploy через systemd

Заметка про выдачу минимальных sudo-прав для деплоя Rails-приложения через Capistrano, когда сервисы управляются через systemd.

Sudoers

В /etc/sudoers задаётся alias для команд, которые Capistrano может выполнять без пароля:

Cmnd_Alias PUMA_CONTROL = /usr/bin/mv /tmp/navigation_backend_puma_production.service /etc/systemd/system/, /usr/bin/mv /tmp/navigation_backend_puma_production.socket /etc/systemd/system/, /bin/systemctl daemon-reload, /bin/systemctl enable navigation_backend_puma_production, /bin/systemctl start navigation_backend_puma_production, /bin/systemctl stop navigation_backend_puma_production, /bin/systemctl restart navigation_backend_puma_production, /bin/systemctl enable navigation_backend_puma_production.socket, /bin/systemctl restart navigation_backend_sidekiq_production.service, /bin/systemctl restart navigation_backend_solid_queue_production.service, /bin/systemctl restart solid_queue
deploy ALL = NOPASSWD: PUMA_CONTROL

Где:

  • deploy — пользователь, от имени которого выполняется деплой;
  • navigation_backend — имя приложения в service/socket unit-файлах.

Команды деплоя

cap production puma:install
cap production deploy

puma:install кладёт systemd unit-файлы, после чего deploy перезапускает Puma и фоновые сервисы без интерактивного ввода пароля.

Связанные заметки

  • Ruby On Rails - MOC
  • Sidekiq - основа работы