使用自定义DNS运行“git clone”?

prdp8dxp  于 2022-10-23  发布在  Git
关注(0)|答案(2)|浏览(170)

**TLDR:**是否有一种方法可以运行git clone [url],其中URL仅为git命令临时硬编码?

我遇到了这样一个场景:云中的托管环境(Azure、AWS等)可以被烧毁,然后在短时间内(比如10分钟内)使用相同的名称重新创建。这导致重复使用DNS名称(即mycolwebsite.azurewebsites.com)。
由于机器上缓存的DNS条目现在已过时,因为重新创建的环境可能位于不同的外部IP后面,因此,指向该DNS名称的git克隆/git推送命令必然会导致失败。
通过云托管提供商工具,我可以查询外部IP,并对/etc/hosts进行注入/弹出。这是一个有效的解决方案,但出于许多原因,这是一种“坏主意”。我无法轻松地将IP指向端点,因为服务器不会响应裸IP,只响应主机名(根据我收集的信息)。
我想很多人在云中打开和烧毁dev示例时都会遇到这种情况——有没有更好的方法来处理基本上是DNS缓存问题的问题?

xggvc2p6

xggvc2p61#

@大卫说:在AWS中,你可以选择弹性IP。在Azure上,您可以将static Public IP与VM关联。
根据您的场景,您可以取消IP与原始VM的Map,并将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.
ddrv8njm

ddrv8njm2#

**我真正想做的是:**将请求固定到IP地址。

这个能力在2022年被添加到git,在提问后5年多。参考:[1][i1j 1k1l]

解决方案:

git -c http.curloptResolve="+github.com:443:192.30.255.112" clone https://github.com/rtyley/small-test-repo
  • http.curloptResolve:为IP地址DNS条目提供cURL自定义主机名
  • +github.com:443:192.30.255.112:[+]主机:端口:地址[,地址]
  • +使DNS条目不是永久的
  • 通过命令行标志--resolvecURL中存在类似/相同的概念。

要测试/验证,请启用详细的git日志记录:
$env:GIT_CURL_VERBOSE=1$环境:GIT_TRACE=1$环境:GIT_TRANSFER_TRACE=1;git-c http://curloptResolve=“+github.com:443:192.30.255.112”克隆https://github.com/rtyley/small-test-repo

相关问题