Some checks failed
CI / skip-ci-check (pull_request) Successful in 7s
CI / lint-and-test (pull_request) Successful in 12s
CI / ansible-validation (pull_request) Failing after 5s
CI / secret-scanning (pull_request) Successful in 6s
CI / dependency-scan (pull_request) Successful in 8s
CI / sast-scan (pull_request) Failing after 6s
CI / license-check (pull_request) Successful in 10s
CI / vault-check (pull_request) Failing after 5s
CI / playbook-test (pull_request) Failing after 6s
CI / container-scan (pull_request) Failing after 6s
CI / sonar-analysis (pull_request) Failing after 3s
CI / workflow-summary (pull_request) Successful in 5s
Use ansible.builtin.su, spaces in caddy blockinfile, relax MD060/MD036 and line length for homelab documentation tables. Co-authored-by: Cursor <cursoragent@cursor.com>
39 lines
2.2 KiB
Markdown
39 lines
2.2 KiB
Markdown
# VM static IPs — router DHCP reservations (pve10)
|
||
|
||
Proxmox **LXCs** use `pct set … ip=10.0.10.X/24` (done for 210, 215–219).
|
||
|
||
**VMs** without cloud-init are pinned by **router DHCP reservation by MAC** (Method B in plan-2).
|
||
Ansible **cannot log into your router** — configure static leases in the UI.
|
||
|
||
**Your UniFi:** https://192.168.2.1/ — step-by-step: [unifi-static-dhcp.md](unifi-static-dhcp.md).
|
||
|
||
Homelab guests use **`10.0.10.0/24`** (gateway `10.0.10.1`). If UniFi also serves `192.168.2.x`, ensure the `10.0.10.x` segment is the network those VMs/LXCs use
|
||
(or that routing/DHCP relay matches your Proxmox bridge).
|
||
|
||
## How to add a reservation (any router)
|
||
|
||
1. Open router admin (UniFi: **https://192.168.2.1/**).
|
||
2. Find **DHCP** / **LAN** / **Static leases** / **Reserved addresses**.
|
||
3. For each row: **MAC address** → **IP address** → Save.
|
||
4. Reboot guest or renew DHCP (`dhclient -r && dhclient` on Debian) if IP does not update immediately.
|
||
5. Mark done in [host-list.md](host-list.md).
|
||
|
||
| VMID | Name | MAC | Reserve IP | Inventory |
|
||
| ---- | ---- | --- | ---------- | --------- |
|
||
| 102 | gitea-alpine | `BC:24:11:E9:BD:E5` | `10.0.10.169` | giteaVM |
|
||
| 103 | WRA / n8n | `BC:24:11:61:DE:7A` | `10.0.10.154` | n8n |
|
||
| 104 | vaultwarden | `BC:24:11:58:DB:DC` | `10.0.10.142` | vaultwardenVM |
|
||
| 105 | TrueNAS | `BC:24:11:14:DE:B5` | `10.0.10.107` | — |
|
||
| 106 | caddy | `BC:24:11:E0:49:B4` | `10.0.10.50` | ✅ static in-guest |
|
||
| 108 | actual | `BC:24:11:10:7B:64` | `10.0.10.158` | actual |
|
||
| 117 | hermes | `BC:24:11:51:1E:99` | `10.0.10.36` | hermes (guest agent on) |
|
||
| 200 | PVE.BU.SVR | `BC:24:11:DA:95:3B` | `10.0.10.200` | — |
|
||
| 201 | NextcloudAIO | `BC:24:11:14:D4:DE` | `10.0.10.24` | **decommission** — skip new work |
|
||
| 101 | Jellyfin | `BC:24:11:29:B8:84` | `10.0.10.232` | stopped |
|
||
| 113 | listmonk (pve201) | `BC:24:11:11:53:9A` | `10.0.10.148` | listmonk |
|
||
| — | Mailcow (pve201 VM 106) | `BC:24:11:34:75:2D` | `10.0.10.132` | mailcow (inventory) |
|
||
|
||
After reserving in the router, mark **DHCP/Static** as `✅ router` in [host-list.md](host-list.md).
|
||
|
||
In-guest static (optional, stronger): SSH as root and set `/etc/network/interfaces` like caddy VM 106.
|