Git

Configuration du registre de conteneurs GitLab

Configuration du registre de conteneurs GitLab
Dans notre dernier article, nous vous avons montré comment configurer une instance GitLab pour gérer les projets de votre organisation ou de vos projets personnels. Nous vous recommandons d'utiliser un FQDN et d'avoir l'instance GitLab disponible via HTTPS. Étant donné que la plupart des applications sont empaquetées sous forme de conteneurs, il est raisonnable de configurer un registre de conteneurs où différentes versions de votre application, ainsi que ses différents composants peuvent être stockés sous forme d'images Docker.

Si vous ne savez pas ce qu'est un registre de conteneurs, ne vous inquiétez pas. Cela deviendra clair une fois que vous aurez réellement poussé votre première image de conteneur dans une instance GitLab. Pour l'instant, considérez-les comme des référentiels pour vos images de conteneurs. Ce ne sont pas des conteneurs en cours d'exécution mais juste des images (données simples) se trouvant dans l'instance GitLab distante.

Pourquoi voudriez-vous un registre de conteneurs GitLab?

Il y a de fortes chances que votre application soit packagée sous forme d'une seule image Docker ou d'une collection de telles images. Cela signifie que différentes versions seront associées à différentes images et le registre de conteneurs vous aidera à les suivre individuellement et à voir lesquelles doivent être regroupées dans une version particulière.

Le registre est aux conteneurs, ce que le référentiel est au code source et GitLab est un endroit pour les gérer tous.

Conditions préalables

  1. Une instance GitLab fonctionnelle sur HTTPS
  2. Accès root à l'instance
  3. Accès pour modifier les enregistrements DNS de votre nom de domaine

Nous allons supposer que notre GitLab fonctionne sur gitlab.Exemple.com .

Registre des certificats DNS et TLS

Vous devez être l'utilisateur root pour activer la fonctionnalité de registre de conteneurs sur l'instance GitLab. Les utilisateurs individuels peuvent ensuite choisir d'utiliser cette fonctionnalité dans leurs projets respectifs, s'ils le souhaitent. Il y a deux façons de le faire :

  1. Réutilisez le nom de domaine et les certificats TLS existants pour gitlab.Exemple.com et exécutez le registre sur un autre port.
  2. Pointez un autre nom de domaine, disons, enregistrement.gitlab.Exemple.com à la même adresse IP où GitLab s'exécute et y configurer le registre.

Allons-y avec la deuxième option car elle est beaucoup plus professionnelle.

Étape 1: Ajouter un enregistrement A pour enregistrement.gitlab.Exemple.com pointant vers la même IP où votre instance GitLab s'exécute.

Étape 2: Arrêtez les services gitlab en cours d'exécution sur votre serveur.

$ sudo gitlab-ctl stop

Étape 3: Ajouter un client ACME certbot PPA sur votre système et installez certbot.

$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt mise à jour
$ sudo apt installer certbot

Étape 4: Obtenir des certificats de Let's Encrypt.

$ certbot certonly

Vous verrez un message comme :
"'
Comment souhaitez-vous vous authentifier auprès de l'ACME CA?
--
1 : Lancer un serveur Web temporaire (autonome)
2: Placer les fichiers dans le répertoire webroot (webroot)
--
Sélectionnez le numéro approprié [1-2] puis [enter] (appuyez sur 'c' pour annuler): 1
"'

Celui-ci vous demandera ensuite votre e-mail, vous demandera d'accepter leurs conditions d'utilisation et, surtout, vous demandera votre nom de domaine qui serait enregistrement.gitlab.Exemple.com dans notre cas d'exemple. Vous recevrez un message indiquant si les certificats ont été obtenus ou non. S'ils l'étaient, passez à l'étape 5

Étape 5 : Maintenant que nous avons nos certificats, il est temps de les placer dans les répertoires liés à GitLab.

$ cp /etc/letsencrypt/live/registry.gitlab.Exemple.com/chaîne complète.pem
/etc/gitlab/ssl/registry.gitlab.Exemple.crt
$ cp /etc/letsencrypt/live/registry.gitlab.Exemple.com/privkey.pem
/etc/gitlab/ssl/registry.gitlab.Exemple.clé

Sécurisez les autorisations sur eux :

$ chmod 600 /etc/gitlab/ssl/registry.gitlab.Exemple.com.*

