diff --git a/README.md b/README.md index c741d76..ea7627e 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ My homelab infrastructure as code Media Server * Requirements * 4 core - * 8GB RAM + * 4GB RAM * NVIDIA GPU * network storage for media diff --git a/machines/vms/main.tf b/machines/vms/main.tf index bcd3c1d..bc018d8 100644 --- a/machines/vms/main.tf +++ b/machines/vms/main.tf @@ -50,13 +50,13 @@ resource "proxmox_vm_qemu" "media-server" { } resource "proxmox_vm_qemu" "media-manager" { - count = 1 - name = "media-manager" - vmid = "201" + count = 1 + name = "media-manager" + vmid = "201" target_node = "milkyway" - clone = "ubuntu-2004-cloud" - agent = 1 - os_type = "cloud-init" + clone = "ubuntu-2004-cloud" + agent = 1 + os_type = "cloud-init" cores = 4 sockets = 1 cpu = "host" @@ -85,4 +85,33 @@ resource "proxmox_vm_qemu" "media-manager" { ipconfig0 = "ip=192.168.0.51/24,gw=192.168.0.1" } +resource "local_file" "ansible_inventory" { + content = templatefile("../../templates/hosts.tmpl", + { + media_managers = [ + for ip in proxmox_vm_qemu.media-manager.*.ifconfig0 : + regex("(\\b25[0-5]|\\b2[0-4][0-9]|\\b[01]?[0-9][0-9]?)(\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}", + ip + ) + ] + media_servers = [ + for ip in proxmox_vm_qemu.media-server.*.ifconfig0 : + regex("(\\b25[0-5]|\\b2[0-4][0-9]|\\b[01]?[0-9][0-9]?)(\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}", + ip + ) + ] + home_apps = [ + for ip in proxmox_vm_qemu.main-docker.*.ifconfig0 : + regex("(\\b25[0-5]|\\b2[0-4][0-9]|\\b[01]?[0-9][0-9]?)(\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}", + ip + ) + ] + } + ) + filename = "../../applications/hosts" + depends_on = [ + proxmox_vm_qemu.media-manager, + proxmox_vm_qemu.media_servers + ] +} diff --git a/templates/hosts.tmpl b/templates/hosts.tmpl index ee827f2..564fa95 100644 --- a/templates/hosts.tmpl +++ b/templates/hosts.tmpl @@ -1,18 +1,14 @@ [media-managers] -%{ for ip in media-managers } +%{ for ip in media_managers } ${ ip } %{ end for } [media-servers] -%{ for ip in media-servers } +%{ for ip in media_servers } ${ ip } %{ end for } -[docker-servers:children] -main-docker -media-managers - -[main-docker] -%{ for ip in main-docker } +[home-servers] +%{ for ip in home_apps } ${ ip } %{ end for }