手动编辑后/etc/cloud/cloud.cfg.d/50-curtin-networking.cfg
,如何通知cloud-init
更新/etc/netplan/50-cloud-init.yaml
?换句话说,手动更新两个文件是没有意义的;重新应用 netplan 的标准流程是什么?
答案1
正如 Lismatro 所说,一旦您创建了 netplan 配置,就生成它然后应用它。
在您的 cloud-init 配置中,首先告诉 netplan 使用自定义配置:
write_files:
- path: /etc/cloud/cloud.cfg.d/99-custom-networking.cfg
permissions: '0644'
content: |
network: {config: disabled}
然后创建 netplan 配置(仍在 cloud-init 配置中)。这是一个简单示例。查找更多使用 netplan 配置网络接口的方法这里:
- path: /etc/netplan/my-new-config.yaml
permissions: '0644'
content: |
network:
version: 2
ethernets:
ens3:
dhcp4: true
最后告诉 cloud-init 使用它(再次,仍然在 cloud-init 配置中):
runcmd:
- rm /etc/netplan/50-cloud-init.yaml
- netplan generate
- netplan apply
答案2
cloud-init 配置文件不是首次启动后更改网络配置的地方,因为网络配置只会由 cloud-init 生成一次(首次启动时)。
但是,您可以直接更改 netplan 配置文件。然后以 root 身份使用以下命令来启用您的更改。它们将在启动过程中保留。
netplan generate
netplan apply
只有命令“cloud-init clean”会重新生成 50...yaml 文件,但我认为您不希望这样。这会重置所有内容,包括主机名和机器 ID(导致新的最大地址和新的 dhcp ip 地址)。