Comme le reste du tutoriel, assurez-vous de remplacer example.com avec votre nom de domaine existant. Puisque c'est ce que sera le nom du répertoire, où certbot a stocké le certificat.

Étape 6 : Modifier la configuration de GitLab. Ouvrir le fichier /etc/gitlab/gitlab.rb et ajoutez les lignes suivantes au bas de celui-ci :

Registry_external_url 'https://registry.gitlab.Exemple.viens

Si vous avez tout fait avec soin, la partie la plus compliquée de la configuration est terminée! Vous aurez maintenant un registre de conteneurs opérationnel, exécutez simplement :

$ sudo gitlab-ctl reconfigurer
$ sudo gitlab-ctl start

Activation du registre et transfert d'images

Maintenant que nous avons pour nous-mêmes un registre de conteneurs, créons un nouveau projet à l'aide de l'interface utilisateur Web GitLab et vérifions qu'il fonctionne.

Dans la colonne de gauche, vous pouvez voir une section Registre.  Vous pouvez cliquer dessus pour voir des instructions détaillées sur la façon de vous connecter et d'y envoyer des images. Revenons à notre bureau local, sur lequel Docker devrait être installé.

Nous pouvons l'utiliser pour créer un simple conteneur hello-world et le pousser vers ce registre. Dans votre système local, créez un nouveau dossier :

$ cd ~
$ mkdir sample_container

À l'intérieur, créons un fichier nommé Dockerfile et ajoutez-y le contenu suivant :

DE Ubuntu:dernier
## Vos commandes personnalisées ici

Vous pouvez conserver votre Dockerfile avec juste la première ligne. Ce sera un simple conteneur Ubuntu. Maintenant, vous le construisez avec une balise significative (nous utiliserons la balise mon projet qui est le même que le nom de notre projet GitLab, c'est important). Dans le même répertoire, exécutez :

$ docker build -t registre.gitlab.Exemple.com//mon projet .

N'oubliez pas de remplacer votre nom d'utilisateur GitLab au lieu du espace réservé utilisé dans la commande ci-dessus.

Il crée simplement un conteneur Ubuntu avec la récupération de l'image. Cette image est ce qui est poussé. Si vous modifiez le conteneur et créez une nouvelle image avec (en utilisant docker commit commande ce sera une nouvelle image). Poussons l'image ubuntu vanille dans notre registre.

Nous devons d'abord nous connecter en utilisant notre nom d'utilisateur et notre mot de passe Gitlab :

$ registre de connexion docker.gitlab.Exemple.com

Exécutez ensuite :

$ docker build -t registre.gitlab.Exemple.com/root/mon-projet .
$ docker push registre.gitlab.Exemple.com/root/mon-projet

Si vous n'êtes pas sûr de ce que devrait être la balise de votre conteneur, visitez la page de registre de votre projet et il y aura des instructions claires pour cela. Si la commande docker push a fonctionné correctement, vous pouvez voir une nouvelle image docker être téléchargée (ou poussée) dans votre instance GitLab. Comme cela a été montré dans mon cas:

Conclusion

Le contrôle de version est bien plus qu'une simple gestion de code source. Il s'améliore constamment pour répondre à un éventail polyvalent de demandes dont tout projet logiciel peut avoir besoin de manière inattendue. Le registre des conteneurs n'est que la pointe de l'iceberg. Vous pouvez avoir des pipelines CD/CI, une gestion de configuration avancée, une autorisation via des jetons et une multitude d'autres fonctionnalités activées dans GitLab. J'espère que vous avez appris quelque chose de nouveau sur cette merveilleuse technologie dans ce tutoriel.

Faites-nous savoir s'il y a quelque chose que vous voulez que nous couvrons!

Comment afficher le compteur FPS dans les jeux Linux
Les jeux Linux ont reçu une impulsion majeure lorsque Valve a annoncé la prise en charge de Linux pour le client Steam et leurs jeux en 2012. Depuis l...
Comment télécharger et jouer à Civilization VI de Sid Meier sur Linux
Présentation du jeu Civilization 6 est une version moderne du concept classique introduit dans la série de jeux Age of Empires. L'idée était assez sim...
Comment installer et jouer à Doom sur Linux
Introduction à Doom La série Doom est née dans les années 90 après la sortie du Doom original. Ce fut un succès instantané et à partir de ce moment-là...