【发布时间】:2011-02-12 16:23:29
【问题描述】:
我在这里不知所措,在搜寻了海洋(阅读:互联网)以寻找解决方案之后,我除了上堆外别无他法。任何帮助表示赞赏。
我在本地运行 capistrano 以部署到几个不同的环境中。 (我在 Windows 7 上,fwiw)。一切都很好,直到我需要在一次部署期间部署到多个 :app 服务器。
当我调用cap deploy 时,通常会提示我输入一次 ssh 密码。我正在运行 ssh-agent(git 从不打扰我的通行证),但尽管如此,Capistrano 每次部署时总是让我烦恼。无论如何,它在部署到 ONE 主机时始终有效。
现在,当我尝试一次部署到多台服务器时,它会多次询问我的密码:
(被我删除的ips)
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
- 在 cap deploy 中使用“forward_agent”设置不起作用。
- 这是我的角色:
role :app, "ip 1 removed", "ip 2 removed" - 如果我设置
default_run_options[:max_hosts] = 1,它可以正常工作,但它要求我为每个连接到我部署到的每个主机的每个单独的连接提供密码......这最终会很多。
基本上我正在寻找以下任何一项(但不限于): - “你永远不会在 Windows 上解决这个问题” - “这就是你如何在 capistrano 中获得真正的无密码部署” - “你有没有忽略这个设置/功能?” - “我有一块可以解决任何问题的石头,你可以借用它”
谢谢!
【问题讨论】:
标签: capistrano