gpt4 book ai didi

Capistrano无法用于多个主机部署

转载 作者:行者123 更新时间:2023-12-04 16:13:16 24 4
gpt4 key购买 nike

我在这里茫然无措,在寻找解决方案的海洋(阅读:互联网)之后,我别无所求。任何帮助表示赞赏。

我有capistrano在本地运行,以便在多个不同的环境中进行部署。 (我在Windows 7上)。一切都很好,直到我需要在一次部署中部署到多个:app服务器。

通常,当我调用cap deploy时,系统会提示我输入一次ssh密码。我正在运行ssh-agent(git从不为我的通过而烦恼),但是尽管有这个Capistrano,每次部署都总是让我感到困惑。无论如何,当部署到一个主机时,它始终有效。

现在,当我尝试一次部署到多个服务器时,它会要求我输入密码多次出现:

(我删除了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部署中使用'forward_agent'设置无效。
  • 这是我的角色:role :app, "ip 1 removed", "ip 2 removed"
  • 如果我设置default_run_options[:max_hosts] = 1,它可以正常工作,但是它要求我与要部署到的每个主机的每个连接的密码短语。这最终很多。

  • 本质上,我正在寻找以下任何一项(但不限于):
    -“您永远都不会在Windows上解决此问题”
    -“这就是您在capistrano中进行真正的无密码部署的方式”
    -“您是否忽略了此设置/功能?”
    -“我有一块可以修复任何东西的石头,你可以借用它”

    谢谢!

    最佳答案

    用户变量设置为什么?从带有Capfile的目录运行一个简单的invoke命令,该命令应尝试在列出的每个服务器上执行。是否成功连接?

    cap invoke COMMAND="echo 'Hello World'"

    如果该命令无法运行,则您的用户可能与ssh无密码代理相同。您还可以查看服务器上的SSH日志,看看是否可以知道实际上是哪个代理尝试连接失败。

    关于Capistrano无法用于多个主机部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2718314/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com