diff --git a/applications/roles/base/tasks/main.yml b/applications/roles/base/tasks/main.yml index de135c9..5a08837 100644 --- a/applications/roles/base/tasks/main.yml +++ b/applications/roles/base/tasks/main.yml @@ -1,4 +1,12 @@ --- +# QEMU Guest Agent +- name: Install Guest Agent + apt: + name: + - qemu-guest-agent + update_cache: yes + state: present + # Docker - name: Install prerequisites apt: @@ -8,6 +16,7 @@ - curl - gnupg-agent - software-properties-common + state: present update_cache: yes - name: Add docker apt-key @@ -24,6 +33,7 @@ - docker-ce - docker-ce-cli - containerd.io + state: present update_cache: yes - name: Ddd user permissions @@ -33,6 +43,7 @@ - name: Install Python package manager apt: name: python3-pip + state: present - name: Install Python SDK become_user: "{{ lookup('env', 'USER') }}" @@ -40,6 +51,7 @@ name: - docker - docker-compose + state: present # Containers - include_tasks: containers.yml diff --git a/applications/roles/home-apps/files/tandoor-compose.yml b/applications/roles/home-apps/files/tandoor-compose.yml index 1a2683e..b664175 100644 --- a/applications/roles/home-apps/files/tandoor-compose.yml +++ b/applications/roles/home-apps/files/tandoor-compose.yml @@ -1,6 +1,7 @@ version: '3' services: - db_recipes: + recipes_db: + container_name: recipes_db image: postgres:11-alpine restart: always volumes: @@ -8,7 +9,8 @@ services: env_file: - ./tandoor.env - web_recipes: + recipes_web: + container_name: recipes_web image: vabene1111/recipes restart: always env_file: @@ -18,21 +20,22 @@ services: - nginx_config:/opt/recipes/nginx/conf.d - ./mediafiles:/opt/recipes/mediafiles depends_on: - - db_recipes + - recipes_db - nginx_recipes: + recipes_nginx: + container_name: recipes_nginx image: nginx:mainline-alpine restart: always env_file: - - ./.env - depends_on: - - web_recipes + - ./tandoor.env volumes: - nginx_config:/etc/nginx/conf.d:ro - staticfiles:/static:ro - ./mediafiles:/media:ro ports: - 1080:80 + depends_on: + - web_recipes volumes: nginx_config: diff --git a/machines/vms/main.tf b/machines/vms/main.tf index bc018d8..cf83fbf 100644 --- a/machines/vms/main.tf +++ b/machines/vms/main.tf @@ -85,33 +85,71 @@ resource "proxmox_vm_qemu" "media-manager" { ipconfig0 = "ip=192.168.0.51/24,gw=192.168.0.1" } +resource "proxmox_vm_qemu" "pi_hole" { + count = 1 + name = "pihole-${count.index + 1}" + vmid = "202" + target_node = "recyclebin" + clone = "ubuntu-2004-cloud" + agent = 1 + os_type = "cloud-init" + cores = 2 + sockets = 1 + cpu = "host" + memory = 2048 + scsihw = "virtio-scsi-pci" + bootdisk = "scsi0" + disk { + slot = 0 + size = "15G" + type = "scsi" + storage = "local-lvm" + iothread = 1 + } + + network { + model = "virtio" + bridge = "vmbr0" + } + + lifecycle { + ignore_changes = [ + network, + ] + } + + ipconfig0 = "ip=192.168.0.36/24,gw=192.168.0.1" +} + resource "local_file" "ansible_inventory" { content = templatefile("../../templates/hosts.tmpl", { + # Old 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} 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}", + regex("[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,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}", + regex("[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,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}", + regex("[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}", + ip + ) + ] + pi_holes = [ + for ip in proxmox_vm_qemu.pi_hole.*.ifconfig0 : + regex("[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,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 564fa95..3e24434 100644 --- a/templates/hosts.tmpl +++ b/templates/hosts.tmpl @@ -12,3 +12,8 @@ ${ ip } %{ for ip in home_apps } ${ ip } %{ end for } + +[pi-hole] +%{ for ip in piholes } +${ ip } +%{ end for }