Skip to content

Latest commit

 

History

History
116 lines (74 loc) · 3.82 KB

README.md

File metadata and controls

116 lines (74 loc) · 3.82 KB

Rapport de projet

Panorama du cloud & déploiement AWS

Étape 1 : Préparation du projet

1.1 Choix du projet

Pour le projet existant à utiliser, nous avons choisi un projet web. Un front-end développé en React.js et un back-end API en Nest.js, Prisma ORM et GraphQL.
Le site web est une reproduction du blog Medium.com.

La page d'accueil :

Image

Lien du dépôt : ICI


Étape 2 : Docker

2.1 Dockerfile

Les trois Dockerfile sont dans le dossier app/<nom> (<nom> = client, nginx ou server).

2.2 docker-compose.yml

Le fichier docker-compose.yml est dans le dossier app.

Commande d'exécution :

docker compose -f "app/docker-compose.yml" up -d --build

Résultat après avoir exécuté la commande :

Image docker command

Résultat sur localhost:5173 :

Image résultat


Étape 3 : Docker Swarm

3.1 Le script de déploiement avec multipass et docker swarm :

Vous avez juste besoin de lancer le script :

sh swarm/launch.sh

Ou faites ceci manuellement en suivant le README.md dans le dossier swarm.


Étape 4 : Terraform et Ansible avec AWS

4.1 Informations de connexion

  1. Récupérer l'access key et la secret key de votre compte AWS.
  2. Créer depuis l'interface AWS une key pair nommé "myKey" pour pouvoir se connecter à l'instance EC2. Puis télécharger le fichier .pem et le placer le à la racine du projet.

4.2 Terraform

Une fois les informations de connexion récupérées, il n'y a plus qu'à :

Commandes à exécuter :

cd terraform

# Remplacer les valeurs avec votre access key et secret key
echo 'aws_access_key = "XXX"\naws_secret_key = "XXX"' > variables.tfvars

docker container run -it --rm -v $PWD:$PWD -w $PWD hashicorp/terraform init

docker build -t terraform .
docker run --rm -w /workspace terraform apply -auto-approve

Si toutes les informations demandées sont correctes, et une fois l'exécution réussi, la nouvelle instance a bien été créée sur AWS.

Image terraform AWS

4.3 Ansible

Vous devez placer votre clé myKey.pem à la racine du projet si ça n'est pas déja fait, ainsi que changer l'adresse du server dans inventory.ini, puis éxecuter ces commandes :

docker image build -t ansible:2.16 . 
docker container run --rm ansible:2.16 ansible-playbook -i inventory.ini playbook.yml

Étape 5 : initialisation de Jenkins

Pour lancer et tester Jenkins en local:

docker run -p 8080:8080 -p 50000:50000 --restart=on-failure jenkins/jenkins:2.430-jdk21

Sinon lancer le docker compose du projet, Jenkins est incorporé dedans

Jenkins nous fournit un mot de passe initial pour la première étape.

Image mot de passe générée localement

Nous avons le choix entre une installation traditionnel et une installation suggérée. Nous choisirons la seconde option.

Suggested Install

Une fois l'installation effectuée, nous créons l'utilisateur admin et sommes prêt à utiliser Jenkins.

On sélectionne New Item puis Freestyle project

Freestyle project

Nous inscrivons l'url Git du projet et définissons la routine de mise à jour du Git

Url Git build Triggers

Jenkins est en marche, on peut lancer un premier Build manuel pour s'assurer du bon focntionnement du projet ou attendre la routine.

Build Complete