MISE EN PLACE D’UNE CHAÎNE D’INTÉGRATION CONTINUE ET DE DÉPLOIEMENT CONTINU AVEC GITLAB CI/CD SUR UN SERVEUR LINUX
Contexte et Objectifs
Notre article s’inscrit dans le cadre des retours des apprenants suite à une demande de comment est-ce que nous pouvons déployer nos applications sur des serveurs en entreprise. Leurs retours : Bonjour EAZYTraining, nous réalisons les différents projets qui se trouvent sur votre plateforme et nous déployons nos applications sur des environnements tels que Heroku et Eazy Labs, c’est super, mais en entreprise, comment ferions-nous pour pouvoir les déployer sur des serveurs ? Durée de mise en place : 20 minÉtapes de mise en place du projet
- Créer des comptes sur AWS & Gitlab ;
- Récupérer le projet Fil Rouge du cours de Gitlab-CI ;
- Provisionner l’infrastructure
- Mise en place du pipeline CI/CD vers un serveur Linux
- Vérifier notre infrastructure
Présentation des différents outils et plateformes
- AWS : c’est une plateforme Cloud nous proposant plusieurs services divers nous permettant de mettre en place une infrastructure informatique. AWS Pour avoir un réel aperçu sur AWS, je vous invite à regarder ce cours : AWS
- Gitlab : C’est une plateforme de collaboration open source qui offre de puissantes fonctionnalités au-delà de l’hébergement d’un dépôt de code. Vous pouvez suivre les problèmes, héberger des paquets et des registres, entretenir des wikis, mettre en place des pipelines d’intégration continue (CI) et de déploiement continu (CD), et bien d’autres choses encore. Gitlab Pour le cours, vous rendez-vous sur le site : eazytraining.fr Terraform les bases pour DevOps – EAZYTraining
- Packer : c’est un outil permettant de créer des images personnalisées pour plusieurs plateformes cloud et de virtualisation. Packer Pour en apprendre un peu plus sur Packer, je vous invite à regarder le cours sur : eazytraining.fr Packer – EAZYTraining
- Terraform : c’est un outil permettant de provisionner une infrastructure dans le cloud à l’aide du principe de IAC. Terraform Pour le cours de Terraform, les bases, je vous invite à regarder le cours sur : eazytraining.fr Terraform – EAZYTraining
- Docker : C’est une plate-forme logicielle qui vous permet de concevoir, tester et déployer rapidement des applications à l’aide de conteneurs. Docker Pour le cours de Docker et pour en apprendre plus, vous rendez-vous sur : eazytraining.frIntroduction à Docker – EAZYTraining
Mise en place de l’environnement
Compte AWS
Pour créer un compte AWS, AWS – EAZYTraining il suffit de se rendre sur AWS et de suivre les différentes étapes.Compte Gitlab
Pour créer un compte Gitlab, il suffit de se rendre sur [Gitlab]Gitlab Sign INInstallation de Packer
Pour installer Packer, il suffit de suivre les étapes de la documentation officielle : [ici](https://www.packer.io/docs/install). Dans notre cas, nous sommes sur un serveur Linux.Une fois l’installation terminée, nous allons vérifier qu’elle s’est bien déroulée :
Installation de Terraform
Pour installer Terraform, suivez la procédure de la documentation officielle : iciUne fois l’installation terminée , nous allons vérifier:
Installation de Docker
Docker sera installer directement sur notre infrastructure que nous allons provisionner via terraform et il nous suffit juste d’utiliser ces deux commandes:curl -fsSL https://get.docker.com -o install-docker.sh
sudo sh install-docker.sh
Mise en place de notre Pipeline CI/CD
Step 1: Creation d’un Nouveau Projet sur Gitlab
Pour se faire , on va se connecte à notre compte gitlab Puis réaliser les étapes ci-dessous:- Cliquer sur New Project
- Create Blank Project
- Valider la configuration
Step 2: Rédaction du Fichier Dockerfile
Avant de rédiger notre fichier Dockerfile nous allons cloner notre projet en Local sur notre serveurhttps://gitlab.com/ulrichnoumsi98/mini-projet-gitlab.git
cd mini-projet-gitlab
touch Dockerfile
Nous pouvons dès à présent rédiger votre fichier Dockerfile
Step 3: Provisionnement de l’infrastructure
Se rendre sur votre compte aws et realiser les operations suivantes:- Créer une paire de clés
- Créer une accesskey et une secret key
- Créer une paire de clés
- Créer une accesskey et une secret key
mkdir infra
mkdir -p infra/packer infra/terraform
La Hiérarchie des dossiers étant établi nous allons insérer les différents code sources et lancer le provisionnement de notre infrastructure:
Build de l’AMI
cd infra/packer
packer fmt docker.pkr.hcl
packer validate docker.pkr.hcl
packer build docker.pkr.hcl
Une fois le build terminée, nous avons une images de disponible sur aws:
Provisionnement de l’infrastructure
cd infra/terraform
terraform init
terraform plan
terraform apply
Visualisons sur notre console AWS:
Une fois que l’environnement est mise en place nous allons configurer notre fichier .gitlab-ci.yml
Configuration du fichier .gitlab-ci.yml
Il suffit de suivre quelques instruction et le tour est jouéLe fichier étant complet nous allons créer une variable sur la plateforme gitlab pour pouvoir contenir la paire de clés qui va nous aider à nous connecter à notre serveur.
Pour se faire , il faut se rendre a **Settings > CI / CD > Variables ** et cliquer sur Add Variable.
- Key: ID_RSA
- Value: Mettre la valeur de votre clés
- Type: File
Une fois cette configuration terminée, il faut pousser le code sur votre repos et le pipeline devrait se lancer
Après quelques instant nous avons les jobs qui vont se lancer :