我运行Ubuntu18.04云映像并尝试通过cloud-init配置网络。由于某些原因,当我尝试分配静态IP时,它忽略了我的网络,而只是退回到使用DHCP。我不确定为什么,我也不确定如何调试它。有没有人知道我是否做错了什么,或者我应该如何进一步解决这个问题:
下面是我用来生成config.img的config.yaml
#cloud-config
network:
version: 2
ethernets:
ens2:
dhcp4: false
dhcp6: false
addresses: [10.0.0.40/24]
gateway4: 10.0.0.1
password: secret # for the 'ubuntu' user in case we can't SSH in
chpasswd: { expire: false }
ssh_pwauth: true
users:
- default
- name: brennan
ssh_import_id: gh:brennancheung
sudo: ALL=(ALL) NOPASSWD:ALL
hostname: vm
runcmd:
- [ sh, -xc, "echo Here is the network config for your instance" ]
- [ ip, a ]
final_message: "Cloud init is done. Woohoo!"配置中的其他部分似乎都正常工作,就好像它甚至看不到network部分一样。
我将.img作为cdrom附加以读取cloud-init。您可以在这里看到我是如何运行它的:https://github.com/brennancheung/playbooks/blob/master/cloud-init-lab/Makefile
注意:一旦我登录到计算机中,我可以用上面的network部分替换/etc/netplan中的配置,然后重新应用它,然后使用静态IP连接就可以了。所以我认为我没有遗漏任何明显的错误。这让我相信它与cloud-init网络模块相关,而不是netplan本身。
发布于 2019-10-14 08:18:40
我终于想通了。希望这对其他人有所帮助。
显然,您不能在user-data中提供网络配置。您必须在云提供商的数据源或元数据中指定它。为此,您必须将网络部分移动到它自己的文件中,并使用--network-config=...选项构建cloud-init映像。
例如:
cloud-localds -v --network-config=network-config-v2.yaml seed.img user-data.yaml
我有在本地KVM中配置和引导云实例的完整设置,如果这对其他人有帮助的话。
https://github.com/brennancheung/playbooks/tree/master/cloud-init-lab
https://stackoverflow.com/questions/58368104
复制相似问题