From b012b010d5a889feebb9062e3f40a74ff85b6105 Mon Sep 17 00:00:00 2001 From: Ryan Date: Fri, 10 Jun 2022 21:15:13 -0400 Subject: [PATCH] add vm provisioning --- README.md | 2 +- machines/vms/main.tf | 41 +++++++++++++++++++++++++++++++++++------ templates/hosts.tmpl | 12 ++++-------- 3 files changed, 40 insertions(+), 15 deletions(-) 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 }