[SOLVED] Proxmox 9: cloud-init assistance

originaltrini0

New Member
Jul 16, 2024
6
2
3
Hello all.

I am currently running a single node with version pve-manager/9.1.4/5ac30304265fbd8e (running kernel: 6.17.4-2-pve).
My previous Proxmox v8 cloud-init configuration was carried over from the v9 upgrade and was working just fine. Earlier this week, I started configuring integration between Terraform and Proxmox and began redoing my VM templates with custom cloud-init user/network configurations.
My test VMs apply the cloud-init user configuration, but they never receive a DHCP IP address for some reason, and I do not know why.
I get similar results creating the VM via the UI.
Debian 13/Fedora 43/Ubuntu 2404 all exhibit the same issue.

My prior documentation on this topic is not working, and I am looking for an additional set of eyes to get past this issue.
Here is the basic process I follow:
Bash:
# Create VM with builtin Proxmox cloud-init
qm create 1000 --name debian-cli \
  --memory 2048 --serial0 socket --vga serial0 \
  --net0 virtio,bridge=vmbr0,tag=100 --ostype l26 \
  --scsihw virtio-scsi-single --boot order=scsi0 \
  --scsi0 ssd-pool:0,import-from=/mnt/pve/artifacts/import/debian-13-generic-amd64.qcow2 \
  --ide2 ssd-pool:cloudinit --ciuser myuser --cipass mypassword --ipconfig0 ip=dhcp

qm disk resize 1000 scsi0 +7G

Here is the resulting VM:
Bash:
qm config 1000
boot: order=scsi0
cipassword: **********
ciuser: myuser
ide2: ssd-pool:vm-1000-cloudinit,media=cdrom
ipconfig0: ip=dhcp
memory: 2048
meta: creation-qemu=10.1.2,ctime=1769283205
name: debian-cli
net0: virtio=BC:24:11:70:F4:40,bridge=vmbr0,tag=100
ostype: l26
scsi0: ssd-pool:vm-1000-disk-0,size=10G
scsihw: virtio-scsi-single
serial0: socket
smbios1: uuid=f0178e9f-42e2-40e6-980a-05be3cb182f5
vga: serial0
vmgenid: 95dd0197-a28a-4260-88fc-9cb1df79aeb1

During boot-up, systemd-networkd-wait-online.service fails to start:
Code:
[  OK  ] Started systemd-networkd.service - Network Configuration.
[  OK  ] Reached target network.target - Network.
         Starting systemd-networkd-persiste…tent Storage in systemd-networkd...
         Starting systemd-networkd-wait-onl…ait for Network to be Configured...
[  OK  ] Finished systemd-networkd-persiste…istent Storage in systemd-networkd.
[FAILED] Failed to start systemd-networkd-w… Wait for Network to be Configured.
See 'systemctl status systemd-networkd-wait-online.service' for details.
         Starting cloud-init-network.service - Cloud-init: Network Stage...
[  126.894842] cloud-init[401]: Cloud-init v. 25.1.4 running 'init' at Sat, 24 Jan 2026 19:40:38 +0000. Up 126.88 seconds.
[  126.902438] cloud-init[401]: ci-info: ++++++++++++++++++++++++++++++++++++Net device info+++++++++++++++++++++++++++++++++++++
[  126.908181] cloud-init[401]: ci-info: +--------+------+------------------------------+-----------+-------+-------------------+
[  126.910649] cloud-init[401]: ci-info: | Device |  Up  |           Address            |    Mask   | Scope |     Hw-Address    |
[  126.918338] cloud-init[401]: ci-info: +--------+------+------------------------------+-----------+-------+-------------------+
[  126.922173] cloud-init[401]: ci-info: |  eth0  | True | fe80::be24:11ff:fe70:f440/64 |     .     |  link | bc:24:11:70:f4:40 |
[  126.927537] cloud-init[401]: ci-info: |   lo   | True |          127.0.0.1           | 255.0.0.0 |  host |         .         |
[  126.932184] cloud-init[401]: ci-info: |   lo   | True |           ::1/128            |     .     |  host |         .         |
[  126.935281] cloud-init[401]: ci-info: +--------+------+------------------------------+-----------+-------+-------------------+
...
[  OK  ] Reached target graphical.target - Graphical Interface.
         Starting cloud-final.service - Cloud-init: Final Stage...
