test avec token
This commit is contained in:
parent
52ad66a2c0
commit
8e2c2534ba
@ -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://<username>:<token>@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://<username>@${REPO_CORE_URL_RAW}"
|
||||
echo "[DEBUG] URL de REPO_ENV (sans token pour log): https://<username>@${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 -----"
|
||||
|
Loading…
Reference in New Issue
Block a user