我在这里不知所措,在为海洋解决方案(阅读:互联网)搜索解决方案之后,我只剩下堆栈了。任何帮助赞赏。Capistrano在多个主机部署中失败
我有capistrano运行本地部署到几个不同的环境。 (我在Windows 7上,fwiw)。一切都很好,直到我需要在单个部署期间部署到多个应用程序服务器。
当我拨打cap deploy
时,通常会提示输入我的ssh密码。我有ssh-agent运行(git从来没有为我的传球而痛苦),但尽管这个Capistrano在每次部署时都会给我一次警告。无论如何,它在部署到一台主机时总是有效。
现在,当我试图同时部署到多台服务器,它要求我的密码似乎是多次:
(IPS由ME移除)
servers: ["redacted", "redacted"]<br />
Enter passphrase for ~/.ssh/id_rsa: Enter passphrase for ~/.ssh/id_rsa:
因此,与上述我输入我的密码,但这不起作用。它等待的小会儿,然后吐出了这个错误:
connection failed for: <one of the server ips> (NoMethodError: undefined method `overwrite' for nil:NilClass)
这就是那结束。
- 我可以“无密码”SSH服务器我部署就好了。
- 我很确定ssh-agent正在运行,因为我可以每次都打Git w/out输入我的密码短语
- 在cap部署中使用'forward_agent'设置不起作用。
- 这是我的角色:
role :app, "ip 1 removed", "ip 2 removed"
- 如果我设置
default_run_options[:max_hosts] = 1
,它的工作原理确定,但它要求我的密码短语,其最终被很多每台主机我部署到..每一个连接。
基本上我寻找任何的下方(但不限于): - “你永远不会解决在Windows” - “这是你如何得到Capistrano的REAL密码的部署“ - ”你忽略了这个设置/功能吗?“ - “我有一块石头可以修补任何东西,你可以借用它”
谢谢!
我有多个阶段,所以我会打电话: cap production invoke ... 这样做会失败,因为它会同时为每个服务器形成密码(即:我一次被问到密码,但我是没有机会4次进入)。 为单个服务器运行此工作正常,例如: cap prod1调用... 因为我可以在任何单独的服务器上成功调用,所以我毫不犹豫地认为它的用户变量。 我必须通过VPN连接,我不知道这是否与它有关。 – morris082 2010-06-26 17:57:10