[  127.792404] cloud-init[401]: Cloud-init v. 25.1.4 running 'modules:final' at Sat, 24 Jan 2026 19:40:38 +0000. Up 127.77 seconds.
[  127.828185] cloud-init[401]: Get:1 file:/etc/apt/mirrors/debian.list Mirrorlist [30 B]
[  127.838199] cloud-init[401]: Get:3 file:/etc/apt/mirrors/debian-security.list Mirrorlist [39 B]
[  127.842862] cloud-init[401]: Ign:2 https://deb.debian.org/debian trixie InRelease
[  127.845269] cloud-init[401]: Ign:4 https://deb.debian.org/debian trixie-updates InRelease
[  127.847110] cloud-init[401]: Ign:5 https://deb.debian.org/debian trixie-backports InRelease
[  127.849013] cloud-init[401]: Ign:6 https://deb.debian.org/debian-security trixie-security InRelease
[  128.846917] cloud-init[401]: Ign:6 https://deb.debian.org/debian-security trixie-security InRelease
[  128.850439] cloud-init[401]: Ign:5 https://deb.debian.org/debian trixie-backports InRelease
[  128.852327] cloud-init[401]: Ign:4 https://deb.debian.org/debian trixie-updates InRelease
[  128.854155] cloud-init[401]: Ign:2 https://deb.debian.org/debian trixie InRelease
[  130.852331] cloud-init[401]: Ign:2 https://deb.debian.org/debian trixie InRelease
[  130.855482] cloud-init[401]: Ign:4 https://deb.debian.org/debian trixie-updates InRelease
[  130.857329] cloud-init[401]: Ign:5 https://deb.debian.org/debian trixie-backports InRelease
[  130.859194] cloud-init[401]: Ign:6 https://deb.debian.org/debian-security trixie-security InRelease

Debian GNU/Linux 13 debian-cli ttyS0

debian-cli login: [  134.857556] cloud-init[401]: Err:6 https://deb.debian.org/debian-security trixie-security InRelease
[  134.859672] cloud-init[401]:   Temporary failure resolving 'deb.debian.org'
[  134.862992] cloud-init[401]: Err:5 https://deb.debian.org/debian trixie-backports InRelease
[  134.865534] cloud-init[401]:   Temporary failure resolving 'deb.debian.org'
[  134.867115] cloud-init[401]: Err:4 https://deb.debian.org/debian trixie-updates InRelease
[  134.872191] cloud-init[401]:   Temporary failure resolving 'deb.debian.org'
[  134.873755] cloud-init[401]: Err:2 https://deb.debian.org/debian trixie InRelease
[  134.875426] cloud-init[401]:   Temporary failure resolving 'deb.debian.org'
[  134.880934] cloud-init[401]: Reading package lists...
[  134.883547] cloud-init[401]: W: Failed to fetch mirror+file:/etc/apt/mirrors/debian.list/dists/trixie/InRelease  Temporary failure resolving 'deb.debian.org'
[  134.891567] cloud-init[401]: W: Failed to fetch mirror+file:/etc/apt/mirrors/debian.list/dists/trixie-updates/InRelease  Temporary failure resolving 'deb.debian.org'
[  134.896211] cloud-init[401]: W: Failed to fetch mirror+file:/etc/apt/mirrors/debian.list/dists/trixie-backports/InRelease  Temporary failure resolving 'deb.debian.org'
[  134.899673] cloud-init[401]: W: Failed to fetch mirror+file:/etc/apt/mirrors/debian-security.list/dists/trixie-security/InRelease  Temporary failure resolving 'deb.debian.org'
[  134.905574] cloud-init[401]: W: Some index files failed to download. They have been ignored, or old ones used instead.

