From 8e2c2534ba93679009d4faa9b310b1b6082c0757 Mon Sep 17 00:00:00 2001 From: faten Date: Tue, 20 May 2025 09:34:46 +0000 Subject: [PATCH] test avec token --- run_admin_container.sh | 75 ++++++++++++++++++++++++++++++++---------- 1 file changed, 57 insertions(+), 18 deletions(-) diff --git a/run_admin_container.sh b/run_admin_container.sh index 2e13189..86bfc35 100644 --- a/run_admin_container.sh +++ b/run_admin_container.sh @@ -2,7 +2,13 @@ set -e set -o pipefail -# set -x + +echo "[DEBUG] ----- DÉBUT DU SCRIPT -----" +echo "[DEBUG] UID: $(id -u), GID: $(id -g), User: $(whoami)" +echo "[DEBUG] Contenu de /etc/passwd:" +cat /etc/passwd || echo "Impossible de lire /etc/passwd" +echo "[DEBUG] Contenu de /etc/group:" +cat /etc/group || echo "Impossible de lire /etc/group" # vars via Semaphore UI / Variable Group MAIN_BR="${MAIN_BR:-main}" @@ -10,39 +16,71 @@ ENV="${ENV:-staging}" ENV_BR="${ENV_BR:-test_feature}" PLAYBOOK_FILE="${PLAYBOOK_FILE:-base.yaml}" -# --- VALIDATION DES IDENTIFIANTS GIT --- -if [ -z "$GIT_USERNAME" ] || [ -z "$GIT_TOKEN" ]; then - echo "[ERROR] Les variables d'environnement GIT_USERNAME et/ou GIT_TOKEN ne sont pas définies ou sont vides !" - echo "[ERROR] Veuillez vous assurer qu'elles sont fournies via l'interface utilisateur de Semaphore / Variable Group." - exit 1 -fi -echo "[INFO] Utilisation de GIT_USERNAME: $GIT_USERNAME pour le clonage HTTPS." -# Ne pas afficher le GIT_TOKEN dans les logs pour des raisons de sécurité. +echo "[DEBUG] MAIN_BR: $MAIN_BR" +echo "[DEBUG] ENV: $ENV" +echo "[DEBUG] ENV_BR: $ENV_BR" +echo "[DEBUG] PLAYBOOK_FILE: $PLAYBOOK_FILE" + +# --- VALIDATION DES IDENTIFIANTS GIT --- +echo "[DEBUG] Vérification de GIT_USERNAME et GIT_TOKEN..." +if [ -z "$GIT_USERNAME" ]; then + echo "[ERROR] La variable d'environnement GIT_USERNAME n'est pas définie ou est vide !" + exit 1 +else + echo "[INFO] GIT_USERNAME est défini : $GIT_USERNAME" +fi + +if [ -z "$GIT_TOKEN" ]; then + echo "[ERROR] La variable d'environnement GIT_TOKEN n'est pas définie ou est vide !" + exit 1 +else + echo "[INFO] GIT_TOKEN est défini (valeur masquée pour la sécurité)." +fi -# --- UTILISER LES URLS HTTPS AVEC AUTHENTIFICATION INTÉGRÉE --- -# Le format est : https://:@domain.com/path/to/repo.git REPO_CORE_URL_RAW="git.felcloud.io/felcloud/ansible_core_init_ansible.git" REPO_ENV_URL_RAW="git.felcloud.io/felcloud/ansible_env_staging.git" -REPO_CORE="https://"$GIT_USERNAME":"$GIT_TOKEN"@${REPO_CORE_URL_RAW}" -REPO_ENV="https://"$GIT_USERNAME":"$GIT_TOKEN"@${REPO_ENV_URL_RAW}" +REPO_CORE="https://$(echo "$GIT_USERNAME" | sed 's/@/%40/g'):$(echo "$GIT_TOKEN" | sed 's/@/%40/g')@${REPO_CORE_URL_RAW}" +REPO_ENV="https://$(echo "$GIT_USERNAME" | sed 's/@/%40/g'):$(echo "$GIT_TOKEN" | sed 's/@/%40/g')@${REPO_ENV_URL_RAW}" + +# Afficher les URLs SANS le token pour le débogage +echo "[DEBUG] URL de REPO_CORE (sans token pour log): https://@${REPO_CORE_URL_RAW}" +echo "[DEBUG] URL de REPO_ENV (sans token pour log): https://@${REPO_ENV_URL_RAW}" + +# Vérifier si GIT_SSH_COMMAND est défini +if [ -n "$GIT_SSH_COMMAND" ]; then + echo "[WARN] GIT_SSH_COMMAND est défini à : $GIT_SSH_COMMAND" + echo "[WARN] Tentative de le dé-définir..." + unset GIT_SSH_COMMAND +fi +if [ -n "$GIT_SSH" ]; then + echo "[WARN] GIT_SSH est défini à : $GIT_SSH" + echo "[WARN] Tentative de le dé-définir..." + unset GIT_SSH +fi echo "[INFO] Clonage des dépôts en utilisant HTTPS..." -# Pour l'affichage dans les logs, on utilise une version "propre" de l'URL sans le token echo "[INFO] Clonage de https://${REPO_CORE_URL_RAW} sur la branche $ENV_BR..." -git clone --branch "$ENV_BR" "$REPO_CORE" ansible_core_init_ansible || { - echo "[FATAL] Échec du clonage de ${REPO_CORE_URL_RAW}. Vérifiez les identifiants, l'URL et les permissions du jeton."; +GIT_TRACE=1 GIT_TRACE_PACKET=1 git clone --branch "$ENV_BR" "$REPO_CORE" ansible_core_init_ansible || { + echo "[FATAL] Échec du clonage de ${REPO_CORE_URL_RAW}. Vérifiez les identifiants, l'URL, les permissions du jeton et les logs GIT_TRACE ci-dessus."; exit 1; } echo "[INFO] Clonage réussi de ${REPO_CORE_URL_RAW}." echo "[INFO] Clonage de https://${REPO_ENV_URL_RAW}..." -git clone "$REPO_ENV" ansible_env_staging || { - echo "[FATAL] Échec du clonage de ${REPO_ENV_URL_RAW}. Vérifiez les identifiants, l'URL et les permissions du jeton."; +GIT_TRACE=1 GIT_TRACE_PACKET=1 git clone "$REPO_ENV" ansible_env_staging || { + echo "[FATAL] Échec du clonage de ${REPO_ENV_URL_RAW}. Vérifiez les identifiants, l'URL, les permissions du jeton et les logs GIT_TRACE ci-dessus."; exit 1; } echo "[INFO] Clonage réussi de ${REPO_ENV_URL_RAW}." +# Optionnel : Afficher la configuration Git pour voir s'il y a des 'insteadOf' +echo "[DEBUG] Configuration Git globale :" +git config --global --list || echo "Aucune config globale Git ou erreur." +echo "[DEBUG] Configuration Git système :" +git config --system --list || echo "Aucune config système Git ou erreur." + + cd ansible_core_init_ansible echo "[INFO] Construction de l'image Docker localement..." @@ -63,3 +101,4 @@ docker run --rm -it \ ansible-playbook playbooks/${PLAYBOOK_FILE} -i /home/cloud/ansible_env_staging/hosts" echo "[INFO] Tâche terminée." +echo "[DEBUG] ----- FIN DU SCRIPT -----"