如何在安装之前获取网络适配器的名称,以便在自动安装程序配置文件中设置它(Ubuntu 20.04)?

如何在安装之前获取网络适配器的名称,以便在自动安装程序配置文件中设置它(Ubuntu 20.04)?
network:
    network:
        version: 2
        ethernets:
            enp0s25:
               dhcp4: yes

在安装之前,我如何在安装之前知道网络适配器的名称? 不知道设备名称就可以使用 mac 吗?

答案1

如果您network:从自动安装配置中删除该部分,则会自动生成网络配置。这可能适合您的需求。

默认行为

网络配置过程非常混乱,但这是它的方式似乎network:当自动安装配置中没有该部分时工作

1

在安装程序中,cloud-init有一个默认通用 netplan 配置当未指定任何内容时使用。此配置匹配所有物理接口。

# This is the initial network config.
# It can be overwritten by cloud-init or subiquity.
network:
    version: 2
    ethernets:
        zz-all-en:
            match:
                name: "en*"
            dhcp4: true
        zz-all-eth:
            match:
                name: "eth*"
            dhcp4: true

2

实际的界面细节被添加到安装程序文件系统中/etc/cloud/cloud.cfg.d/${IFNAME}.cfg。我casper相信把这个文件到位。

3

当安装程序启动时,cloud-init它会合并其配置,为安装程序环境创建 netplan 配置。我尝试的测试虚拟机最终显示

# cat /etc/netplan/50-cloud-init.yaml
# This file is generated from information provided by the datasource.  Changes
# to it will not persist across an instance reboot.  To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    ethernets:
        ens192:
            critical: true
            dhcp-identifier: mac
            dhcp4: true
            nameservers:
                addresses:
                - REDACTED
                - REDACTED
                search:
                - REDACTED
        zz-all-en:
            dhcp4: true
            match:
                name: en*
        zz-all-eth:
            dhcp4: true
            match:
                name: eth*
    version: 2

4

安装程序subiquity会创建一个配置,curtin其中仅包含与实际接口相关的安装程序 netplan 配置部分。

# cat /var/log/installer/subiquity-curtin-install.conf
...
write_files:
...
  etc_netplan_installer: {content: "# This is the network config written by 'subiquity'\n\
      network:\n  ethernets:\n    ens192:\n      critical: true\n      dhcp-identifier:\
      \ mac\n      dhcp4: true\n      nameservers:\n        addresses:\n        -\
      \ REDACTED\n        - REDACTED\n        search:\n        - REDACTED\n\
      \  version: 2\n", path: etc/netplan/00-installer-config.yaml}
...

5

安装的系统(位于/target)最终将配置赋予curtin

# cat /target/etc/netplan/00-installer-config.yaml
# This is the network config written by 'subiquity'
network:
  ethernets:
    ens192:
      critical: true
      dhcp-identifier: mac
      dhcp4: true
      nameservers:
        addresses:
        - REDACTED
        - REDACTED
        search:
        - REDACTED
  version: 2

6

在某些时候,安装程序还会更改其自身的配置以使用已安装的配置。

相关内容