Différences
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 | ||
fr:gitlab_admin [2016/12/19 22:00] – [Installer une partition annexe avec Xen/LVM et y accéder] zatalyz | fr:gitlab_admin [2024/06/19 16:35] (Version actuelle) – [Problèmes courants et résolution] zatalyz | ||
---|---|---|---|
Ligne 6: | Ligne 6: | ||
</ | </ | ||
+ | Le tour d' | ||
===== Installation ===== | ===== Installation ===== | ||
Ligne 22: | Ligne 23: | ||
==== Configuration de base : gitlab.rb ==== | ==== Configuration de base : gitlab.rb ==== | ||
Éléments à changer (je met ce qu'il y a chez nous) : | Éléments à changer (je met ce qu'il y a chez nous) : | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | J'ai modifié un peu la config : le serveur gitlab n'a pas à gérer https, seul le reverse proxy va s'en occuper. Les communications au sein du réseau des VM vont être en http simple. | ||
+ | |||
+ | nginx[' | ||
+ | |||
+ | </ | ||
+ | |||
<code ruby / | <code ruby / | ||
############################# | ############################# | ||
Ligne 60: | Ligne 69: | ||
git_data_dir "/ | git_data_dir "/ | ||
# | # | ||
+ | ## Pour les conteneurs | ||
+ | package[' | ||
+ | |||
+ | |||
</ | </ | ||
Adaptez à l' | Adaptez à l' | ||
Ligne 230: | Ligne 243: | ||
Voir aussi la doc : https:// | Voir aussi la doc : https:// | ||
- | Pour faire une sauvegarde | + | ==== Pour faire une sauvegarde |
+ | |||
gitlab-rake gitlab: | gitlab-rake gitlab: | ||
Ligne 250: | Ligne 264: | ||
On peut mettre en place un cron régulier qui lancera ce backup. Il faut, en plus, sauvegarder le contenu de ''/ | On peut mettre en place un cron régulier qui lancera ce backup. Il faut, en plus, sauvegarder le contenu de ''/ | ||
+ | === Version gitlab === | ||
+ | Dans le fichier gitlab.rb, paramétrez cette partie : | ||
+ | < | ||
+ | gitlab_rails[' | ||
+ | gitlab_rails[' | ||
+ | :provider => ' | ||
+ | :local_root => '/ | ||
+ | } | ||
+ | gitlab_rails[' | ||
+ | </ | ||
- | <WRAP center round todo 60%> | + | Récupérez ensuite |
- | Work in progress : ajouter un crontab aux oignons pour tout envoyer là ou un serveur de sauvegarde peut aller chercher | + | |
- | </WRAP> | + | |
- | Pour restaurer, | + | === Version manuelle === |
+ | Si vous n'avez pas envie de passer par gitlab, placez ce script dans root : | ||
+ | <code bash / | ||
+ | # Sauvegarde de gitlab | ||
+ | gitlab-rake gitlab: | ||
+ | cp -R / | ||
+ | chown -R branaz: | ||
+ | chmod -R g+rw / | ||
+ | |||
+ | Remplacer ''/ | ||
+ | |||
+ | Insérez ensuite cette ligne dans cron ('' | ||
+ | 01 01 * * * / | ||
+ | |||
+ | |||
+ | |||
+ | ==== Pour restaurer | ||
* s' | * s' | ||
* Éteindre unicorn et sidekiq | * Éteindre unicorn et sidekiq | ||
- | < | + | < |
- | gitlab-ctl stop sidekiq | + | sudo gitlab-ctl stop puma |
- | gitlab-ctl status</ | + | sudo gitlab-ctl stop sidekiq |
+ | sudo gitlab-ctl status | ||
+ | </ | ||
* remettre en place le fichier ''/ | * remettre en place le fichier ''/ | ||
< | < | ||
Ligne 270: | Ligne 310: | ||
* puis lancer les commandes suivantes (en adaptant au nom du fichier de sauvegarde) : | * puis lancer les commandes suivantes (en adaptant au nom du fichier de sauvegarde) : | ||
- | gitlab-rake gitlab: | + | |
- | gitlab-ctl reconfigure | + | |
- | gitlab-ctl start | + | |
- | gitlab-rake gitlab: | + | |
'' | '' | ||
+ | |||
+ | ==== Sauvegarder le reste ==== | ||
+ | Le backup plus haut ne se suffit pas à lui-même ; il faut sauvegarder les repositories à part (sauf si vous voulez remplir votre disque dur) et la configuration de gitlab. | ||
+ | |||
+ | Comme nous sommes des gens sérieux, nous ne faisons pas des sauvegardes en se connectant automatiquement depuis un serveur distant avec root. | ||
+ | |||
+ | Comme gitlab n'est pas aussi sérieux, il va nous prendre la tête. | ||
+ | |||
+ | Bref, commençons par créer un utilisateur basique, qui aura uniquement des droits en lecture, et qui servira à se connecter. Ajoutez-le dans le groupe git. Donnez les droits sur les dépôts et le dossier où les backup de gitlab seront stockés. | ||
+ | |||
+ | < | ||
+ | chown g+rx / | ||
+ | |||
+ | Pensez aussi à lui permettre de se connecter via ssh dans ''/ | ||
+ | |||
+ | Gérez l' | ||
+ | |||
+ | Et maintenant la bonne blague : <wrap hi>à chaque fois que vous ferez '' | ||
+ | |||
+ | <WRAP center round tip 60%> | ||
+ | Une alternative pourrait être d' | ||
+ | |||
+ | Participez à ce fichu tuto si vous savez comment faire ! | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ==== Récupérer les images ==== | ||
+ | On doit pouvoir ajouter la sauvegarde des images d' | ||
+ | |||
+ | Il suffit de copier ce dossier '' | ||
+ | chown -R gitlab-www: | ||
+ | chmod -R 2770 uploads | ||
==== Erreur de version de Gitlab ==== | ==== Erreur de version de Gitlab ==== | ||
Ligne 361: | Ligne 434: | ||
chown -R git:git /mnt/depots | chown -R git:git /mnt/depots | ||
chmod -R 2770 /mnt/depots | chmod -R 2770 /mnt/depots | ||
+ | |||
+ | ==== Permettre l' | ||
+ | Gitlab offre, pour chaque dépôt, un accès " | ||
+ | |||
+ | Éditer le fichier ''/ | ||
+ | |||
+ | < | ||
+ | AllowUsers root git | ||
+ | </ | ||
+ | |||
===== Architecture ===== | ===== Architecture ===== | ||
Lors d'une installation basique comme cité plus haut, voici où trouver le bazar lié à gitlab : | Lors d'une installation basique comme cité plus haut, voici où trouver le bazar lié à gitlab : | ||
- | # find / -name *gitlab* -type d | + | < |
/etc/gitlab | /etc/gitlab | ||
/ | / | ||
/ | / | ||
- | /opt/gitlab | + | /opt/gitlab</ |
+ | |||
+ | |||
+ | ===== Problèmes courants et résolution ===== | ||
+ | En plus de ce qui est listé ici et là, Gitlab est adepte de quelques petites pannes " | ||
+ | |||
+ | Après une mise à jour, il faut régulièrement relancer la commande '' | ||
+ | |||
+ | De temps en temps et suivant les versions, Gitlab sature. Généralement il remplit la RAM, plante, et bloque. Parfois aussi il remplit l' | ||
+ | |||
+ | Plus le temps passe et moins je crois à la finesse avec ce truc, donc avant de chercher trop loin, commencez simplement par vous connecter à la VM et : | ||
+ | reboot | ||
+ | |||
+ | Après le reboot, attendez au moins 15 minutes, gitlab est très long à lancer correctement tous ses services. Si un coup de '' | ||
+ | |||
+ | Si toujours rien, tentez '' | ||
+ | |||
+ | Enfin, en dernier ressort, Gitlab aime bien '' | ||
+ | |||
+ | Si ça ne marche toujours pas, allez prendre l'air un grand coup, faites autre chose pendant quelques heures. Avec un peu de chance, un des petits dieux de l' | ||
+ | |||
+ | Ensuite, si aucun des disques n'est plein ('' | ||
+ | |||
+ | Si rien de tout ça n'a marché, il va falloir chercher plus... Retour aux outils traditionnels de sysadmin, vérification des logs, des services de systemd, etc. Ou bien éteignez gitlab et branchez vos dépôts sur un autre système, ça ne doit pas être bien plus long. | ||
+ | |||
+ | ===== Astuces ===== | ||
+ | ==== Enlever la fenêtre de pop-up des emojis ==== | ||
+ | Un truc très pénible quand on écris français : les deux points précédés d'une espace font apparaître un pop-up d' | ||
+ | Deux solutions : | ||
+ | * La touche Echap ferme ce popup, jusqu' | ||
+ | * Avec uBlock Origin, dans mes filtres, ajouter la règle suivante : '' | ||