【问题标题】:Run `git clone` with custom DNS?使用自定义 DNS 运行“git clone”?
【发布时间】: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


【解决方案1】:

@david 说,在 AWS 中,你可以选择弹性 IP。在 Azure 上,您可以将 static Public IP 关联到 VM。

根据您的方案,您可以取消将 IP 映射到原始 VM 并将 IP 关联到新 VM。 IP 地址不会改变。

更新:

您可以使用 Azure Cli 2.0 取消关联公共 IP 或将公共 IP 关联到 VM。你可以参考下面的例子:

##chang publci from dynamic to Static
az network public-ip update -g shuitest -n shui-ip --allocation-method Static
##disassoicat PublicIP from a VM
az network nic ip-config update --resource-group shuitest --nic-name shui7 --name ipconfig1 --public-ip ""
##add the Publci IP to new VM
az network nic ip-config update --resource-group shuitest --nic-name shui7 --name ipconfig1 --public-ip "shui-ip"

您可以使用-h 寻求帮助。

[root@localhost .ssh]# az network nic ip-config update -h

Command
    az network nic ip-config update: Update an IP configuration.

【讨论】:

  • 我会对此表示赞同,但我希望处理 100 多个临时测试实例时能少一些麻烦。
  • @PotatoFarmer 如果您有 15 个代表,您可以投票。如果您有多个虚拟机,您可以创建一个 Powershell 脚本来执行此操作。
  • 赞成,因为它是专门针对 Azure 的解决方法。但是,我希望答案是运行git clone {url} 的直接解决方案,并为{url} 使用自定义临时dns。或者,您提到了一个可能的 powershell/az-cli 脚本,它可以在 Azure 中实现这种效果?如果时间允许,请分享,我会认为这是一个可能的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-10
  • 2020-11-28
  • 1970-01-01
  • 2011-01-15
  • 2013-08-13
相关资源
最近更新 更多