Files
SecondBrain/90 Library/Programming/Ruby On Rails/Capistrano deploy через systemd.sync-conflict-20260603-110331-23DMR5O.md
T
2026-06-03 14:09:18 +03:00

43 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
status: seed
type: guide
tags:
- programming
- ruby-on-rails
- deploy
created: 2026-05-29
updated: 2026-05-29
title: Capistrano deploy через systemd
source: "[[Команды для деплоя с помощью Capistrano]]"
---
# Capistrano deploy через systemd
Заметка про выдачу минимальных `sudo`-прав для деплоя Rails-приложения через Capistrano, когда сервисы управляются через `systemd`.
## Sudoers
В `/etc/sudoers` задаётся alias для команд, которые Capistrano может выполнять без пароля:
```sudoers
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-файлах.
## Команды деплоя
```bash
cap production puma:install
cap production deploy
```
`puma:install` кладёт `systemd` unit-файлы, после чего `deploy` перезапускает Puma и фоновые сервисы без интерактивного ввода пароля.
## Связанные заметки
- [[Ruby On Rails]]
- [[Sidekiq - основа работы]]