Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
work_in_progress:gitlab [2021/11/18 22:19] – yoann | work_in_progress:gitlab [2022/01/04 22:06] (Version actuelle) – yoann | ||
---|---|---|---|
Ligne 3: | Ligne 3: | ||
====== Gitlab ====== | ====== Gitlab ====== | ||
+ | |||
+ | ===== docker-compose ===== | ||
+ | |||
+ | Ci dessous le docker-compose pour un test en local | ||
+ | |||
+ | <file YAML docker-compose.yml> | ||
+ | networks: | ||
+ | # Nomme explicitement le réseau par défaut utilisé par les services définis dans ce fichier | ||
+ | default_vnet: | ||
+ | |||
+ | services: | ||
+ | gitlab: | ||
+ | image: ' | ||
+ | restart: always | ||
+ | hostname: ' | ||
+ | networks: | ||
+ | default_vnet: | ||
+ | aliases: | ||
+ | - gitlab.services.localhost | ||
+ | environment: | ||
+ | GITLAB_OMNIBUS_CONFIG: | ||
+ | external_url ' | ||
+ | gitlab_rails[' | ||
+ | ports: | ||
+ | - ' | ||
+ | - ' | ||
+ | - ' | ||
+ | volumes: | ||
+ | - ' | ||
+ | - ' | ||
+ | - ' | ||
+ | </ | ||
+ | |||
+ | <note warning> | ||
+ | La valeur de la variable '' | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | Pour s' | ||
+ | <code bash> | ||
+ | docker-compose exec gitlab grep ' | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | Le fichier contenant le mot de passe root généré à l' | ||
+ | </ | ||
+ | |||
+ | ===== Redéfinir le mot de passe administrateur ===== | ||
+ | |||
+ | <code bash> | ||
+ | # ouvrir une console Ruby on Rails | ||
+ | gitlab-rails console -e production | ||
+ | |||
+ | # retrouver l' | ||
+ | user = User.where(id: | ||
+ | |||
+ | # ou via l' | ||
+ | # user = User.find_by(email: | ||
+ | |||
+ | |||
+ | # vérifier que l' | ||
+ | puts user.email, user.id | ||
+ | |||
+ | # Redéfinir le mot de passe | ||
+ | user.password = ' | ||
+ | user.password_confirmation = ' | ||
+ | |||
+ | # sauvegarder les modifications | ||
+ | user.save! | ||
+ | |||
+ | # Quitter la console interactive | ||
+ | exit | ||
+ | </ | ||
+ | |||
+ | source: | ||
+ | * https:// | ||
+ | |||
+ | |||
+ | Pour pousser un projet git existant | ||
+ | <code bash> | ||
+ | git push --set-upstream ssh:// | ||
+ | </ | ||
+ | ===== Utilisateurs ===== | ||
+ | |||
+ | Création des utilisateurs | ||
+ | |||
+ | * Menu -> Admin | ||
+ | * Panneau Admin Area, Overview -> Users | ||
+ | |||
+ | Depuis l' | ||
+ | |||
+ | Une fois identifié l' | ||
+ | <code bash> | ||
+ | # générer une paire de clés | ||
+ | cd ~/.ssh | ||
+ | ssh-keygen -t rsa -b 4096 -C " | ||
+ | |||
+ | # Afficher la clé publique | ||
+ | cat yoann_gitlab_localhost_rsa.pub | ||
+ | |||
+ | # copier /coller la valeur de la clé publique | ||
+ | </ | ||
+ | |||
+ | Pour tester la connexion au serveur: | ||
+ | |||
+ | <code bash> | ||
+ | # Vérifier la valeur du fingerprint du serveur gitlab | ||
+ | ssh -l git -p 2222 -T -i ~/ | ||
+ | </ | ||
+ | |||
+ | On notera qu'on utilise toujours le login **git** pour la connexion SSH. Le serveur différencie les utilisateurs via la clé publique déposée sur l' | ||
+ | |||
+ | Pour faciliter la connexion, on peut définir une entrée dans le fichier **~/ | ||
+ | < | ||
+ | Host gitlab | ||
+ | HostName gitlab.services.localhost | ||
+ | User git | ||
+ | Port 2222 | ||
+ | PreferredAuthentications publickey | ||
+ | IdentityFile ~/ | ||
+ | </ | ||
+ | |||
+ | Valider la configuration par un test: | ||
+ | <code bash> | ||
+ | $ ssh -T gitlab | ||
+ | Welcome to GitLab, @yoann! | ||
+ | </ | ||
+ | |||
+ | Créer un projet à partir d'un dépot existant: | ||
+ | |||
+ | <code bash> | ||
+ | # Depuis dans le dépot git local | ||
+ | cd filez | ||
+ | |||
+ | # Commande de création du dépot référence proposée par l' | ||
+ | git push --set-upstream ssh:// | ||
+ | </ | ||
+ | |||
+ | ===== Modifier la page d' | ||
+ | |||
+ | Par défaut les utilisateurs non authentifiés sont redirigés sur la page de login. On peut changer ce comportement et proposer la page listant les projets publics. | ||
+ | |||
+ | Depuis le compte root: | ||
+ | * '' | ||
+ | * Une fois le panneau '' | ||
+ | * Déployer la section '' | ||
+ | * Modifier le champ intitulé '' | ||
+ | * Valider les modification en via le bouton '' | ||
+ | |||
+ | |||
+ | ===== Déploiement sur serveur distant ===== | ||
+ | |||
+ | Pour déployer l' | ||
+ | * Créer un répertoire pour l' | ||
+ | * Copier les fichiers docker-compose.yml et .env | ||
+ | * Exporter et recréer les volumes si on souhaite conserver les données produites sur l' | ||
+ | * Adapter le docker-compose au nouvel hôte | ||
+ | |||
+ | <code bash> | ||
+ | # copier le docker-compose.yml et le .env via ssh | ||
+ | scp docker-compose.yml .env server.fqdn:/ | ||
+ | |||
+ | # les commandes suivantes utilisent des conteneurs temporaires pour monter les volumes, | ||
+ | # écrire leurs données sur la sortie standard, rediriger la sortie standard via un tunnel ssh | ||
+ | # sur l’entrée standard du conteneur sur l'hote distant et écrire les données dans | ||
+ | # de nouveaux volumes sur le serveur distant: | ||
+ | docker container run --rm -v gitlab_config:/ | ||
+ | |||
+ | docker container run --rm -v gitlab_logs:/ | ||
+ | |||
+ | docker container run --rm -v gitlab_data:/ | ||
+ | </ | ||