Déploiement d’une application Web dans un Docker container avec Ansible

  • October 19, 2021
  • 43 Views

1) Déploiement application web:

Controller node:

Installer ansible dans le controller node, quand ansible va exécuter une commande, il va examiner le fichier de configuration d’ansible et inventory pour se connecter au manage node via ssh et puis va exécuter le Playbook qui contient toute la configuration dans le manage node.

Managed node:

C’est le nœud qui va être gérer par ansible, le nœud ansible va configure docker l’exécuter et puis va faire un pull de l’image et va lancer le docker container et après va déployer l’application sur le managed node.

2) Les étapes de déploiement :

1ère étape : Installer Ansible

Cmd: apt install software-properties-common

Cmd: add-apt-repository –yes –update ppa:ansible/ansible Cmd: pip install ansible-core

2ème étape : SSH

Configurer les clés SSH à partir du controller node et les partager entre les managed nodes
Cmd: ssh-keygen

3ème étape : ufw

Gére les règles du firewall, va autorise le traffic sur le port 22. Ufw va être installer sur le managed node
Cmd: apt install ufw
Cmd: ufw enable
Cmd: ufw start
Cmd: ufw status

4ème étape : Inventory

Pour connecter ansible avec le managed node, il faut spécifier les machines qu’on doit gérer et aussi les credentilas pour que ansible s’authentifie et c’est grace au fichier inventory qui se trouve sous /etc/ansible/hosts

Pour corriger cette erreur il faut utilise la commande
Cmd: ssh-copy-id root @10.30.3.10

Avec cette commande on va copier public ssh key dans la machine cible qui va être stocker dans .ssh/authorized.keys

5ème étape : Playbook

Installation des modules docker avec la commande Cmd: ansible-galaxy collection install community.docker

  • Le target host ou on va exécuter toute la configuration qui se trouve au niveau du playbook
  • Décrire les étapes pour installer docker et le configurer
  • Installation des packages python pour docker
  • On va crée un directory dans le target host ou on va specifier le chemin pour stocker le volume
  • Copier le fichier partir du controller node vers le managed node
  • Avec le module Community docker on va créer un container httpd ou on va déployer l’application et exposer le port

Pour executer le palybook avec :
Cmd: ansible-playbook fichier.yaml