【发布时间】:2017-09-30 14:18:25
【问题描述】:
TLDR:有没有办法运行git clone [url],其中的 URL 临时硬编码为 git 命令?
我遇到了这样一种情况:云中的托管环境(Azure、AWS 等)可能会被烧毁,然后在短时间内(比如 10 分钟内)使用相同的名称重新创建。这会导致重复使用 DNS 名称(即 mycoolwebsite.azurewebsites.com)。
执行 git clone/git push 的命令不可避免地指向该 DNS 名称会导致失败,因为缓存在机器上的 DNS 条目现在已经过时,因为重新创建的环境可能存在于不同的外部 IP 后面。
通过云托管服务提供商工具,我可以查询外部 IP 并对/etc/hosts 进行注入/弹出。这是一种有效的解决方法,但由于许多原因,它是一个“坏主意”。我不能轻易地将 IP 指向端点,因为服务器不会响应裸 IP,只有主机名(从我可以收集的内容中)。
我想许多人在云中打开并烧毁开发实例都遇到过这种情况 - 有没有更好的方法来处理基本上是 DNS 缓存问题?
【问题讨论】:
-
在 AWS 中,您可以请求映射到 EC2 实例的弹性 IP。当 EC2 实例更改时,您只需将弹性 IP 重新映射到新实例,这比更改 DNS 快得多。我想 Azure 也有类似的功能。
-
@david25272 确实,此功能可能是解决方案,但它需要弹性 IP,在执行诸如临时测试实例之类的操作时,它的价值会降低。希望有一些可以在机器级别完成的操作,以运行具有特定 DNS 修改的命令(即
git)。我尝试了另一种技巧,但 git 似乎没有使用那种 DNS 查找方法。不过目前我找不到确切的链接。
标签: linux git azure amazon-web-services dns