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
在某些时候,安装程序还会更改其自身的配置以使用已安装的配置。