我正在使用Capistrano部署到我的VPS(Ubuntu的Linode),似乎需要我的root用户的密码才能完成部分部署。 这是不好的,因为我看到它。
(我与nginx和乘客滚动。)
我recursion地部署目录和git仓库。 我的deploy.rb文件中唯一的exception是我运行bundle install和rake db:在deploy:update_code之后进行迁移。
下面是从部署相对(我相信)到根密码请求的输出:
* 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:
我不明白为什么在命令针对部署用户的chown目录时,root密码是必需的。
为了安全起见,我的目标是部署过程只需要部署用户的密码。 有什么我不考虑?
在你的config / deploy.rb文件中添加
`set :use_sudo, true`
并确保你的/ etc / sudoers安装正确。
你的config/deploy.rb文件中的用户和组设置是什么? 您可能想要将它们设置为如下所示:
set :user, "deploy" set :group, "deploygroup" set :runner, "deploy"
或者将它们设置为你想拥有你的应用程序目录树的非特权帐户。