This commit is contained in:
plasmagoat 2025-06-09 01:52:38 +02:00
parent b7c8c5719f
commit 0f98297605

View file

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