我在这里不知所措,在淘海之后(阅读:互联网)寻求解决方案,我只剩下其他东西而不是砸堆.任何帮助赞赏.
我在本地运行capistrano,可以部署到几个不同的环境中.(我在Windows 7上,fwiw).一切顺利,直到我需要在单个部署期间部署到多个:app服务器.
通常我打电话时会提示我输入一次密码短语cap deploy.我有ssh-agent运行(git从来没有为我的通行证而烦恼)但是尽管如此,Capistrano在每次部署时都一直在窃听我.无论如何,它在部署到一台主机时始终有效.
现在,当我尝试一次部署到多个服务器时,它会询问我的密码短语看起来多次:
(ME删除了ips)
servers: ["redacted", "redacted"]<br />
Enter passphrase for ~/.ssh/id_rsa: Enter passphrase for ~/.ssh/id_rsa:
Run Code Online (Sandbox Code Playgroud)
所以上面我输入我的密码,但这不起作用.它等待的时间很少,然后吐出这个错误:
connection failed for: <one of the server ips> (NoMethodError: undefined method `overwrite' for nil:NilClass)
Run Code Online (Sandbox Code Playgroud)
这就是结束.
role :app, "ip 1 removed", "ip 2 removed"default_run_options[:max_hosts] = 1,它工作正常,但它要求我为每个我正在部署的主机的每个连接的密码.这最终会很多.基本上我正在寻找下面的任何一个(但不限于): - "你永远不会在Windows上修复它" - "这是你在capistrano中实现真正的无密码部署" - "你有没有忽略这个设置/特征?" - "我有一块可以修理任何东西的岩石,你可以借用它"
谢谢!
用户变量设置为什么?从包含 Capfile 的目录运行一个简单的调用命令,该命令应尝试在列出的每个服务器上执行。是否连接成功?
cap invoke COMMAND="echo 'Hello World'"
Run Code Online (Sandbox Code Playgroud)
如果它无法运行,那么您的用户可能与您的 ssh 无密码代理不同。您还可以查看服务器上的 SSH 日志,看看是否可以判断哪个代理实际尝试连接失败。
| 归档时间: |
|
| 查看次数: |
1291 次 |
| 最近记录: |