#!/bin/bash # Script d'installation de GitLab Omnibus sur chillka # À exécuter sur chillka en tant que toshiro avec sudo set -e echo "=== Installation de GitLab Omnibus sur chillka ===" # Vérifier les prérequis système echo "Vérification des prérequis..." # Vérifier la RAM disponible RAM_AVAILABLE=$(free -g | awk '/^Mem:/{print $7}') if [ "$RAM_AVAILABLE" -lt 2 ]; then echo "⚠️ Attention: Moins de 2GB RAM disponible. GitLab nécessite au moins 2GB." read -p "Continuer quand même? (y/N) " -n 1 -r echo if [[ ! $REPLY =~ ^[Yy]$ ]]; then exit 1 fi fi # Vérifier l'espace disque DISK_AVAILABLE=$(df -BG / | awk 'NR==2 {print $4}' | sed 's/G//') if [ "$DISK_AVAILABLE" -lt 4 ]; then echo "⚠️ Attention: Moins de 4GB d'espace disque disponible." read -p "Continuer quand même? (y/N) " -n 1 -r echo if [[ ! $REPLY =~ ^[Yy]$ ]]; then exit 1 fi fi # Vérifier que nous sommes sur chillka echo "Vérification de l'environnement..." if [ ! -d "/var/data/git/repositories" ]; then echo "Erreur: Le répertoire /var/data/git/repositories n'existe pas" exit 1 fi # Étape 1: Mettre à jour le système echo "Étape 1: Mise à jour du système..." sudo apt update sudo apt upgrade -y # Étape 2: Installer les dépendances echo "Étape 2: Installation des dépendances..." sudo apt install -y curl openssh-server ca-certificates tzdata perl # Étape 3: Configurer SSH (si nécessaire) echo "Étape 3: Configuration SSH..." if ! sudo systemctl is-active --quiet sshd; then sudo systemctl enable sshd sudo systemctl start sshd fi # Étape 4: Ajouter le dépôt GitLab echo "Étape 4: Ajout du dépôt GitLab..." curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash # Étape 5: Demander l'URL externe echo "" read -p "URL externe pour GitLab (ex: http://chillka ou https://chillka.example.com): " EXTERNAL_URL if [ -z "$EXTERNAL_URL" ]; then EXTERNAL_URL="http://chillka" echo "Utilisation de l'URL par défaut: $EXTERNAL_URL" fi # Étape 6: Installer GitLab echo "Étape 6: Installation de GitLab (cela peut prendre 10-15 minutes)..." sudo EXTERNAL_URL="$EXTERNAL_URL" apt install gitlab-ce -y # Étape 7: Configurer GitLab pour utiliser le répertoire existant echo "Étape 7: Configuration de GitLab..." sudo tee -a /etc/gitlab/gitlab.rb > /dev/null < { "path" => "/var/data/git/repositories" } }) EOF # Étape 8: Reconfigurer GitLab echo "Étape 8: Reconfiguration de GitLab (cela peut prendre 5-10 minutes)..." sudo gitlab-ctl reconfigure # Étape 9: Vérifier le statut echo "Étape 9: Vérification du statut..." sleep 5 if sudo gitlab-ctl status | grep -q "run:"; then echo "✓ GitLab est démarré avec succès" else echo "✗ Erreur: GitLab n'a pas démarré correctement" echo "Vérifiez les logs: sudo gitlab-ctl tail" exit 1 fi # Afficher les informations importantes echo "" echo "=== Installation terminée ===" echo "" echo "Informations importantes:" echo " - URL GitLab: $EXTERNAL_URL" echo " - Username initial: root" echo " - Mot de passe: À définir lors de la première connexion" echo "" echo "Prochaines étapes:" echo "1. Ouvrir $EXTERNAL_URL dans un navigateur" echo "2. Définir le mot de passe root" echo "3. Se connecter avec root / [votre mot de passe]" echo "4. Créer ou importer le projet config-files-keyvault" echo "" echo "Commandes utiles:" echo " - Statut: sudo gitlab-ctl status" echo " - Logs: sudo gitlab-ctl tail" echo " - Redémarrer: sudo gitlab-ctl restart" echo " - Vérifier: sudo gitlab-rake gitlab:check"