我正在尝试优化我的应用程序。我想将rails应用程序部署到不同的机器上。不幸的是我无法理解如何做到这一点。
role :web, "ip1","ip2"
role :app, "ip1, ip2"
role :db, "db_ip", primary: true
set :application, "Name"
set :user, "root"
set :port, 22
set :deploy_to, "/home/#{user}/apps/#{application}"
set :ssh_options, {:forward_agent => true}
ssh_options[:forward_agent] = true
ssh_options[:keys] = %w(~/.ssh/id_key)
这是我的配置。我有两个独角兽服务器和一个数据库服务器。当我使用cap:deploy:cold它要求我输入密码但是我无法理解我应该输入哪台机器的密码?它不适用于所有服务器的密码。我收到了
(Net::SSH::AuthenticationFailed: root)
有人可以解释一下我的配置应该如何部署到所有机器?
答案 0 :(得分:0)
这应该可行,但您应该设置ssh连接,这样就不必使用ssh密钥输入密码。
答案 1 :(得分:0)
这适用于版本3,并在看到版本设置为2之前发布。
尝试设置这样的全局选项。
set :ssh_options, {
keys: %w(/home/your_user/.ssh/id_key),
forward_agent: true,
}
你的密钥叫做id_key(id_rsa更常见)
如果您需要按服务器执行此操作,则可以执行此操作。
server 'ip1',
user: 'root',
roles: %w{web app},
ssh_options: {
user: 'foobar', # overrides user setting above
keys: %w(/home/user_name/.ssh/id_rsa),
forward_agent: false,
}