Vous êtes sur la page 1sur 5

Installation d’un serveur web à l’aide de l’outil de gestion de configuration

ansible

Dans ce TP, un serveur web HTTPD/Apache sera installer à l’aide de l’outil de gestion de
configuration Ansible.
Pour ce TP, nous allons installer deux machines virtuelles Centos 8 avec 1go de ram et 2 vCPU que nous allons
mettre en réseau NAT pour qu’elles puissent communiquer entre elles.
Une des machines servira de machine d’administration Ansible que j’ai nommé serveu-web-ansible, et l’autre
sera le serveur web à configurer.
D’abord il faut savoir qu’Ansible est un logiciel/outil de déploiement/configuration à distance écrit en python et
il utilise YAML pour l’écriture de scripts de ses travaux, qui est un langage très simple pour les playbooks
Ansible, qui est un langage de codage lisible par l’homme, de sorte que les scripts peuvent être écrits sans trop de
difficulté. Lors de l’envoi de commandes pour des tâches spécifiques, le serveur Ansible convertit le code
YAML en code de configuration réel pour les clients pour une exécution immédiate. Il utilise seulement SSH et
ne nécessite pas de serveur : une simple station de travail peut suffire. Il est bon également de noter qu'il
fonctionne en mode push (de Ansible vers le serveur cible).  Il permet un déploiement et un approvisionnement
transparents pour les machines virtuelles, les applications et les conteneurs, et s’adapte facilement à la croissance
de l’environnement. 
1) Installation de Ansible sur la machine d’administration :

Par défaut, les dépôts de CentOS ne contiennent pas tous les logiciels. Or, on a besoin parfois de logiciels divers
qui parfois ne sont pas incorporés. Nous allons donc installer EPEL (Extra Packages for Enterprise Linux) qui est
un dépôt indispensable ainsi que python. Nous pouvons installer les paquets (epel, python et ansible) séparément
comme en une seule fois comme dans ce cas-ci avec la commande
yum install epel-release -y && yum install python2 && yum install ansible -y
2) Nous Créons ensuite un script Yaml (le playbook) qui sera idempotent c’est-à-dire qu’on pourra executer le
playbook plusieurs fois et ça donnera le même résultat (le serveur sera donc toujour dans l’état souhaité. Ce
script va dire à ansible d’aller installer un serveur web sur la machine serveur web. Pour cela créons un fichier
que nous allons nommer install_httpd.yml où nous allons copier le script qui commence toujours par --- (NB :
nous allons documenter chaque action/tâche avec un ‘’ – name’’ et ajouter chaque tâche par la commande
‘’task’’ )
vi install_httpd.yml
---
- hosts: web
become: yes
gather_facts: no
tasks:
- name: Apache latest version installation
dnf:
name: httpd
state: latest
- name: Start httpd service
service:
name: httpd
state: started
- name: enable service httpd and ensure it is not masked (S’assurer que le service httpd est actif et non masqué)
systemd:
name: httpd
enabled: yes
masked: no
- name: Create firewall rule for apache service ( Créer une règle de pare-feu pour Apache)
firewalld:
service: http
zone: public
permanent: yes
immediate: yes
state: enabled
handlers:
- name: Restart apache service # Redémarrer Apache
service:
name: httpd
state: restarted
3) Créons sur la machine d’administration le fichier d’inventaire Ansible que nous allons nommer dans notre cas
‘’inventory.ini’’ qui va créer un groupe de machines web pour que le script ansible puisse être appliquer à ce
groupe de machines web où nous allons mettre l’adresse ip de la machine qui va nous servir de serveur web.
Nous enregistrons le fichier.

4) Générer une clé SSH sur la machine d’administration (étant donné que Ansible ne fonctionne que par ssh)
Ansible sans passphrase (la passphrase vérouille la clée privée).
5) Copions la clé SSH (la clé publique) sur le serveur web : ssh-copy-id root@10.0.2.11

6) Maintenant que nous avons défini toute la configuration que nous voulons sur la machine distante (sur le
serveur web, appliquons-le maintenant sur le serveur web. Jouons le script Ansible depuis la machine
d’administration Ansible :
ansible-playbook -i inventory.ini install_httpd.yml

7) Vérifions enfin que la configuration du serveur web est bonne en essayant d’accèder au serveur web
installé :
Depuis la machine d’administration ansible :
yum install epel-release && yum install wget -y

Ensuite essayons de nous connecter au serveur web wget 10.0.2.11

Nous arrivons à nous connecter au serveur web sans problème ce qui signifie que notre serveur web fonctionne
parfaitement.

Conclusion
Nous venons de créer un Playbook Ansible pour automatiser l’intégralité du processus de configuration de notre
hôte afin qu’il exécute le serveur Web. Tout cela a été réalisé sans avoir besoin de vous connecter directement au
serveur, et le meilleur, c’est que nous pouvez exécuter votre nouveau Playbook sur plusieurs machines pour
obtenir le même résultat.

Vous aimerez peut-être aussi