#!/bin/bash set -euo pipefail echo "Starting Ansible CI/CD run..." # # --- 1. Validate required environment variables --- # if [[ -z "${PROXMOX_LOCAL_IMAGE_PATH_FROM_BUILD}" ]]; then # echo "Error: PROXMOX_LOCAL_IMAGE_PATH_FROM_BUILD environment variable not set. Cannot find built image." # exit 1 # fi # --- 2. Navigate to the Ansible directory --- SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd -P) ANSIBLE_DIR="${SCRIPT_DIR}/../ansible" if [[ ! -d "${ANSIBLE_DIR}" ]]; then echo "Error: Ansible directory not found at ${ANSIBLE_DIR}" exit 1 fi cd "${ANSIBLE_DIR}" echo "Changed directory to: $(pwd)" # # --- 3. Define Ansible Extra Variables --- # # Base extra variables from our static definitions # EXTRA_VARS=( # # "local_image_path_ci=${PROXMOX_LOCAL_IMAGE_PATH_FROM_BUILD}" # Path to the image file on the CI runner # # "image_filename=$(basename "${PROXMOX_LOCAL_IMAGE_PATH_FROM_BUILD}")" # Extract filename # ) # # Append any other variables passed via ANSIBLE_EXTRA_VARS from the workflow # if [[ -n "${ANSIBLE_EXTRA_VARS:-}" ]]; then # # Split by space or newline and add to array # IFS=$'\n' read -r -d '' -a ADDITIONAL_VARS <<< "${ANSIBLE_EXTRA_VARS}" || true # for var in "${ADDITIONAL_VARS[@]}"; do # EXTRA_VARS+=("${var}") # done # fi # # --- 4. Execute the Ansible Playbook --- # echo "Executing Ansible playbook: upload-template.yml" # # Construct the full --extra-vars string # EXTRA_VARS_ARGS="" # for var in "${EXTRA_VARS[@]}"; do # EXTRA_VARS_ARGS+=" -e ${var}" # done ansible-playbook upload-template.yml #\ # --inventory inventory/hosts.yml \ # ${EXTRA_VARS_ARGS} \ # --diff \ # --check false # Set to true for a dry run, false for actual execution echo "Ansible playbook execution finished."