DHCP (Kea in my case), responds with a lease:
Bash:
grep -rni 'bc:24:11:70:f4:40' .
./kea-dhcp4.log:9123:2026-01-24 14:38:37.516 INFO  [kea-dhcp4.dhcp4/844.281473310912288] DHCP4_QUERY_LABEL received query: [hwtype=1 bc:24:11:70:f4:40], cid=[ff:ca:53:09:5a:00:02:00:00:ab:11:a0:12:33:7f:28:2a:94:76], tid=0xb146b9d5
./kea-dhcp4.log:9124:2026-01-24 14:38:37.517 INFO  [kea-dhcp4.dhcpsrv/844.281473310912288] EVAL_RESULT [hwtype=1 bc:24:11:70:f4:40], cid=[ff:ca:53:09:5a:00:02:00:00:ab:11:a0:12:33:7f:28:2a:94:76], tid=0xb146b9d5: Expression BIOS clients evaluated to true
./kea-dhcp4.log:9125:2026-01-24 14:38:37.517 INFO  [kea-dhcp4.packets/844.281473310912288] DHCP4_PACKET_RECEIVED [hwtype=1 bc:24:11:70:f4:40], cid=[ff:ca:53:09:5a:00:02:00:00:ab:11:a0:12:33:7f:28:2a:94:76], tid=0xb146b9d5: DHCPDISCOVER (type 1) received from 192.168.xxx.1 to 192.168.yyy.12 on interface eth0
./kea-dhcp4.log:9126:2026-01-24 14:38:37.518 INFO  [kea-dhcp4.leases/844.281473310912288] DHCP4_LEASE_OFFER [hwtype=1 bc:24:11:70:f4:40], cid=[ff:ca:53:09:5a:00:02:00:00:ab:11:a0:12:33:7f:28:2a:94:76], tid=0xb146b9d5: lease 192.168.xxx.106 will be offered
./kea-dhcp4.log:9127:2026-01-24 14:38:37.518 INFO  [kea-dhcp4.packets/844.281473310912288] DHCP4_PACKET_SEND [hwtype=1 bc:24:11:70:f4:40], cid=[ff:ca:53:09:5a:00:02:00:00:ab:11:a0:12:33:7f:28:2a:94:76], tid=0xb146b9d5: trying to send packet DHCPOFFER (type 2) from *:67 to 192.168.xxx.1:67 on interface eth0

When I log into the VM, here is the network configuration:
Bash:
ip -br a; echo "---"; sudo cat /etc/netplan/50-cloud-init.yaml
lo               UNKNOWN        127.0.0.1/8 ::1/128
eth0             UP             fe80::be24:11ff:fe70:f440/64
---
network:
  version: 2
  ethernets:
    eth0:
      match:
        macaddress: "bc:24:11:70:f4:40"
      dhcp4: true
      set-name: "eth0"

Here are the logs for systemd-networkd-wait-online.service:
Bash:
journalctl -ru systemd-networkd-wait-online.service
Jan 24 19:40:38 localhost systemd[1]: Failed to start systemd-networkd-wait-online.service - Wait for Network to be Configured.
Jan 24 19:40:38 localhost systemd[1]: systemd-networkd-wait-online.service: Failed with result 'exit-code'.
Jan 24 19:40:38 localhost systemd[1]: systemd-networkd-wait-online.service: Main process exited, code=exited, status=1/FAILURE
Jan 24 19:40:38 localhost systemd-networkd-wait-online[587]: Timeout occurred while waiting for network connectivity.
Jan 24 19:38:37 localhost systemd[1]: Starting systemd-networkd-wait-online.service - Wait for Network to be Configured...

If I try to start systemd-networkd-wait-online.service it fails to start.



I am not sure what is wrong with my setup. The last VM I created from my previous v8 templates was on 1/6/2026. I have made no changes to the infrastructure since.
Does anyone see what I might be overlooking?

Thanks for any insight you may provide.
 
Since you have access to the VM, can you massage it into getting DHCP? Continue troubleshooting the VM from the VM console.
Stop the networking, restart, adjust the config, etc. Find the working configuration - that may give you a clue as to why its failing on boot.


Blockbridge : Ultra low latency all-NVME shared storage for Proxmox - https://www.blockbridge.com/proxmox
 
  • Like
Reactions: Johannes S
Check cloud-init logs, also systemd units failures (other than the obvious network ones), cloud-init is quite fragile. Also, make sure you didn't block DHCP on the firewall, though if the request goes through, it's probably OK.. and check what cloud-init put in the config files.. you're showing netplan, so I guess that's what you are using, not ifupdown on Debian? Again, this it's sending the dhcp request, I assume it's right..
 
  • Like
Reactions: Johannes S
@bbgeek17 @Gilou:
Thanks for your replies. I have not found the root cause, but discovered that everything works just fine using another VLAN tag. So it does not appear to be a Proxmox issue.
So now, I have to troubleshoot why my staging network isn't playing nice.

Thanks again