在实例启动时重命名网络接口 ubuntu cloud-init

在实例启动时重命名网络接口 ubuntu cloud-init

我正在构建的 Ubuntu 映像上有两个网络接口 - eth0 和 eth1。我想从该图像创建云实例。对于它创建的每个云实例,每个实例都将具有这两个网络接口。然而,要求是,接口分别重命名为interface0和interface1。如何在实例启动时使用 cloud-init 进行配置?

答案1

cloud-init 的文档在本节中显示了以下示例 -网络配置版本 2:

# all cards on second PCI bus
match:
  name: enp2*

# fixed MAC address
match:
  macaddress: 11:22:33:AA:BB:FF

# first card of driver ``ixgbe``
match:
  driver: ixgbe
  name: en*s0

只要匹配特定于单个设备,您就可以使用set-name:来定义您想要的接口名称。

set-name: <(scalar)>

当匹配路径或 MAC 等独特属性时,或者带​​有诸如“永远只有一个 wifi 设备”之类的附加假设时,可以编写匹配规则,以便它们仅匹配一台设备。然后,可以使用此属性为该设备指定一个比 udev 的 ifnames 中的默认名称更具体/理想/更好的名称。任何满足匹配规则的附加设备将无法重命名并保留原始内核名称(并且 dmesg 将显示错误)。

例如:

$ cat /etc/cloud/cloud.cfg.d/custom-networking.cfg
network:
    version: 2
    ethernets:
      interface0:
         match:
             mac_address: "52:54:00:12:34:00"
         set-name: interface0
         addresses:
         - 192.168.1.10/255.255.255.0
         gateway4: 192.168.1.254

相关内容