如何启用 netplan 以自动调整克隆实例中的不同网络接口名称

如何启用 netplan 以自动调整克隆实例中的不同网络接口名称

我正在运行 Ubuntu 18.04 64 位服务器。我进行了全新安装,设置了所有自定义软件,一切正常。我使用 clonezilla 创建主映像,然后进行克隆。我处理 machine-id 文件,以便新硬件上的克隆实例获得新的 MAC 地址和 IP 地址。我的问题是,现在,在一些较新的硬件上,以太网接口名称与原始克隆映像上的不同。因此,DHCP 不会自动工作,例如,因为 /etc/netplan 中的配置文件指定的是旧硬件的接口名称,而不是新硬件的接口名称。

有没有办法让 netplan 在启动时自动配置?也许删除 /etc/netplan 中的所有 yaml 文件?问题是克隆的映像包含一个 netplan yaml 文件,其配置不适用于新硬件。这应该很容易修复,但我在网上和论坛中搜索时都找不到它。谢谢您的帮助!

答案1

成功了。db429 建议使用 match 就是答案(我会给你信用,但是作为新用户我无法弄清楚)。

这是我现在正在使用的新的 netplan 配置:

# generic ethernet adapter config, matches any interface names beginning with "en"
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      match:
        name: en*
      dhcp4: yes

基本上,在早期启动时,netplan 会读取此配置,并在 /run/systemd/network 中生成一个名为 10-netplan-eth0.network 的文件。请注意文件名中的 eth0 与我在 netplan yaml 配置文件中提供的块匹配。

生成的10-netplan-eth0.network内容为:

[Match]
Name=en*

[Network]
DHCP=ipv4
LinkLocalAddressing=ipv6

[DHCP]
RouteMetric=100
UseMTU=true

然后,可以正确使用生成的网络文件来初始化任何匹配的 dhcp 接口。此 .network 文件也可以由 systemd-networkd 直接使用,实际上可以稍后删除 netplan.io(我也测试过,因为我的服务器上启用了 systemd-networkd)。

相关内容