Files
SecondBrain/90 Library/Programming/Ruby On Rails/Capistrano deploy через systemd.md
T
2026-05-29 07:44:14 +03:00

2.0 KiB
Raw Blame History

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

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
  • Sidekiq - основа работы