OVH + Proxmox:如何使用打包程序构建以 Fallover IP 作为 DHCP 的 Proxmox 映像?

OVH + Proxmox:如何使用打包程序构建以 Fallover IP 作为 DHCP 的 Proxmox 映像?

我搜索了整个互联网还没有找到任何解决方案。

我有一个 OVH + Proxmox 实例。计划自动启动 VM 过程。我知道我可以尝试使用 cloud-init,但由于我在家中使用 Packer +(可能)Terraform 作为 ESXi,所以我想尝试对 Proxmox 云使用同样的东西。

当前设置:

  • 我有packer.json,配置很好。
  • 我有一个debian-preseed.cfg

安装 ESXi 时,托管preseed.cfg在本地并使用私有 IP。效果很好。

但是 OVH 上的 Proxmox 无法访问我的本地预播,因此我决定将其托管在 AWS S3 上。这时问题就出现了。

问题:构建 Proxmox 映像的 VM 无法访问 AWS 上的预置文件 -https://bucket-name.s3.regions.amazonaws.com/dir/debian-preseed.cfg

我花了几个小时试图找出根本原因。看来虚拟机的网络配置不正确。

我使用 DHCP + Mac-To-Static IP 来简化安装过程。我很确定如果我手动安装 VM,它会起作用。但是,似乎只有在安装 Debian 后才能访问 IP 和网络?

这有什么原因导致它不起作用吗?我是否应该先切换到使用网桥+私有 IP,然后在使用时手动设置公共 IP?

答案1

问题可能在于(不可)预测的网络接口。

该图像可能有/etc/network/interfaces如下内容:

auto ens4
iface ens4 inet dhcp
    mtu 1500

这可能在本地有效,但部署到其他地方时可能无法有效。

在构建虚拟机镜像时,你可以禁用(不可)预测的网络接口

GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"

并假设您的单个接口将被命名为eth0

OVH 也使用 Packer 来构建图像,但cloud-init同样如此。

cloud-init第一次运行

  1. 设置主机名,请参阅/var/lib/cloud/data/set-hostname
  2. 更新/etc/hosts
  3. 尝试配置网络(参见例如/etc/network/interfaces.d/50-cloud-init
  4. 移除/var/lib/cloud/data/no-net

当您无法在构建 VM 映像时预测接口命名时,这种方法很有意义。

相关内容