L1Qu0R
@L1Qu0R
Веб разработчик

Как правильно сделать перезагрузку веб-сервера?

Проект деплоится на сервер с помощью capistrano юзером "deployer", у которого нету прав на перезагрузку веб серверов. Права есть только у рута, соотвественно сейчас, чтобы перезагрузить сервер приходится по ssh руками это делать под рутом.
Так вот как правильно перезагружать в такой ситуации сервак без прямого вмешательства?

Как вариант давать юзеру "deployer" права через visudo и загонять в капистрано таск с коммандой по перезагрузке? Но правильно ли это будет с точки зрения безопасности?
  • Вопрос задан
  • 811 просмотров
Пригласить эксперта
Ответы на вопрос 4
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
Как вариант давать юзеру "deployer" права через visudo и загонять в капистрано таск с коммандой по перезагрузке? Но правильно ли это будет с точки зрения безопасности?
На мой взгляд - нормальное решение. Только права давать исключительно на reload, но не на restart.
Ответ написан
Комментировать
Preemiere
@Preemiere
Symfony developer
Правильнее дать пользователю deployer права на перезагрузку nginx без доступа к sudo.
Либо запустить ещё один nginx от deployer и перезагружать сколько вздумается, а первым nginx'ом проксировать запросы на второй.
P.S. А необходимость в перезапуске nginx'a после деплоя точно есть?
Ответ написан
sim3x
@sim3x
Делаешь скрипт, в котором перечисляешь все операции от рута
Добавляешь в судоерс права пользователю деплой на запуск данного скрипта
deployer ALL = (root) NOPASSWD: /path/to/my/program

Дергаешь скрипт из CI

Тут другое плохо - можешь "не заметить", что скрипт криво отработал и у тебя на продакшене ничего нет
Так что руками делать все равно придется
Ответ написан
Комментировать
AirWorker
@AirWorker
Node.js full stack web dev
Если на сервере деплоится один проект - я вообще не вижу причин заморачиваться с юзерами и бояться деплоя от рута. Если юзер от которого выполняется деплой может завалить этот самый деплой - зачем бояться за остальные потроха сервера?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы