Browsed by
Catégorie : Gitlab

Mise à jour vers Gitlab 10, rio ne répond plus

Mise à jour vers Gitlab 10, rio ne répond plus

Le proverbe sysadmin « Pas d’installation, ni de mise à jour le vendredi » a pris tout son sens en ce vendredi matin. Cela faisait quelques mois que je n’avais pas touchés mon serveur gitlab et donc je décide d’un pas tranquille de le mettre à jour, ainsi que le container qui l’héberge. Mais tout ne se passe pas comme prévu et une simple mise à jour de 5 mn m’a finalement bloqué une bonne partie de la matinée. La mise à jour s’est déroulée correctement, le container est monté de jessie vers stretch sans embûches. Gitlab est passé de la version 9.5 à 10.2. Je redémarre tout ce petit monde tout semble normal, pas d’anomalies ni de messages d’erreurs. Mais lorsque j’ai voulu me connecter à mon instance, celle-ci  me répondait toujours la même chose :  502 Whoops, GitLab is taking too much time to respond. Et me voilà parti pour identifier le problème.

 

Premièrement, jeter un coup d’œil aux journaux systèmes, ils donnent toujours de bonnes informations. Justement les devs de gitlab ont très bien fait les choses car il est possible de parcourir tous les logs services en une seule commande :

La vérité me fut révélée, mon problème venait du service gitlab_workhorse :

Deuxièmement, une fois le problème identifié, parcourir le site de gitlab afin de savoir si d’autres ont eu ce problème et s’ils l’ont résolu. D’après les premières constations de l’enquête  il s’agit d’un problème de droit que rencontre nginx sur le socket du service gitlab_workhorse. Vérifions cela :

On voit bien que seul l’utilisateur GIT et le groupe GIT ont accès au socket. J’ai orienté mes recherches dans ce sens et j’ai fini par trouver :

https://gitlab.com/gitlab-org/gitlab-workhorse/issues/129

Je décide de faire comme préconisé :

Je redémarre gitlab et paf ! Toujours cette maudite erreur 502 et toujours ce problème de droit sur le socket gitlab_workhorse. J’approfondis encore mes recherches directement sur la documentation de gitlab, je finis par trouver une piste qui n’avait rien avoir avec mon problème:

Set the right gitlab-workhorse settings if using Apache.

L’évidence me sauta aux yeux. Pourquoi utiliser le service en mode socket ? Pourquoi ne pas essayer en mode tcp ?

Ni une, ni deux je modifie le /etc/gitlab/gitlab.rb avec les paramètres suivants (directement récupérés de la doc) :

Comme à chaque modification du gitlab.rb, il faut lancer une reconfiguration.

Me croyant sorti d’affaire je pousse un ouf de soulagement et bien non, pendant la reconfiguration un nouveau problème apparut.

Cela m’apprendra à faire des mises à jour sans lire la note de version :

https://about.gitlab.com/2017/09/22/gitlab-10-0-released/#gitlab-git-http-server-configuration-support-removed

Je retourne dans le gitlab.rb, je commente la ligne :

Je relance une configuration, tout ce passe bien. Je vérifie le service gitlab_workhorse, aucune erreur apparente. Je tente une connexion depuis l’interface web tout fonctionne parfaitement. Je peux enfin pousser mon gros ouf de soulagement.

C’est décidé j’arrête les mises à jour bancales juste après le petit-déjeuner, enfin jusqu’à la prochaine 🙂 .

 

Optimisation de myrepos – mrconfig

Optimisation de myrepos – mrconfig

Suite à un article où j’expliquais comment gérer ses fichiers de configuration $HOME, avec git, mr et vcsh, j’ai décidé de me pencher plus précisément sur la configuration de myrepos alias mr. En effet maintenir un seul et même fichier pour une trentaine de dépôts cela devenait fastidieux. J’ai donc opté pour une organisation décentralisée, avec un dossier pour stocker les différents fichiers de configuration de mes dépôts, appelait par le « mrconfig ».

Dans cette configuration, j’ai un fichier par dépôts, que j’active ou désactive à souhait dans le « mrconfig ». Un fichier de dépôt est configuré de cette façon, exemple avec mon dépôt emacs :

Le fonctionnement reste le même, je clone depuis mon Gitlab et lorsque je pousse mes modifications elles sont simultanément poussées sur mon Gitlab est sur Github.

Passons maintenant au chef d’orchestre le fichier « mrconfig » qui contrôle tout ce petit monde :

Je renseigne tous les dépôts que j’utilise et il me suffit d’un « # » pour désactiver le dépôt concerné. Et l’inverse pour l’activer. Ce fonctionnement est beaucoup plus souple dans mes habitudes de travail.

 

Migration d’un serveur Gitlab

Migration d’un serveur Gitlab

Après onze mois à l’essai j’ai enfin prit le temps de trouver une demeure définitive à mon Gitlab. En effet plus les mois passent, plus il est devenu indispensable dans ma vie de  tous les jours. Il me permet de garder un historique de mes scripts, fichiers de configurations et autres projets sur lesquels je travaille.

Gitlab est une sur-couche à git écrite en ruby qui permet de faire tourner un serveur git à la github chez soi. Beaucoup plus complet que ce propose github (avis très personnel), il est parfait lorsque l’on veut maintenir de petits fichiers de configurations. Il peut être aussi utilisé en complément de Github comme je le fais, ainsi je partage mes projets avec beaucoup plus de monde. Pour plus d’information rendez-vous sur le site officiel www.gitlab.com. Si vous voulez vous lancer dans l’aventure je vous conseille la « comunauty edition ».

Read More Read More

Gérer ses dotfiles avec git

Gérer ses dotfiles avec git

L’utilisation de plusieurs ordinateurs sous Linux, peut devenir un vrai cauchemar lorsque l’on veut maintenir la même configuration à jour. Dans mon quotidien il m’arrive d’utiliser trois ordinateurs différents. Et j’aime bien retrouver mes marques quel que soit la machine utilisée. Au départ je « trimballais » partout une clef usb avec tous mes fichiers de configurations, mais cette solution a atteint sa limite très rapidement.

Elle était surtout très contraignante car, je devais en permanence avoir ma clef usb sur moi et en cas de modification de configuration penser à faire une copie (ce qui arrivait une fois sur mille) sur la dite clef pour pouvoir mettre à jour mes autres ordinateurs. Du coup je me retrouvais avec des configurations très hétéroclites.

J’ai donc décidé de créer un dépôt git pour les différentes configurations que je souhaite déployer sur mes ordinateurs. Certains diront pourquoi ne pas tout grouper dans un même dépôt, je préfère les séparer en cas problème sur un cela ne me bloquera pas le reste.

C’est alors que j’ai entendu parler de vcsh et mr (Merci à Brice camarade libriste qui m’a expliqué les bases). Ses deux petits programmes couplés avec git m’ont permit de centraliser tous mes fichiers de configurations sur mon serveur gitlab et ainsi de pouvoir installer mon environnement sur tous les ordinateurs que j’utilise.

Read More Read More

Gitlab 6.4 de nouvelles options de visibilités pour les projets

Gitlab 6.4 de nouvelles options de visibilités pour les projets

Une grande majorité de développeurs utilisent un logiciel de gestion de version pour leurs projets. Surtout sur les gros projets afin de s’y retrouver parmi la multitude de fichiers sources créés, modifiés, détruits par l’ensemble de l’équipe de développement.

Parmi ses logiciels le plus répandut est Git. Pour faire simple Gitlab est en réalité une interface web s’appuyant sur les commandes de bases de Git, comme le fait le très populaire GitHub.

Certes je n’ai pas de gros projets de développements, je ne me considère pas comme un développeur, mais plutôt comme quelqu’un qui script. Je dois reconnaître qu’il est  très confortable de gérer  les différentes versions de mes scripts via une interface graphique.

Dès le  début j’avais pensé utiliser Github pour mes petits projets de script afin de pouvoir garder un historique de mes modifications et de mes « dotfiles ». Mais Github est une société privée qui ne permet pas de configurer la visibilité par défaut d’un projet à moins d’avoir un compte payant, en effet tout est public sur Github. Ce n’est pas le fait de payer qui me dérangeait dans l’offre de Github, mais qu’encore une fois il faillait confier ses données à un tier. J’ai  pris la décision de me configurer un serveur Gitlab le petit frère de Github.

Read More Read More