2011-09-22 21 views
1

我正在關注instructions以設置資源。現在我正在步驟4中設置生產服務器。這是我的配置文件:試圖設置capifony + amazonec2

# deploy.rb 

set :application, "MyFirm" 
set :deploy_to,  "/var/www/myfirm.com" 
set :domain,  "dev.myfirm.com" 

set :scm,   :gitrepoit 
set :repository, "ssh://[email protected]:/home/myfirm/myfirm.git" 


set :user, "ec2-user" 
set :domain, "ec2-46-137-123-97.eu-west-1.compute.amazonaws.com" 
ssh_options[:keys] = [File.join("foo.key")] 


role :web,   domain 
role :app,   domain 
role :db,   domain, :primary => true 

set :use_sudo,  false 
set :keep_releases, 3 

但是,當我執行cap deploy:setup,雖然我已經在配置文件中的公鑰,它要求我輸入密碼...

* executing `deploy:setup' 
    * executing "mkdir -p /var/www/myfirm.com /var/www/myfirm.com/ 
releases /var/www/myfirm.com/shared /var/www/myfirm.com/shared/app/ 
logs /var/www/myfirm.com/shared/web/uploads" 
    servers: ["ec2-46-137-123-97.eu-west-1.compute.amazonaws.com"] 
Password: 

任何想法?

capifony 2.1.1

回答

6

嗯..我想在ssh_options[:keys]的路徑是相對於配置文件(deploy.rb),但實際上是相對於蓋文件(/var/lib/gems/1.8/箱/帽)。

這是工作(atfer複製在/var/lib/gems/1.8/bin/ foo.key):

ssh_options[:keys] = ["foo.pem")] 

絕對路徑也行,當然:

ssh_options[:keys] = ["/home/me/foo.pem")] 

ssh_options[:keys] = [File.join(ENV["HOME"], "foo.pem")] 

我最後發佈:

# deploy.rb 

set :application, "MyFirm" 
set :deploy_to,  "/var/www/myfirm.com" 
set :domain,  "dev.myfirm.com" 

default_run_options[:pty] = true 

set :scm,   :git 
set :repository, "[email protected]:/home/myfirm/myfirm.git" 

set :ssh_options, {:forward_agent => true} 

set :user, "ec2-user" 
set :domain, "ec2-41-137-132-97.eu-west-1.compute.amazonaws.com" 
ssh_options[:keys] = ["foo.pem"] 


role :web,   domain 
role :app,   domain 
role :db,   domain, :primary => true 

set :use_sudo,  false 
set :keep_releases, 3 

set :shared_files,  ["app/config/parameters.ini"] 
set :shared_children, [app_path + "/logs", web_path + "/uploads", "vendor"] 
set :update_vendors, true