MISE EN PLACE D’UN CHAINE D'INTÉGRATION CONTINUE ET DE DÉPLOIEMENT CONTINUE AVEC GITLAB CI/CD SUR UN SERVEUR LINUX
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 entreprises.
Leur retours: Bonjour EAZYTraining, nous réalisons les différents projets qui se trouvent sur votre plateforme et nous déployons nos applications sur des environnement tel que Heroku, et eazy labs , c’est super mais en entreprise comment ferions nous pour pouvoir les déployer sur des serveurs ?
-
Creer 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
- AWS: c'est une Plateforme Cloud nous proposant Plusieurs services divers nous permettant de mettre en place une infrastructure informatique.
Pour avoir un reel aperçu sur aws je vous invite a regarder ce cours: aws
- Gitlab: C'est 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.
Pour le Cours vous rentre sur le site: eazytraining.fr
- Packer: c'est un outil permettant de créer des images personnalisés pour plusieurs Plateforme cloud et de Virtualisation
Pour en apprendre un peu plus sur Packer , Je vous invite a regarder le cours sur: eazytraining.fr
- Terraform : c'est un outils permettant de provisionner une infrastructure dans le cloud à l'aide du principe de IAC
Pour le cours de Terraform les bases je vous invite a regarder le cours sur :eazytraining.fr
- Docker: C'est une plate-forme logicielle qui vous permet de concevoir , tester et déployer rapidement des applications à l'aide de conteneurs.
Pour Le cours de Docker pour en apprendre plus vous rentre sur : eazytraining.fr
Note: Pour en savoir plus je vous invite à aller regarder notre site web ou vous allez retrouver des cours très intéressant sur ces différentes technologies. EAZYTraining
Pour créer un compte aws , il suffit de se rendre sur aws et suivre les différentes étapes.
Pour créer un compte Github, il suffit de se rendre sur [gitlab](Sign up · GitLab).
Pour installer Packer il suffit de suivre les etapes de la documentation officielle : ici
Dans notre cas nous sommes sur un serveur linux:
Une fois l'installation terminée , nous allons vérifier qu'il est bien présent:
Pour installer Terraform, suivre la procedure de la documentation Officielle: ici
Une fois l'installation terminée , nous allons vérifier:
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
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
Une fois que c'est fait nous allons passer à la rédaction de notre Dockerfile
Avant de rédiger notre fichier Dockerfile nous allons cloner notre projet en Local sur notre serveur
https://gitlab.com/ulrichnoumsi98/mini-projet-gitlab.git
cd mini-projet-gitlab
touch Dockerfile
Nous pouvons dès à présent rédiger votre fichier Dockerfile
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
Une fois que c'est fait , créer un dossier infra qui aura pour contenu:
-
Un dossier packer pour notre AMI
-
un dossier terraform pour notre code terraform
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:
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:
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
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
Réaliser la même opération pour la variable images_NAME qui représente l'URL du registre du conteneur lié au projet spécifique. Cette URL dépend de l'instance GitLab.
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 :
Comme vous pouvez le voir plus ci-dessous notre site web a bien été déployée sur notre serveur:
Comme vous pouvez le constater il est tout a fait possible de realiser un deploiement sur n'importe quelle infrastructure a notre disposition il suffit juste de savoir au préalable quel est le process de façon manuelle et puis de l'adapter dans un script d'automatisation.
Ulrich NOUMSI
Ing Cloud & DevOps














