Назад | Перейти на главную страницу

Capistrano требует пароля root для развертывания - плохо

Я использую Capistrano для развертывания на моем VPS (ubuntu, на Linode), и мне кажется, что для завершения части развертывания требуется пароль моего пользователя root. На мой взгляд, это нехорошо.

(Я использую nginx и Passenger.)

Я рекурсивно выбрал каталог развертывания и репозиторий git. Единственная аномалия в моем документе deploy.rb заключается в том, что он запускает установку пакета и rake db: migrate после развертывания: update_code.

Вот результат развернутого родственника (я полагаю) на запрос пароля root:

* executing `deploy'
  * executing `deploy:update'
 ** transaction: start
  * executing `deploy:update_code'
    updating the cached checkout on all servers
    executing locally: "git ls-remote deploy@mydomain:~/myapp.git master"
  * executing "if [ -d /home/apps/myapp/shared/cached-copy ]; then cd /home/apps/myapp/shared/cached-copy && git fetch  origin && git reset  --hard 8ea422656949f90cc27fd17cb31d68bbaeb33c6e && git clean  -d -x -f; else git clone  --depth 1 deploy@mydomain:~/myapp.git /home/apps/myapp/shared/cached-copy && cd /home/apps/myapp/shared/cached-copy && git checkout  -b deploy 8ea422656949f90cc27fd17cb31d68bbaeb33c6e; fi"
    servers: ["mydomain"]
    [mydomain] executing command
 ** [mydomain :: out] root@mydomain's password:
Password:

Я не понимаю, зачем нужен пароль root, если команды направлены против каталогов chowned пользователя развертывания.

В целях безопасности я стремлюсь к тому, чтобы в процессе развертывания требовался только пароль пользователя развертывания. Я что-то не рассматриваю?

В вашем файле config / deploy.rb добавьте

`set :use_sudo, true`

и убедитесь, что ваш / etc / sudoers настроен правильно.

Каковы ваши настройки пользователей и групп в вашем config/deploy.rb файл? Вы можете установить для них что-то вроде:

set :user, "deploy"
set :group, "deploygroup"
set :runner, "deploy"

Или установите их для любой непривилегированной учетной записи, которой вы хотите владеть деревом каталогов вашего приложения.