- Added Ansible playbook for installing Proxmox DNS server in HA configuration. - Created role for Keepalived with VIP management and health checks. - Implemented notification script for state changes in Keepalived. - Developed health check script to monitor DNS service status. - Configured Keepalived with VRRP settings and health check scripts. - Documented HA architecture and deployment process for Proxmox DNS server. - Migrated DHCP management from UniFi to Proxmox DNS server for dynamic IP resolution. - Removed UniFi client resources from OpenTofu modules to streamline management. - Added scripts for managing UniFi client resources during migration.
3.9 KiB
3.9 KiB
DNS Migration Status
Completed: 2026-02-13
✅ Successfully Deployed
HA DNS Cluster:
- 3 LXC containers (118, 218, 318) across Proxmox cluster
- Keepalived VIP: 10.2.40.53
- Individual IPs: 10.2.40.54, 10.2.40.55, 10.2.40.56
- Master: proxmox-dns-1 (jupiter)
- Backup: proxmox-dns-2 (saturn), proxmox-dns-3 (neptune)
Services:
- proxmox-dns.service: Active on all servers
- keepalived.service: Active on all servers
- DNS resolution: Working via VIP with fast AAAA support
DNS Server Features:
- Exact FQDN matching (e.g., gitea.srv.renner.uno)
- Fast A record lookups (1ms response time)
- Proper AAAA/IPv6 handling (NODATA responses, cache-only lookups)
- 31 hosts from Proxmox API
- 60-second cache refresh
UniFi Configuration:
- UDM (10.2.40.1) remains primary DNS
- UDM forwards .srv.renner.uno queries to 10.2.40.53
- All srv.renner.uno domains resolving correctly
OpenTofu Cleanup:
- ✅ Removed 13 unifi_client resources from state
- Backend temporarily switched to local (providers.tf modified)
- Module definitions cleaned (unifi_client removed from VM and LXC modules)
RustFS Cluster:
- ✅ Successfully rebuilt using Ansible
- 3-node cluster operational (rustfs-1, rustfs-2, rustfs-3)
- Keepalived VIP: 10.2.40.101
- Individual IPs: 10.2.40.120, 10.2.40.167, 10.2.40.218
- RustFS service active on all nodes
- Cluster communication verified (ping responses working)
- S3 API responding on port 9000
- Ansible role updated with /etc/hosts fix to prevent future issues
- Safeguards documented: See /home/krenner/homelab/RUSTFS_SAFEGUARDS.md
OpenTofu S3 Backend:
- ✅ Successfully migrated back to S3 (RustFS)
- State accessible at s3.renner.uno:9000/tfstate bucket
- Centralized state storage restored for team collaboration
- Local backup preserved at: terraform.tfstate.local-backup.20260213-214721
Verification Commands
# Check DNS servers
for ip in 10.2.40.54 10.2.40.55 10.2.40.56; do
echo "=== $ip ==="
ssh root@$ip "systemctl is-active proxmox-dns keepalived"
done
# Check which server has VIP
ssh root@10.2.40.54 'ip addr show | grep 10.2.40.53'
# Test DNS resolution
dig @10.2.40.53 gitea.srv.renner.uno +short
# Test failover
ssh root@10.2.40.54 'systemctl stop proxmox-dns'
# Wait 5 seconds
dig @10.2.40.53 gitea.srv.renner.uno +short # Should still work
ssh root@10.2.40.54 'systemctl start proxmox-dns'
Next Steps
To Restore RustFS (Optional)
The RustFS S3 backend needs to be rebuilt to restore centralized state storage:
# Option 1: Restore from Proxmox backup (if available)
# Check for backups and restore containers
# Option 2: Rebuild using OpenTofu
cd /home/krenner/homelab/opentofu
tofu apply -target=module.rustfs_1 -target=module.rustfs_2 -target=module.rustfs_3
# Then restore S3 backend in providers.tf and migrate state back
To Restore S3 Backend (After RustFS is Fixed)
# 1. Restore S3 backend configuration in providers.tf
# 2. Reinitialize and migrate state
tofu init -migrate-state
# 3. Verify state is in S3
mc ls rfs/tfstate/
Current State
Infrastructure: ✅ Fully operational DNS Migration: ✅ COMPLETE
- HA cluster working perfectly
- Fast A and AAAA record support
- 31 hosts resolving from Proxmox API
- UDM forwarding .srv.renner.uno correctly OpenTofu Cleanup: ✅ COMPLETE
- 13 unifi_client resources removed from state
- Module definitions cleaned
- Using local backend temporarily RustFS: ❌ NEEDS REBUILD
- Containers corrupted, MinIO service missing
- S3 backend unavailable
- Does not impact DNS operations
Migration Summary
The DNS migration is fully complete and operational. The new HA DNS cluster is:
- Resolving all 31 Proxmox VMs/containers
- Providing fast responses (1ms)
- Handling IPv6 queries correctly
- Operating with high availability via keepalived VIP
The RustFS issue is a separate problem that needs to be addressed to restore the S3 backend for OpenTofu state storage.