我正在尝试使用基于capifony和Symfony2的Symfony 2项目部署Web应用程序。
它使用Process触发我的“cap deploy”任务并在Web浏览器中显示我的输出。
当在shell中时,如果我以用户www-data运行我的“cap deploy”(与Process使用的相同),我的部署工作正常,因此我的部署任务和我的身份验证密钥都没有错。 但是,当我从我的网络应用程序调用我的任务时,capifony告诉我它无法在远程服务器上进行身份验证。
triggering start callbacks for `deploy'
* executing `deploy:setdomain'
* executing `deploy'
* executing `deploy:update'
** transaction: start
* executing `deploy:update_code'
triggering before callbacks for `deploy:update_code'
[32m--> Updating code base with checkout strategy[0m
executing locally: "git ls-remote [ myrepo ]"
command finished in 2068ms
* executing "git clone -q -o [ remote server ] [ my repo ]
/var/www/spinfony/releases/20121211100449 && cd /var/www/spinfony/releases/20121211100449 && git checkout -q -b deploy be53233e51a4c542c3bc8603b424e57f988898a4 && (echo be53233e51a4c542c3bc8603b424e57f988898a4 > /var/www/spinfony/releases/20121211100449/REVISION)"
servers: ["[ remote server ]"]
Password: stty: standard input: Invalid argument
stty: standard input: Invalid argument
stty: standard input: Invalid argument
*** [deploy:update_code] rolling back
* executing "rm -rf /var/www/spinfony/releases/20121211100449; true"
servers: ["[ remote server ]"]
** [deploy:update_code] exception while rolling back: Capistrano::ConnectionError, connection failed for: [ remote server ] (Net::SSH::AuthenticationFailed: [ user ])
connection failed for: [ remote server ] (Net::SSH::AuthenticationFailed: [ user ])
我正在试图找出为什么capifony似乎期望我无法提供的密码,因为我没有从shell运行它,而当我从shell运行它时,它工作正常而不问我什么
再一次,从同一个用户调用相同的文件。
答案 0 :(得分:1)
这是一个已知的“bug”
你需要告诉capistrano使用
键尝试将此添加到您的deploy.rb:
ssh_options[:keys] = %w(/what/ever/.ssh/id_rsa)
答案 1 :(得分:0)
当您从Web应用程序调用任务时,您需要告诉它要使用的用户。
set :user, "www-data"
set :domain, "webserverdomainname.com"