version: v1.0 name: "Deploy Multiple Ubuntu 24.04 Containers (Incus + Terraform)" agent: machine: type: cloud os_image: "ubuntu/24.04" # Bloque 1 - Inicializar Terraform blocks: - name: "Initialize Terraform" task: jobs: - name: "Init Terraform" commands: - checkout - echo "[INFO] Instalando Terraform e Incus..." - sudo apt update && sudo apt install -y - echo "[INFO] Inicializando Terraform..." - terraform init # Bloque 2 - Despliegue - name: "Deploy Containers" task: jobs: - name: "Terraform Apply" commands: - echo "[INFO] Desplegando contenedores definidos en TF_VAR_containers..." - echo "Variables actuales:" - echo "$TF_VAR_containers" | jq - terraform apply -auto-approve # Bloque 3 - Verificación - name: "Verify Containers" task: jobs: - name: "List and Verify" commands: - echo "[INFO] Listando contenedores..." - incus list - echo "[INFO] Verificando estado de cada contenedor..." - for c in $(echo $TF_VAR_containers | jq -r '.[]'); do echo "[INFO] -> $c"; incus exec "$c" -- bash -c "hostname && uptime && lsb_release -a || true"; done # Bloque 4 - Destrucción manual - name: "Destroy Containers (Manual)" task: run: when: "manual" jobs: - name: "Destroy Terraform Resources" commands: - echo "[INFO] Destruyendo contenedores definidos..." - terraform destroy -auto-approve