From ab79b9c0faaabc9a36ecb2588d0802b942aac844 Mon Sep 17 00:00:00 2001 From: CC Date: Sat, 12 Sep 2026 17:08:24 +0100 Subject: [PATCH] working main.tf --- README.md | 2 +- .../proxmox_ubuntu_cloudinit_clone/main.tf | 36 +++++++++++++++---- 2 files changed, 30 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index bccc673..80e9521 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# VM Service Template +# VM Service Template - CHANGE BACKEND FILE PATH This repository is a starter template for deploying one or more service VMs in Proxmox using Terraform, then configuring and launching applications with Ansible and Docker Compose. diff --git a/terraform/modules/proxmox_ubuntu_cloudinit_clone/main.tf b/terraform/modules/proxmox_ubuntu_cloudinit_clone/main.tf index 8cb8816..b693aae 100644 --- a/terraform/modules/proxmox_ubuntu_cloudinit_clone/main.tf +++ b/terraform/modules/proxmox_ubuntu_cloudinit_clone/main.tf @@ -4,7 +4,7 @@ resource "proxmox_virtual_environment_file" "cloud_config" { node_name = var.node_name source_raw { - file_name = "${var.vm_name}_vm.cloud-config.yaml" # The name of the snippet file + file_name = "${var.vm_name}_vm.cloud-config.yaml" data = <<-EOF #cloud-config hostname: ${var.vm_name} @@ -19,26 +19,45 @@ resource "proxmox_virtual_environment_file" "cloud_config" { users: - default - name: cloud - groups: + groups: - sudo - docker shell: /bin/bash ssh-authorized-keys: - - "${var.vm_user_sshkey}" # +++ Needs to be put into a variable injected by git actions secrets + - "${var.vm_user_sshkey}" sudo: ALL=(ALL) NOPASSWD:ALL packages: - - qemu-guest-agent + - qemu-guest-agent - apt-transport-https - ca-certificates - curl - gnupg - lsb-release - - unattended-upgrades + - unattended-upgrades - rsync + - fish + - nano + + bootcmd: + - mkdir -p /home/cloud/${var.service_name} + - chown cloud:cloud /home/cloud/${var.service_name} + + write_files: + - path: /home/cloud/${var.service_name}/docker-compose.yml + owner: cloud:cloud + permissions: '0644' + encoding: b64 + content: ${var.compose_file_content} + + - path: /home/cloud/${var.service_name}/.env + owner: cloud:cloud + permissions: '0600' + encoding: b64 + content: ${var.env_file_content} runcmd: - - systemctl enable qemu-guest-agent + - systemctl enable qemu-guest-agent - mkdir -p /etc/apt/keyrings - curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg - echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null @@ -46,7 +65,10 @@ resource "proxmox_virtual_environment_file" "cloud_config" { - apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin - systemctl enable docker - systemctl start docker - - reboot + - chown -R cloud:cloud /home/cloud/${var.service_name} + - cd /home/cloud/${var.service_name} + - sudo -u cloud docker compose up -d + - reboot EOF } }