Ajouter recuperation_config.sh
This commit is contained in:
parent
833e93c0e0
commit
bd79cdade5
|
@ -0,0 +1,88 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Configuration des variables
|
||||
ORG="SysConf"
|
||||
BASE_URL="https://sysconfgit.linexos.eu"
|
||||
API_URL="$BASE_URL/api/v1"
|
||||
REPO_NAME=$(hostname)
|
||||
REPO_URL="$BASE_URL/$ORG/$REPO_NAME.git"
|
||||
REPO_PATH="/etc/gitea/ConfigSysRepo" # Chemin local générique pour cloner les dépôts
|
||||
BRANCH="main"
|
||||
TOKEN="c4be311f3abf82ee98e3a0412fac4c9c7d233eb2"
|
||||
REPO_URL_TOKEN="https://$TOKEN@sysconfgit.linexos.eu/$ORG/$REPO_NAME.git"
|
||||
HOSTNAME=$(hostname) # Nom de la machine
|
||||
|
||||
echo "Début du script pour $HOSTNAME"
|
||||
|
||||
# Vérifie si le dépôt existe déjà en utilisant l'API de Gitea
|
||||
response=$(curl -s -o /dev/null -w "%{http_code}" -H "Authorization: token $TOKEN" "$API_URL/repos/$ORG/$REPO_NAME")
|
||||
|
||||
if [ "$response" -ne 200 ]; then
|
||||
echo "Le dépôt $REPO_NAME n'existe pas. Création du dépôt..."
|
||||
curl -s -X POST -H "Authorization: token $TOKEN" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "{\"name\": \"$REPO_NAME\", \"private\": false}" \
|
||||
"$API_URL/orgs/$ORG/repos"
|
||||
echo "Dépôt $REPO_NAME créé."
|
||||
else
|
||||
echo "Le dépôt $REPO_NAME existe déjà."
|
||||
fi
|
||||
|
||||
# Vérifie si le répertoire du dépôt existe localement et le clone si nécessaire
|
||||
if [ ! -d "$REPO_PATH/.git" ]; then
|
||||
echo "Le dépôt n'existe pas localement. Clonage du dépôt..."
|
||||
git clone "$REPO_URL_TOKEN" "$REPO_PATH"
|
||||
cd "$REPO_PATH"
|
||||
|
||||
# Initialisation du dépôt local et création de la branche main
|
||||
echo "Initialisation du dépôt local..."
|
||||
git checkout -b $BRANCH
|
||||
touch .gitkeep # Ajoute un fichier pour initialiser le dépôt
|
||||
git add .gitkeep
|
||||
git commit -m "Initial commit"
|
||||
git push --set-upstream origin $BRANCH
|
||||
else
|
||||
echo "Le dépôt existe déjà localement."
|
||||
cd "$REPO_PATH"
|
||||
git checkout $BRANCH || git checkout -b $BRANCH
|
||||
fi
|
||||
|
||||
# Configurer les informations utilisateur Git pour le dépôt local si elles ne sont pas déjà configurées
|
||||
if ! git config user.name &>/dev/null; then
|
||||
git config user.name "admin-linexos"
|
||||
git config user.email "technique@linexos.fr"
|
||||
fi
|
||||
|
||||
# Tente de mettre à jour le dépôt local en cas de modifications distantes
|
||||
git pull --rebase origin $BRANCH
|
||||
|
||||
# Lecture des chemins des fichiers depuis le fichier de configuration
|
||||
CONFIG_FILE="/etc/gitea/path_config" # Chemin du fichier de configuration
|
||||
|
||||
if [ ! -f "$CONFIG_FILE" ]; then
|
||||
echo "Le fichier de configuration $CONFIG_FILE n'existe pas."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Copie des fichiers de configuration en maintenant l'arborescence..."
|
||||
|
||||
while IFS= read -r file; do
|
||||
if [ -f "$file" ]; then
|
||||
DEST_DIR="$REPO_PATH/$(dirname "$file")"
|
||||
mkdir -p "$DEST_DIR"
|
||||
echo "Copie de $file vers $DEST_DIR"
|
||||
cp "$file" "$DEST_DIR"
|
||||
else
|
||||
echo "Le fichier $file n'existe pas: $file"
|
||||
fi
|
||||
done < "$CONFIG_FILE"
|
||||
|
||||
# Ajout de toutes les modifications
|
||||
git add -A
|
||||
|
||||
# Git operations
|
||||
git commit -m "Mise à jour des fichiers de configuration pour $HOSTNAME"
|
||||
git push origin $BRANCH
|
||||
echo "Modifications poussées vers le dépôt."
|
||||
|
||||
echo "Fin du script."
|
Loading…
Reference in New Issue