【问题标题】:cloud-init ignoring static IP network configurationcloud-init 忽略静态 IP 网络配置
【发布时间】:2019-10-13 21:57:39
【问题描述】:

我运行 Ubuntu 18.04 云映像并尝试通过 cloud-init 配置网络。出于某种原因,当我尝试分配静态 IP 并回退到使用 DHCP 时,它忽略了我的网络。我不知道为什么,也不知道如何调试它。有谁知道我做错了什么或者我应该如何进一步解决这个问题:

这是我用来生成config.imgconfig.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

注意:登录该框后,我可以将/etc/netplan 中的配置替换为上面的network 部分,然后重新应用它,网络就可以正常使用静态IP。所以我认为我没有遗漏任何明显的错误。这让我相信它与 cloud-init 网络模块有关,而不是 netplan 本身。

【问题讨论】:

标签: cloud-init netplan


【解决方案1】:

我终于明白了。希望这对其他人有帮助。

显然您无法在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

【讨论】:

  • 我猜它在 Hetzner Cloud 上也不起作用。不能确定,但​​已经尝试了所有方法,但没有成功。我想那里也是这种情况。感谢分享。
  • 对我来说,在 KVM 中使用 Debian Buster 时,这在 Proxmox 下不起作用。它启动并寻找 DHCP。一段时间后设置 IP,但延迟很大。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-09-19
  • 2017-03-11
  • 2020-05-02
  • 1970-01-01
  • 2019-07-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多