Skip to content

Proxmox Bootstrap, VLANs, and OpenWrt

Start here when a Proxmox host must move from temporary untagged access to the VLAN trunk used by the managed configuration.

Source Paths

  • docs/infrastructure/ansible/inventory.md
  • docs/infrastructure/ansible/playbooks.md
  • infrastructure/ansible/inventories/group_vars/proxmox.yml
  • infrastructure/ansible/inventories/host_vars/pve1.yml
  • infrastructure/ansible/inventories/host_vars/pve2.yml
  • infrastructure/ansible/inventories/host_vars/pve3.yml
  • infrastructure/ansible/playbooks/bootstrap.yml
  • infrastructure/ansible/playbooks/networking.yml
  • infrastructure/ansible/roles/networking/templates/interfaces.j2
  • infrastructure/ansible/roles/firewall/tasks/main.yml

Current State

  • Management VLAN is 20.
  • Allowed VLANs are 20, 40, and 60.
  • The managed bridge is VLAN-aware vmbr0 with vmbr0.20 as the management interface.
  • The host NIC variable is nic0 on all documented hosts.
  • pve1 is active at 10.20.0.11/24; pve2 and pve3 are planned.

Switch Port Stance

  • Before bootstrap or the first networking migration, set the OpenWrt or switch port connected to the host to untagged/access on VLAN 20.
  • After networking.yml completes and the host is reachable again, switch the port back to trunk/tagged mode for VLANs 20, 40, and 60.
  • Do not leave the port as access-only once the bridge is VLAN-aware, or tagged traffic for the other VLANs will not pass.

Bootstrap Sequence

  1. Confirm the host is reachable on the current management address.
  2. Set the connected switch port to untagged VLAN 20.
  3. Run task ansible:bootstrap -- --limit pve1.
  4. Confirm SSH key access works after bootstrap.
  5. Run task ansible:networking -- --limit pve1.
  6. Wait for the host to reload networking.
  7. Verify /etc/network/interfaces now contains VLAN-aware vmbr0 and vmbr0.20.
  8. Return the switch port to trunk/tagged VLANs 20, 40, and 60.
  9. Verify management access on 10.20.0.11 or the matching host IP.

Validation

bash
ping 10.20.0.11
bash
ip addr
bash
bridge vlan show
bash
cat /etc/network/interfaces

Rollback

  • If the host drops off the network after trunking, restore the switch port to untagged VLAN 20.
  • Re-run task ansible:networking -- --limit <host> after access is restored.