2.0 KiB
2.0 KiB
status, type, tags, created, updated, title, source
| status | type | tags | created | updated | title | source | |||
|---|---|---|---|---|---|---|---|---|---|
| seed | guide |
|
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 - основа работы