gpt4 book ai didi

proxy - capistrano 通过代理部署到没有公共(public) IP 的服务器

转载 作者:行者123 更新时间:2023-12-02 06:00:11 26 4
gpt4 key购买 nike

我需要部署到的服务器在私有(private)网络中(没有公共(public) IP)。我可以通过 VPN 从该网络外部访问服务器,但遇到困难,每次使用 capistrano 进行部署都会中断。

我可以访问该专用网络中具有公共(public) IP 的另一台计算机。

是否可以设置 capistrano 部署脚本,以便部署通过该“代理”服务器?

除了解决我无法控制的 VPN 问题之外,您能否针对我的情况提出一些其他解决方案。

我想到了设置一个 github 钩子(Hook),它会在服务器上触发一个脚本,然后拉出分支,但这比 capistrano 做的要少得多:没有迁移、修订、捆绑更新、服务器重启等。 ..

最佳答案

Capistrano 通过 SSH 与目标服务器通信 - 如果您通过您的 ' bastion 设置 SSH 连接到代理' 服务器并登陆适当的最终主机,然后 Capistrano - 通过该连接 - 将执行相同的操作。

最简单的设置方法之一是使用 ~/.ssh/config block ,描述您想要结束的位置,以及能够到达它的代理。

具体如何配置取决于您如何设置网络。

这是我刚刚为 SSH 创建的(针对主机名编辑的).ssh/config 文件:home 通过 public 然后到 final:

Host internalvia
HostName final.hostname.com
User secretdeployuser
IdentityFile ~/.ssh/id_rsa
ProxyCommand ssh public-server.com -W %h:%p

然后我可以 ssh internalvia,并登陆名为 final.hostname.com 的机器,但我通过了 public-server.com(首先以我自己的身份登录,然后是 final作为“secretdeployuser”。public 和 final 都允许我常用的 id_rsa key 登录,标准转发允许我登录到两者,甚至可以通过彼此登录。

当这让您能够从命令行通过 ssh 进入最终位置时,您可以将 internalvia 作为 Capistrano 设置中的主机。

role :app, %w{ secretdeployuser@internalvia }

关于proxy - capistrano 通过代理部署到没有公共(public) IP 的服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28251263/

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