add vm provisioning
This commit is contained in:
parent
537beb7f67
commit
b012b010d5
@ -10,7 +10,7 @@ My homelab infrastructure as code
|
||||
Media Server
|
||||
* Requirements
|
||||
* 4 core
|
||||
* 8GB RAM
|
||||
* 4GB RAM
|
||||
* NVIDIA GPU
|
||||
* network storage for media
|
||||
|
||||
|
@ -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
|
||||
]
|
||||
}
|
||||
|
@ -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 }
|
||||
|
Loading…
Reference in New Issue
Block a user