Vous êtes sur la page 1sur 84

Mémoire de fin d’études

Mémoire présenté par MISSIAMENOU Stéphanie

Automatisation de mises-à-jour, configuration et installation


de logiciels sur machines virtuelles avec Ansible et AWX

Oral de Mémoire – RNCP NIVEAU 7


Mastère -Expert IT cybersécurité, réseaux et systèmes

Date de rendu Date de soumission Année


universitaire

02/06/2023 19/06/2023 2022/2023


2
Remerciements :

Je remercie ma famille pour leur soutien indéfectible.


Je tiens à remercier Mr. Phillipe THOMAS qui m’a accueillie dans son entreprise afin de
réaliser mon année de formation. Je remercie toute l’équipe de APP Solution, pour l’ambiance
régnant dans l’entreprise, pour avoir pris soin de moi, permis on épanouissement et tout
particulièrement Michael Frank et Olivier CLEF, mes tuteurs de stage qui ont supervisé ma
formation, m’ont conseillée, encadrée tout au long des deux années.
Je remercie aussi et surtout Steeve DELOUSTAL, qui m’a aidée et permis de mette à bien le
projet que je vais vous présenter. Il m’a beaucoup aidée, conseillée.
J’adresse aussi mes remerciements à mon professeur Mr El-IDRISSI qui m’a prodigué des
conseils et Mr VEDOGBETON qui a supervisé et contrôlé l’avancée de mon mémoire.

Stephanie MISSIAMENOU 2
3

Glossaire :

TIC (Technologies de l’Information et de la Communication) : Moyens mis en place afin d’acheminer,


produire, manipuler, convertir, stocker, gérer, transmettre, retrouver, communiquer une information
d’un point A à un point B sans compromettre certains critères de l’information : fiabilité, pertinence,
actualité, originalité et accessibilité. Lorsqu’on parle de TIC, on parle aussi bien de protocoles,
machines, que de personnes.
RAID 5 (Redundant Array of Independent Disks) : Virtualisation pour répartir les données sur
plusieurs disques augmentant la sécurité, la performance et la résistance aux pannes. Il existe multiples
techniques de RAID comme le 0, le 1, le 5, le 10, le 50.
NAS (Network Attached Storage) : Périphérique de stockage proposant plusieurs services et une
connexion aux fichiers via un navigateur ou des applications.
NAS (Network Attached Server) (dans le cas de RADIUS) : c’est une machine dont le rôle sera de
rentrer en communication avec RADIUS. Ça peut être un routeur, un commutateur …
DNS (Domain Name Service) : Service liant un nom de domaine à une adresse IP.
DHCP (Dynamic Host Configuration Protocol) : Attribue dynamiquement (au hasard) une adresse IP
ainsi que son masque de sous-réseau à une machine.
LDAP (Lightweight Directory Access Protocol): Annuaire recensant les utilisateurs ainsi que les objet
dans un Active Directory.
NTP (Network Time Protocol) : Service synchronisant les heures des ordinateurs. Très utilisé dans des
techniques comme le GPS.
Telnet (terminal network ou telecommunication network, ou encore teletype network) : Protocole du
réseau TCP/IP servant à communiquer avec un serveur distant. Les réponses reçues par ce protocole
sont en clair.
TOTP (Time-based One-Time Password) : un algorithme basé sur le temps réel qui élabore un mot de
passe à partir d’un nombre et de l’heure en calculant la minute à laquelle le mot de passe créé ainsi que
celle d’avant et celle d’après. Ces mots de passe ont une durée d’une minute après quoi, il n’est plus
valable.
Node : En informatique, un "node" (ou nœud en français) est un point d'accès ou un élément de réseau
qui peut être connecté à d'autres nodes. Il peut s'agir d'un ordinateur, d'un serveur, d'un périphérique
réseau ou d'autres équipements informatiques.
Ansible : Logiciel d’automatisation pour la gestion de tâches comme l’installation de paquets et
logiciels, de mises-à-jour …
AWX : Interface web open-source pour Ansible, qui permet de gérer les playbooks Ansible, les
inventaires, les autorisations et les tâches en utilisant une interface graphique plutôt que la ligne de
commande. AWX permet également de programmer des jobs Ansible et de visualiser les résultats dans
l'interface.
Docker : Plateforme de conteneurisation qui permet d'emballer une application et toutes ses
dépendances dans un conteneur isolé.
Avec Docker, les développeurs peuvent créer des images conteneurisées de leurs applications, qui
peuvent ensuite être exécutées sur n'importe quel serveur ou environnement Docker.
Docker utilise un format standardisé pour les images de conteneur, qui comprend tous les fichiers et
paramètres nécessaires pour exécuter l'application dans un conteneur. Les images Docker peuvent être

Stephanie MISSIAMENOU 3
4
créées manuellement en écrivant un fichier de configuration Dockerfile ou en utilisant des outils de
construction automatisés tels que Docker Compose ou Kubernetes.
Doker Compose : Outil open source pour définir et exécuter des applications multi-conteneurs. Il
permet de spécifier les services qui composent une application à l'aide d'un fichier YAML (docker-
compose.yml) et de lancer et arrêter facilement l'ensemble de l'application avec une seule commande.
Docker Compose permet de simplifier le déploiement et la gestion d'applications multi-conteneurs en
fournissant une interface unifiée pour la spécification des services et la gestion des conteneurs.
NodeJS : Environnement d'exécution côté serveur qui permet d'exécuter du code JavaScript en dehors
d'un navigateur web.
NPM : Gestionnaire de packages pour l'environnement Node.js. Il est utilisé pour installer, partager et
gérer les packages ou modules (bibliothèques) JavaScript disponibles sur le registre NPM. Vous
pouvez facilement installer les packages dont vous avez besoin pour votre projet et les mettre à jour
lorsque de nouvelles versions sont disponibles.
Python : Langage de programmation dans lequel sont écris de nombreux logiciels. Il permet
l’interprétations des codes et instructions de ces logiciels afin d’assurer leur fonctionnement. Il existe
plusieurs versions de Python, la dernière étant la version 3.
PIP : Gestionnaire de packages standard pour Python. Il permet d'installer, de mettre à jour et de
désinstaller des packages Python depuis un dépôt de packages en ligne appelé PyPI (Python Package
Index), ainsi que depuis des fichiers locaux. Les utilisateurs peuvent installer des packages à l'aide de
la commande "pip install", en spécifiant le nom du package à installer.
Playbook : Fichier créé par les utilisateurs pour Ansible et mis dans une banque Ansible ou
personnalisé, ayant pour but la semi-automatisation d’une tâche. Ce fichier contiendra les commandes
liées à cette tâche ainsi que des informations sur sa fonction.

Stephanie MISSIAMENOU 4
5

Abréviations :

DMZ: DeMilitarized Zone


FTP: File Transfert Protocol
NAS: Network Attached Storage
NAS: Network Access Server
NFS: Network File System
RAM: Random Access Memory
SFTP: Secure File Transfert Protocol
UPS: Uninterruptible Power Supply
VLAN: Virtual Local Area Network
IP: Internet Protocol
LAMP: Linux, Apache, MariaDB, PHP
AWX: Ansible Web eXecutable
YAML: YAML Ain't Markup Language
PIP: Pip Installs Packages
NPM: Node Package Manager

Stephanie MISSIAMENOU 5
6
Introduction :

Afin de transmettre les informations rapidement sans altérer leur intégrité, les entreprises ont
développé un réseau informatique intérieur, couramment appelé intranet. Mais si ce réseau permet un
gain de temps non-négligeable dans la transmission des données, les risques de cela, notamment lors
du transit de ces dernières sont une préoccupation première. Des risques d’altération, en allant vers la
perte ou le vol et passant vers la panne. Avec l’accroissement exponentiel des appareils connectés,
l’augmentation de la demande, la digitalisation des sociétés, le réseau informatique a désormais une
place prépondérante et fais partie intégrante de la stratégie d’entreprise. Mais les attaques extérieures
dont on parle très souvent ne sont pas les seules menaces. Les attaques et mauvaises manipulations
internes sont elles aussi un problème pour les sociétés. Dans le but de les limiter et d’amoindrir les
dommages qu’elles pourraient provoquer, les entreprises mettent en place divers protocoles.
Supervisions des droits alloués au salariés, sauvegardes des fichiers, maintenances des serveurs …
sont des coûts monétaire, humains et temporel.
Notre infrastructure informatique est partagée sur 3 sites. A Grenoble et nouvellement Genève, se
situent les centres d’hébergement, pour l’accessibilité des informations par les clients. Les diverses
applications sont hébergées à Grenoble et leur gestion est à Paris.
Le système d’information des locaux de APP Solution, basés à Paris est un réseau découpé en
plusieurs VLAN pour les différents services. Ces VLAN(s) communiquent entre eux pour l’échange
de données.
Afin que le système soit le plus possible optimisé, nous avons un audit, annuel, documenté, mettant
en évidence les points forts et failles de l’entreprise, aussi bien son système d’information que la
sécurité des bureaux. Ce document dresse une liste de tâche basée sur le résultat de l’audit et ordonnée
par le critère d’urgence. Il oriente la stratégie de l’entreprise concernant la protection du système
d’information.

Stephanie MISSIAMENOU 6
7

Recontextualisation :

J’ai effectué pendant 2 ans, de 2018 à 2020 un BTS SIO option SLAM (Solution Logicielle
Application Métier) que j’ai obtenu. Après mon BTS, voulant voir d’autres aspects de l’informatique,
je me suis engagée dans un Bachelor Informatique Réseaux et Sécurité (IRS) en alternance dans
l’entreprise BUF Compagnie du 2 novembre 2020 au 31 juillet 2021.
J’ai continué le cursus en master 1 puis 2, en alternance. J’ai effectué cette dernière chez APP
Solution/Vaultinum pendant 2 ans. Le but était de m’occuper de l’infrastructure réseau des bureaux de
Paris. Mes missions ; aider les nouveaux salariés à s’intégrer, installer les postes, gérer les bugs et
problèmes, regarder ce qui était améliorable dans l’infrastructure.
APP SOLUTIONS regroupant l’entreprise du même nom, l’association Agence pour la Protection
des Programmes (APP) et la marque internationale Vaultinum. C’est l’organisme de référence en
matière de protection numérique pour les entreprises et institutions, mais aussi pour les particuliers en
France et à l’international. Elle intervient en tant que tiers séquestre, notamment dans le cadre de
contrats d’entiercement, pour rassurer clients et partenaires sur la pérennité de leurs investissements.
Elle assure la maintenance de ses applications et conseil les entreprises et particuliers sur leurs droits
numériques.
Cette expérience m’a apprise et a renforcé mes connaissances sur le réseau. Cela m’a apporté une
réelle expérience de travail, bien loin de stages effectués précédemment. Cela m’a permis de
conjuguer la théorie des cours avec la pratique lors des périodes d’entreprise.
Ce document présente mes projets réalisés dans le cadre de mon contrat d’alternance dans la
société APP Solution du 1er octobre 2021 au 30 Septembre 2023.

Stephanie MISSIAMENOU 7
8
Recontextualization:

My name is Stéphanie MISSIAMENOU, I am 23 years old and I am in my 5th year of Master's degree
in Computer Science, specializing in network systems and security. I will present my educational
background, then the subject of my thesis, and finally, my future plans.
I was born and raised in France.
When I was in middle school, during my 9th-grade year, I did a discovery internship at a company. I
spent a week at the "European Cardiology Center." It's an organization that catalogues all known
cardiac problems, conducts studies on them, and collects patient data. Every year, they organize a
conference in a different European city on heart diseases, treatments, ongoing studies, and developed
medications. I observed how the different departments functioned and how the employees worked in
the company. During this internship, I was briefly introduced to JavaScript and testing, which I
enjoyed.
I started my high school education in a Science program, Science (Bac S in french). After completing
it, I decided to pursue a BTS SIO (Service Informatique aux Organisations), which means BTEC
(Business and Technology Education Council) Computer Services for Organizations (CSO). As I was
not very familiar with this field, I opted for this program. In 2018, I enrolled in a BTS SIO program
with a focus on SLAM (Solution Logiciel et Application Métier). During this program, I learned about
the basics of algorithms, programming, and networking for one semester. I practiced web languages
such as HTML and CSS as well as programming languages like Python and PHP. I also learned about
database functionality, server operations, and client-server communication.
To obtain the BTS SIO degree, we had to complete 12 weeks of internships spread over two years. I
completed 7 weeks in the first year at the CNAV (Caisse National Assurance Retraite) in the
Development department. My mission was to program a PHP solution with my mentor for CNAV
bosses - a sort of directory that would allow them to communicate through messages, create and
manage groups, much like a regular messaging service.
In my second year, I completed an 8-week internship at the RATP (Régie autonome des Transports
Parisiens), which manages transportation, including the metro, bus, tramway, and RER in Paris. I
worked in the IT department of one of the company's sections, where I programmed a solution that
linked the storekeeper providing repair parts and the repairman.
In BTEC, we had to do legal monitoring. The monitoring focused on the rights of computer contract
agreements, especially those related to project implementation.
After obtaining my BTS SIO (Higher Technician Certificate in IT Services to Organizations), wanting
to continue in this field, I decided to change my specialization. I had studied networking for one
semester, and I enjoyed it. I found it unfortunate that I couldn't pursue both areas simultaneously.
Furthermore, it was during my internships that I thrived the most and learned the most. The pace
during internships was different from that of classes. Preferring this learning method, I chose the
apprenticeship program to continue my studies.
After completing my BTS SIO, I enrolled in a 3rd year of Computer Science degree specializing in
network and security, but this time, I chose to do it in alternating semesters. I worked at BUF
Compagnie, a visual effects company. I helped employees, especially new ones, create their profiles
and positions, explained the company's rules, updated the posts, machines, and servers, debugged,
installed new machines, and cameras. For my thesis in the third year, also done in the company, I
installed and tested a RADIUS server to improve the company's security, especially regarding
Ethernet port security.

Stephanie MISSIAMENOU 8
9
In graduate school, I worked on firewalls, Windows and Linux security, Iptables, AD, DNS, DHCP,
DRBD, database management, and user rights management. I also studied the ARP and IP protocols.
Continuing with my third year, I completed my Master's degrees in 2 years, also in alternating
semesters. In classes, I focused on Windows and Linux security, routing algorithms such as Dikjstra's
algorithm, OSPF protocol, project management (Scrum method, timelines, Gantt charts, project
management documents). I also learned about OSINT and different types of attacks.
We also need to do technological watch for the master. I chose the "Game of Life" as my topic
because it is a subject that is not well known but at the foundation of many fields of study. I created a
simulation to better understand its functioning.
I changed companies and now work at APPSOLUTION/Vaultinum, which audits other companies to
provide feedback on their security, asset management (both hardware and software), and performs
escrow services. In this field, escrow services involve a client depositing a third-party source code to
prove that they are the code's author and prevent plagiarism. They also develop software for
businesses to manage stored codes, and APPSOLUTION/Vaultinum manages codes submitted by
clients. The company also has an editorial line and is responsible for publishing Legalis, a journal that
features interviews with lawyers and specialists in digital law and news on digital and IT rights.
During these two years, I focused on my master's degree. A recurring issue was the installation of
machines. In APPSOLUTION/Vaultinum, there are not many network administrators, and there are
several sites. Therefore, administrators cannot always be present at all sites at the same time, making
management difficult. Additionally, due to understaffing, we are often overwhelmed, and some tasks
can be time-consuming. This is the case with machine installation. We need to deploy machines
frequently, either for user workstation installations, maintenance machine installations, or new clients.
However, these operations are done manually, which is time-consuming and energy-intensive.
Furthermore, during updates, we must go through each machine one by one. I looked into this problem
and thought that it would be better to have a solution that could manage machines in a pool since the
machines are often the same, and the operations are continuous and repetitive. If we could incorporate
software into the infrastructure that could manage them simultaneously, it would be a significant time,
energy, and security gain.
I started looking at software that could meet the company's needs. After an initial selection, I was left
with two software options: Terraform and Ansible. I chose to write my thesis on Ansible because I
found it to be the best fit for our needs. I am conducting tests with this software to find a way to
reduce machine management time, which is what I will present in my thesis.
For this purpose, I created one machine that I call the Node Manager. It is on this machine that I
installed Ansible. Then, I created two machines called 'receiver nodes.' These nodes are called receiver
nodes because they receive orders from the Node Manager. To do this, I generated an SSH key pair
and shared the public keys on the receiver nodes so that the machines could communicate. I then
installed AWX, which is the graphical extension of Ansible. I started conducting tests with it to learn
how to manipulate this software.
For my future, I would like to continue learning and gaining knowledge through training and
certifications. I am currently in the company I work for, and perhaps I will change in the future (time
will tell). I would like to continue in the field of IT because I find it vast and fascinating. Without
further ado, here is my thesis on machine management with Ansible.

Stephanie MISSIAMENOU 9
10

SOMMAIRE

Remerciements 2
Glossaire 3
Abréviations 5
Introduction 6
Recontextualisation 7
Recontextualization 8

Chapitre 1 -- Présentation de l’entreprise 14


Organigramme et services 15
Mes missions 17
L’infrastructure informatique 18
Rôles et services 20
Les dépôts de clients 20
La production de logiciel 21
Les logiciels utilisés 24
L’archivage 25
Sécurisation intranet 26
Sécurité des locaux 27
Objectifs 28
Contexte 28
Chapitre 2 – Cahier de charges informatiques 30
Introduction 30
Vu d’ensemble du projet 30
Parties prenantes 30
Objectifs et exigences globales du projet 30
Contexte et objectifs du projet 31
Informations sur le contexte du projet 31
Problèmes à résoudre 31
Objectifs spécifiques 31
Description du produit 32
Fonctionnalités 32
Contraintes d’assimilation 32
Exigence de performance 33
Exigences fonctionnelles 33
Fonctionnalités spécifiques 33

Stephanie MISSIAMENOU 10
11
Scénarii d’utilisation 33
Exigences non-fonctionnelles34
La performance34
La fiabilité 34
La sécurité 34
La convivialité 34
Contraintes de développement 35
Installation du produit 35
Les ressources 35
Prestations et services 35
Délais de tests et d’installation 36
Limites de budget 36

Planification et livrables 36
Etape de développement et délais 36
Jalons du projet 36
Communication et collaboration 36
Attentes en manière de communication 36
Les rapports de progression 37
Accompagnement 37
Formation et transfert de compétences 37
Chapitre 3 – Plan projet 38
Objectifs et périmètre du projet 38
Matrice des objectifs et WBS 39
Arbre des objectifs 39
WBS 40
Plan de gestion des ressources 40
Rôles et responsabilités40
Charge estimée pour chaque ressource 41
Diagramme de GANTT 41
Budget du projet 42
Plan de gestion de la communication 42
Canaux de communication 42
Décrire les instances de gouvernance du projet 42
Indicateurs de suivi du projet 43
Approche de développement et cycle de vie du projet 44
Conception et initiation 44
Planification 44
Exécution 45
Surveillance et contrôle 45

Stephanie MISSIAMENOU 11
12
Clôture 45
Plan de gestion de la qualité 45
Les objectifs de qualité du projet 46
Les rôles et responsabilités en matière de qualité 46
Les outils de qualité qui seront utilisés pour le projet 47
Les activités de gestion et de maîtrise de la qualité planifiées pour le projet 47
Livrables et processus faisant l’objet d’une revue de la qualité 48
Plan de gestion des risques 49
Description des risques 51
Plan de gestion des changements 52
Maîtrise des changements du projet 52
Plan de gestion de la configuration 52
Chapitre 4 – Analyse des solutions retenues installation et tests de Ansible 53

Chapitre 4 a– Analyse des solutions retenues 53

Pourquoi installer une solution de gestion des machines ? 53


Terraform 54
Ansibles 56
Terraform et Ansible 57
Analyse SWOT de Ansible 58
Chapitre 4 b–Installation et tests de Ansible 60

Etapes 60
Déroulé 60
Conclusion 60
Bibliographie 70
Figures 71
Figure 1 71
Figure 2 71
Figure 3 72
Figure 4 72
Figure 5 73
Figure 6 73
Figure 7 73
Figure 8 74
Figure 9 74
Figure 10 74
Figure 11 75
Figure 12 75
Figure 13 75

Stephanie MISSIAMENOU 12
13
Figure 14 75
Figure 15 76
Figure 16 76
Figure 17 76
Figure 18 77
Figure 19 77
Figure 20 77
Figure 21 78
Figure 22 78
Figure 23 78
Figure 24 78
Figure 25 78
Figure 26 78
Figure 27 78
Figure 28 78
Figure 29 79
Figure 30 79
Figure 31 79
Figure 32 79
Figure 33 80
Figure 34 80
Figure 35 80
Figure 36 80
Figure 37 80
Figure 38 80
Figure 39 80
Figure 40 81
Figure 41 81

Stephanie MISSIAMENOU 13
14
L’ENTREPRISE :

APP Solution/Vaultinum, créée en 1976 est le regroupement d’une entreprise APP Solution
(anciennement CELOG), d’une association APP (Agence pour la Protection des Programmes) et d’une
marque internationale, Vaultinum. Elle est une société par actions simplifiée. Elle est spécialisée dans
le secteur d'activité des autres activités informatiques. Son effectif est de 39 salariés. Philippe
THOMAS, est président de la société APP SOLUTIONS, agissant et ayant les pouvoirs nécessaires en
tant que président. Il est apte à entamer des poursuites civiles voire pénales.
Elle possède 3 entités :

APP APP SOLUTION VAULTINUM


Une association dans laquelle Anciennement CELOG Equivalent de l’APP, mais
les gens déposent leurs codes. S’occupe du conseil et des fourni des documents sur le
Production de logiciels audits téléphone (plus beaucoup
Production de logiciels utilisé de nos jours).
A terme, APP et Vaultinum doivent fusionner pour qu’il ne reste que Vaultinum.
Elle possède des locaux à Paris, où se situent les bureaux et les salariés de la société. Ses centres
d’hébergement de données sont principalement à Grenoble et Genève, où un nouveau centre vient
d’ouvrir.

APP Solution/Vaultinum
Siège social :25 rue de la Plaine 75020 Paris Forme juridique : société par actions
simplifiée
Nationalité : Française
Chiffre d’affaires :
Effectif : 39 personnes
Siret : 51913617000031

Bureaux de Paris

Centre d’hébergement de Genève

Centre d’hébergement de Grenoble

Pour auditer ses comptes annuels, APPSOLUTION/VAULTINUM a mandaté 2 commissaires aux


comptes assistés par un commissaire aux comptes suppléant. Ces mandataires CAC sont inscrits sur la
liste établie par le Haut Conseil du Commissariat aux Comptes (H3C) et sont donc habilités à certifier
la régularité et la sincérité des bilans et compte de résultats déposés par

Stephanie MISSIAMENOU 14
15
APPSOLUTION/VAULTINUM: M. Marc Genez comme mandataire titulaire et
COMPTABILITE FINANCE GESTION AUDIT en mandataire suppléant.
APP Solution est une entreprise composée, spécialisée dans le dépôt, l’entiercement, le constat, le
conseil, le déploiement et la mise-à-jour de leurs logiciels. Elle regroupe en un seul lieu tous les corps
de métiers nécessaires au bon fonctionnement de l’entreprise ainsi qu’à la bonne conduite des projets
menés pour satisfaire les clients.La stratégie de l’entreprise repose sur une multiplication des services.
Elle possède plusieurs branches au sein de cette société. Vaultinum fournit des documents sur le
téléphone. APP est une association de la société ayant pour but le dépôt de code source par une tierce
partie. APP Solution (anciennement CELOG) est la branche s’occupant de fournir des conseils aux
entreprises clientes sur la gestion des actifs de l’entreprise. Les locaux de Grenoble et bientôt ceux de
Genève servent de centre d’hébergement de données clientes. Ils disposent des services afin que les
clients puissent se connecter directement.
APPSOLUTION/VAULTINUM met en place une politique de sécurité stricte afin de ne porter
atteinte ni à l’entreprise ni au client. Les données entreposées dans les dépôts de l’APP sont des
données confidentielles. Un incident comme une intrusion divulguant les informations secrètes
pourrait entraîner des répercussions non pas seulement sur la société mais sur leurs clients
La société a comme partenaires des entreprises comme Mars-IP, CNCPI ou Regimbeau qui sont des
entreprises conseillères dans la propriété intellectuelle numérique. Elle a aussi comme partenaire des
cabinets d’avocats, SimonAvocat, 4Dracine et FInantis Value pour la valorisation, la gestion et
l’optimisation d’actifs matériels et immatériels. Qualycloud pour l’hébergement Coud. Ainsi, cela lui
permet de conseiller au mieux les clients.
J’ai évolué et fait mon alternance sur le site de APPSOLUTION/VAULTINUM paris.
L’organigramme de l’entreprise est très simple. Phillipe Thomas est le Président de l’entreprise. Il est
le chef de la branche et du service Sales. La société compte 39 salariés. Ce nombre tend à s’accroitre
dans le temps, ainsi l’entreprise s’ouvre à l’international. Certaines tâches nécessitant parfois la venue
de personnes extérieures à l’entreprise, il arrive que des prestataires soient présents dans les locaux.

Organigramme :

Philippe
Thomas (CEO)

Maryline Philippe Guillaume


Marine Yborra Caroline Gillard Jean Albert Virginie Mémin Florence Pradal
Barbereau (Offi Thomas Acard
ce Manager) (CCO) (CTO)
(CMO) (CFO) (CLO/CSO) (CCO) (CHRO)

Virginie IT Jennifer Bruna Sellin Garance Gonnet


Stasiaczyk
Vaultinum APP
Infrastructures Horodatage Nguyen
Haby Sall
Trevelin Prince

Pierre-Michel Nicolas Olivier Clef Salwa Thomas


Josh Nunn Kristin Avon
Lefebvre Clément Rémi Blancher Fakhreddine Cavacece

Enrique Ioana Michaël Franck Marjorie


O’Connor Edwin Liénard Anthony Jugé Marina Chanian
Margineanu Coquereau

Bouchra Louis Russo Benjamin Stéphanie Aymeric Sylvie


Chekalil Missiamenou Camille Lehur
Pelosi Prevot AVELINE Rozenfeld

Steeves
Amaury Billet Jérôme Guiraud DeLoustal

Loïc Fontaine

Alexis Ribot

Engineering Team organization

Stephanie MISSIAMENOU 15
16

Guillaume Acard

Vaultinum Vaultinum
App IS/Cross Timestamping
KYS Deposit/Escrow

Pierre-Michel Ioana Margineanu


Jérôme Guiraud (PO) Olivier Clef (RSSI) Rémi Blancher
Lefebvre (Tech lead) (Tech lead)

Benjamin Prevot Michaël Franck


Louis Russo Pelosi Amaury Billet Anthony Jugé
(Tech lead) (IS/Network)

Maxime Lechevallier Alexis Ribot Edwin Liénard Steeves de Loustal Aymeric AVELINE

Stéphanie
Loïc Fontaine Nicolas Clément
Missiamenou

Services
Maryline : Est la représentante de APPSOLUTION/VAULTINUM. Elle s’occupe des contrats entre
l’entreprise et d’autres entreprises fournissant les services de base au fonctionnement (comme le FAI,
ALARME …). Elle s’occupe de l’interne-externe.
RH et Comptabilité : S’occupe de toute la gestion des salariés comme les embauches, traitement des
salaires et du budget de l’entreprise.
La R&D, regroupant tout le service informatique, c’est-à-dire le service de développement et
l’Administration du SI de la société. A sa tête est Guillaume Acard.
Equipe IT : Intègre les nouveaux employés au sein de l’entreprise. Supporte des utilisateurs lorsqu’ils
ont des problèmes, maintiennent le réseau aussi bien physique que virtuel.
Développeurs : Elle recueille les besoins des salariés de l’entreprise. Programme des solutions
logicielles qui seront utilisées par les clients. S’occupe du site de l’APPSolution/Vaultinum, son
frontend comme son back end.
Le Dépôt : Reçoit les dépôts de code afin d’attester lors d’un litige l’authenticité d’un code de la part
d’une partie tierce ou de constater un plagia dans le cas échéant. Délivre le certificat de dépôt.
Le Juridique : Rédige les contrats d’entiercement, les contrats entre l’APP, les clients, les éditeurs de
logiciels, les clauses d’accès, l’accueil de nouveaux membres et leur expliquer les fonctionnements et
leurs droits. Gère les noms de domaines et les noms de marques.
Le Marketing : S’occupe de la partie utilisateur, de l’aspect visuel du site web. Organise les
évènements lors de salons.

Stephanie MISSIAMENOU 16
17
Les Sales : Font la promotion, parfois avec le service Marketing de la société dans des salons sur le
numérique. Démarche des clients afin de leur vendre un audit.
Sylvie : Est la rédactrice en chef de Legalis. Elle interviewe des avocats, des institutions dans le
domaine du numérique et rédige le journal mensuel expertise.

Stephanie MISSIAMENOU 17
18
Mes missions :

J’ai postulé dans le cadre de l’alternance pour l’entreprise. J’ai été prise suite au départ d’un
salarié. Un audit de sécurité a lieu tous les ans pour s’assurer de la sécurité des infrastructures
informatiques et d’entreprise.
Mon rôle au sein de l’entreprise est celui des IT. Intégration des nouveaux arrivants, création de
leurs comptes ainsi que l’attribution de leurs droits, explication de la politique de sécurité de la société.
Je devais résoudre les problèmes des utilisateurs comme des bugs mineurs ou bien changer une souris,
un clavier, un écran.
Mon statut d’administratrice système m’amène à veiller à la maintenance de l’infrastructure
matérielle et logicielle, les commutateurs, routeurs, pares-feux, proxy, DMZ, VM, effectuer une mise-
à-jour serveur, système. Résoudre les dysfonctionnements, les pannes et incidents. Les bureaux de
Paris ont un petit parc informatique, le plus grand étant à Grenoble. L’accessibilité aux services est sur
VPN permettant la connexion à l’ensemble de l’infrastructure informatique.

Le projet de restructuration de l’infrastructure informatique


Le projet majeur du système d’information de la compagnie est la maintenance et la mise-à-niveau
du système informatique dans le but de répondre au maximum aux normes de sureté de la norme ISO
27001. Ce projet n’a débuté qu’en novembre 2021 et se poursuivra sur plusieurs années. Lors du
déménagement, en novembre 2021, le routeur et les commutateurs des bureaux de Paris ont été
changés par des équipements neufs. De plus, de nouveaux locaux un datacenter va être mis en service
à Genève. Il servira pour l’international.

La suite du projet est de régler les éventuels bugs et failles qui pourraient s’y trouver ainsi que
l’optimisation du système d’information. Le but est d’optimiser le système d’information.

Stephanie MISSIAMENOU 18
19
La difficulté de l’exercice réside dans la gestion du système d’information. L’entreprise s’agrandi Les
besoins sont différents dû à cette expansion. Il faut donc prioriser les tâches à mener.

Présentation de l’infrastructure :

Stephanie MISSIAMENOU 19
20

Stephanie MISSIAMENOU 20
21

Poste de travail
Ce sont des ordinateurs portables, de 16 Go de RAM et 480 Go de ROM. Ils sont tous sous Windows
11. Ils sont utilisés par tous les services.

Réseau :
Paris possède un réseau avec une connexion de 10 Gb/s et a une connexion de 1 Gb/s pour
l’administration afin d’assurer convenablement les transferts et la communication .

TIC (Technologies de l’Information et de la Communication) :


Les TIC de l’entreprise communiquent entre eux, de Paris vers Grenoble et vice versa. Leur but est
d’assurer la communication entre les différents partis. Il y a 4 types de TIC :
- Les utilisations internes
 Dossiers réseau : pour qu’un utilisateur retrouve ses informations en
s’authentifiant même s’il est sur une autre machine que la sienne.
 L’intranet : Où se situent des services comme le mail.
 Authentification centralisée : l’AD, pour accéder aux services.
- Les utilisations externes : internet, Email.
- L’infrastructure : DNS, DHCP, NTP, LDAP
- Les admins :
Toutes ces infrastructures communiquent par fibre optique. Le datacenter ainsi que la plupart des
fermes et les services de maintenance sont situés à Grenoble. Il existe un datacenter à Clichy.

Rôle des services :


Les rôles de ces services sont multiples et participent de la première à la dernière étape d’un projet.
Ils sont la clé du fonctionnement de l’entreprise :
- Système de gestion du matériel : GLPI répertorie les périphériques, ainsi que EMS
pour les périphériques réseaux comme les ordinateurs et les adaptateurs. Il signale et alertes
s’il y a des anomalies. Ces dernières sont mises-à-jour et sauvegardées quotidiennement.
- Système de transport : FTP, le serveur samba où les ressources de chacun peuvent
être stockées
- Système de sauvegarde : les sauvegardes, l’archivage, la restauration et la gestion de
panne y sont gérés.

Les dépôts des clients :

Stephanie MISSIAMENOU 21
22

1) Le client dépose son archive sur le site Web (1).


Une demande de scellement est effectuée auprès de l’API (2).
2) L’API récupère l’archive, contrôle l’empreintes, la taille, chiffre les
données et applique un horodatage. L’API dépose l’archive sur le serveur
Front d’archivage (3) et lui demande l’archivage.
3) Le serveur Front d’archivage ne fait rien, il ne fait que stocker la demande.
4) Le serveur de traitement de l’archivage récupère l’archive
sur le Front d’archivage (3). Le serveur de traitement de
l’archivage contrôle l’empreintes et la taille.
Le serveur de traitement de l’archivage stocke l’archive sur la baie de stockage.
Le serveur de traitement de l’archivage contrôle l’empreintes et la taille sur la baie de stockage.
5) Le serveur de traitement de l’archivage effectue la réplication de l’archive sur les
différents nœuds d’archivage, via une liaison VPN.

La production de logiciels :
La société s’occupe elle-même de coder les applications qu’elle met à disposition des clients. Ces
applications sont celles qui sont utilisées par les clients pour faire leurs dépôts, vérifier leur code et le
contenu de leur dépôt.
Sur l’application Vaultinum-Showcase,
pour pouvoir bénéficier des services de
l’entreprise, il faut s’inscrire en rentrant
son nom et son prénom. Le reste est
optionnel.

Stephanie MISSIAMENOU 22
23
Il faut renseigner le nom de l’entreprise, le secteur d’activité, le nombre approximatif de salariés que
la société possède, son lieu et le numéro d’enregistrement de l’entreprise.
Après avoir fait cela, on accède aux services proposés.

Il y’a la possibilité de faire un dépôt, un contrat d’entiercement, une demande d’audit ou un audit à
distance ainsi qu’une analyse de leur code fournissant un compte-rendu concernant l’état de celui-ci.

Une autre application sert en interne. Elle indique, sous forme de Schéma, les liens entre chaque
application manière dont le tout fonctionne.

Ici sont les schéma des jonctions des différentes


applications et des différents services de l’APP.
Les services constituent le fonctionnement de

Stephanie MISSIAMENOU 23
24
l’APP. On y voit comment fonctionne le Cloud, les déploiements, les backend des différentes
applications mise à disposition des clients

. Ces schémas montrent les relations entre les applications et les clients. Elle montre les relations entre
les différents moyens applicatifs comme les sites, les serveurs, les bases de données, les API…

Ce schéma est celui de l’entité


Vaultinum. On y voit le backend des
applications eet le fonctionnement de
l’application KYS.

L’entreprise met au point un service certifié d’horodatage. Cet horodatage, une fois finie, devra passer
une certification EIDAS, ce qui fera de cet horodatage, un mécanisme juridiquement fiable dans le cas
d’une affaire.

Les différents logiciels utilisés :

Logiciels Si package Type de Services Utilisation


utilisés service
(applications,
services webs
…)
Chrome Navigateur Navigation internet
EDGE Navigateur Navigation internet
Opéra Navigateur Navigation internet
firefox Navigateur Navigation internet
Git R&D Production, déploiement de code
PDF24 Creator Cré
Adobe Acrobat Création et gestion de PDF
adobe DC Changement de format de fichier

Stephanie MISSIAMENOU 24
25
de terxte
adobe pro reader Lecteur PDF
Splashtop on-prem Gestion de postes, connexion à
distance sur un poste
streamer R&D Pour les administrateurs
sysadmin
Forticlient VPN
office365 outlook Pack Office
powerpoint
teams
excel
word
Composer R&D Gestionnaire de dépendances php
Apache2 R&D Serveur Web Linux
Jetbrain R&D IDE
IntelliJ R&D
XTP7 R&D Déploiement de logiciels et
commandes à distance pour
Windows
Gestion APP Dépôt Gestion de comptabilité, de
Sage 100 factures
Gestion
commerciale
Blocnote Bloc Note
Gestcom Comptabilité
Zoom Plateforme de travail et de
réunion
skype Plateforme de travail et de
réunion
google meet en ligne Plateforme de travail et de
réunion
hubspot en ligne Dépôt, Sales Logiciel de marketing
redmine en ligne ticketing
redmine SMSI en ligne ticketing
jira en ligne Gestion de projet
ems en ligne R&D Gestion du parc informatique
sysadmin
bitwarden en ligne Gestionnaire de mots de passe
DELL en ligne R&D Service client pour les PC
portables
DELL DELL en ligne Service client pour les PC
support portables
GLPI en ligne R&D Gestion de matériel, de stock
sysadmin
Navicat R&D Administration de base de
données
Gestion Dépôt Gestion comptabilité
Ponthieu
Spotify en ligne et Musique
application
Youtube en ligne Réseau social

Stephanie MISSIAMENOU 25
26
OpenOffice Rédaction de texte
7-zip (ou Logiciel de dézippe d’un dossier
WinZip)
vmware R&D Virtualisation
FortiToken Application mobile pour double
Mobile authentification
Google Application mobile pour double
Authentication authentification
CDBurnerXP Dépôt s'ils ont un lecteur/graveur
CD/DVD pour les prestations de
type "constat" comme les DU ou
les DV
Notepad++ Pour les prestations de type
"constat" comme les DU ou les
DV
WinSCP Dépôt Pour les prestations de type
"constat" comme les DV
numériques

L’archivage :

Pour l'archivage numérique, nous avons une baie de stockage dédiée à l'archivage des données. Ce
serveur est cloisonné dans un VLAN spécifique. La redondance du stockage des données est assurée
par la mise en place d’un certain nombre de nœud (NODE). Chaque nœud du réseau d’archivage est
identifié par une valeur numérique (integer) et peut communiquer au choix avec l’ensemble des autres
nœuds du réseau ou certains d’entre eux uniquement (Protocole SFTP et API REST) afin de se
synchroniser, de diffuser une archive ou lancer différentes demandes de tâches distantes :

Sécurisation intranet :

1 Les mots de passe


Ils sont créés par nous-même mais vérifiés avec l’AD qui vérifie, lors de la demande de
changement de mot de passe qu’ils respectent la nomenclature en vigueur, puis changés régulièrement
avec une procédure simple pour éviter que les utilisateurs aient du mal et prennent des mots de passe
simples. Ils sont composés de 16 caractères et changés tous les 6 mois.
Les mots de passes du VPN étaient générés avec une authentification double facteur à l’aide d’une
token hard, un minuscule boitier relié au TOTP qui donnait un code de 6 chiffres qu’on rentrait juste à
la suite d’un mot de passe attribué à l’arrivée du salarié par le service SI. Depuis peu, le mot de passe

Stephanie MISSIAMENOU 26
27
demandé est celui de lutilisateur AD avec un code de 6 chiffres TOTP depuis non plus un token hard
mais une application mobile dite « token soft ».

Protection des fichiers


Les utilisateurs sont classés par groupe, définissant les droits, leur permettant d’accéder à leur
ressource uniquement et à celles publiques sur le partage. Ils peuvent partager des documents sans leur
laisser un total libre accès. Les documents utilisés par les employés de la société sont :
- Soit stockés sur les serveurs selon leur nature.
o Les documents publics concernant le fonctionnement de l’entreprise, ses règles de
bienséance sont accessibles sur le Teams de l’entreprise.
o Les documents de prêts de matériel, sur le SMSI de l’entreprise.
o Les documents interne au fonctionnement de chaque service ainsi que les ressources
utiles sont sur le Samba. La documentation concernant les administrateurs, procédure
d’installation par exemple y est aussi.
o La documentation concernant les développeurs est sur Confluence
- Soit sur leur postes personnels

Sur les postes, le BitLocker est activé. Il est défini au préalable lors de l’installation du poste et est
désactivé, puis changé lorsque le poste est rendu (en cas donc de départ ou de changement
d’ordinateur).

Interconnectivité des sites


Tous les sites sont interconnectés entre eux par VPN.
 PARIS <=> GRENOBLE : IPSEC Forticlient VPN
 (BIENTOT) PARIS <=> GENEVE : IPSEC Forticlient VPN
 (BIENTOT) GRENOBLE <=> GENEVE : IPSEC Forticlient VPN

Plan de récupération en cas de catastrophe

Dans le cadre de l'ISO, nous avons un PRA et un PCA (Plan de Reprise d'Activité et Plan de
Continuité d'Activité). Il y a une redondance des sites qui permet de reprendre l'activité en cas de
problème (sur le site principal). Nous avons une cellule de crise qui se met en place pour gérer une
catastrophe majeure. Pour éviter les catastrophes, on fait de la veille sécurité et on sécurise notre
infrastructure avec du VPN, règles de pare-feu, authentification 2FA, etc...

S’il venait à avoir un incident qui viendrait à interrompre l’activité de l’entreprise, le réseau de
l’entreprise pourrait redémarrer en mode dégradé.

Sécurité des locaux


Sécurité des locaux
Les locaux sont situés sur 2 étages d’un bâtiment. L’accès aux locaux se fait avec un badge pour
chaque employé. Il existe un système d’alarme au rez-de-chaussée. L’ascenseur possède un code

Stephanie MISSIAMENOU 27
28
d’activation et de désactivation afin d’empêcher un accès à nos étages. Arrivé sur notre palier, une 2 nde
alarme est mise en route grâce à un code. Si un souci se présente comme une intrusion, un feu … la
sécurité avertie directement l’entreprise de sécurité.
Les badges contrôlant l’accessibilité à l’entreprise sont réglés pour qu’un employé ne puisse pas
aller dans une zone qui lui est interdite. Certaines pièces sont verrouillées avec les badges que seules
les personnes habilitées à rentrer possèdent.

Sécurité anti-feu
Les locaux de Paris sont soumis à l’article R232 12014 de la loi sur le travail.
Les plaques montrant le plan de chaque étage, les sorties de secours, la position des extincteurs et
toute les informations essentielles en cas d’urgences y sont mentionnées. Les notices et consignes
d’évacuations, qui est apte à les diriger, à utiliser les équipements, les mesures spécifiques aux
handicapés. Les numéros des secours est écrit en gras sur les plaques.
Un escalier de secours est disponible au 6 ème étage, à emprunter en cas d’incendie ou de début de
feu. Le 7ème étage est accessible aux pompiers via une voie pompier située sur le toit de l’immeuble, au
7ème donc.

Stephanie MISSIAMENOU 28
29
OBJECTIFS :

Contexte :
APP Solution/Vaultinum est une société dans le consulting d’actifs matériels et immatériel, le
droit informatique, la production et la maintenance de logiciels et le dépôt de code source. Ses
tâches plus précisément entre autres :

Extrait du document Celog_parts_statusv2.4

La société a pour but de devenir une référence internationale en matière de droit informatique. Ces
clients sont autant de grandes entreprises, que de petites, que des particuliers. Pour être garante de
fiabilité auprès de ses clients, elle reçoit régulièrement et passe des audits de certifications, dont
l’ISO27001.
Dans cette lancée, l’équipe s’est agrandie et s’agrandie encore. Pour répondre à ce besoin, Nous avons
déménagé de la rue du Paradis, dans le 10è pour des locaux plus grands dans le 20è. Dans la suite du
déménagement, les appareils réseaux des locaux de Paris (ordinateurs, switches, routeurs …) ont été
remplacés par de plus récents, le logiciel GLPI avait été installé afin de répertorier les équipements et
papiers en relation avec ses équipements (Ordinateurs, casques, souris, adaptateurs, factures…). On l’a
changé depuis pour mettre la gestion d’actif sur le logiciel Confluence.

Il fallait trouver de la place pour chaque arrivant, même si nous étions aidés par le télétravail. Comme
nous recrutions beaucoup, nous achetions beaucoup de matériel : nous avons changé et amélioré le
parc informatique de l’infrastructure de Paris, acheté beaucoup d’ordinateurs portables et d’autres
périphériques. Pour ce faire, il fallait pour chaque gérer chaque machine à la main. Or l’entreprise

Stephanie MISSIAMENOU 29
30
grandissait il nous ne pourrions plus, nous permettre d’installer les machines, de les gérer,
de faire les mises-à-jour une par une. C’est chronophage, énergivore. De plus, le risque
lors d’une manipulation est de faire une erreur qui perturberait l’uniformité et
perturberait la sécurité. Il nous faut donc une solution qui nous permet de gérer les
machines, leurs installations, leurs mises-à-jour. Comment incorporer une solution
visant à l’automatisation des tâches ?
Dans un souci d’expansion de la société, la problématique est donc-là et nous essayons de la résoudre.
Pour se faire, nous tentons l’installation de Ansible sur une machine virtuelle appelée node Manager.
Cette machine, avec 2 autres, appelées nodes receveurs nous servent de machine de tests pour l’étude
de Ansible. Voyons le cahier des charges pour comprendre pourquoi et comment ce logiciel
spécifiquement a été sélectionné ainsi qu’une comparaison avec Terraform,

Stephanie MISSIAMENOU 30
31

Introduction

Vue d’ensemble du projet :


Le but de ce projet est de mettre en place une solution Ansible, un logiciel de gestion de mises-à-jour.
Ainsi, les machines sont installées manuellement, ce qui est chronophage et énergivore. Pour qu’il soit
permit de le faire, il faut qu’il soit identifié. Le but de ce document est d’avoir une vue permettant de
mener à bien le projet. De présenter la solution et son insertion dans le Système d’information de
l’entreprise. D’identifier les avantages et inconvénients, les coûts d’investissement et d’entretiens de la
solution. La planification du projet ainsi que les étapes jusqu’au déploiement final de la solution.
D’identifier les parties prenantes ainsi que les changements qui s’appliqueront à eux et son
susceptibles de changer leurs habitudes. Les spécifications techniques de la solution comme capacité à
répondre aux besoins de l’entreprise, pour sa mise en place. Après étude des solutions, nous avons
donc optés pour l’installation de serveur Ansible, correspondant le mieux à l’architecture du SI de
l’entreprise.

Parties prenantes :

Les parties prenantes de ce projet sont :

- L’équipe d’administration du service informatique (IT) de l’entreprise ayant pour objectif de


mener à bien le projet, de sécuriser le SI et trouver une solution pour répondre à la
problématique et au besoin de l’entreprise.
- Les salariés de l’entreprise, ainsi que les futurs salariés qui seront impactés de façon mineure
par le projet et la mise en place de la solution si tôt qu’elle aura été testée et installée.

Objectifs et exigences globales du projet :

Les objectifs du déploiement d’Ansible sont le déploiement plus facile et la gestion des mises-à-jour
des machines. Les enjeux sont d’économiser du temps. Le système doit être autonome pour que
l’administrateur puisse s’atteler à d’autres tâches. Une augmentation de la sécurité du SI. Si les
machines sont déployées et gérer automatiquement, le risque d’erreur lié à une manipulation humaine
est plus bas, ce qui contribue à l’augmentation de la sécurité du SI. Ainsi, les machines virtuelles ont
pour la plupart une configuration similaire, l’installation de Ansible poussera l’harmonisation des
machines à son maximum.
Les exigences sont une bonne assimilation de la solution par le réseau existant de l’entreprise, c’est-à-
dire le matériel mais aussi le logiciel. Elle doit aussi être assez facilement manipulable par le service
d’administration informatique, surtout dans le cadre d’une hypothétique d’une transmission de
compétence d’un salarié du service SI vers un salarié du même service. La solution ne doit en aucun
cas être un poids financier pour l’entreprise. Ses coûts de déploiement et d’entretiens de doivent pas
constituer en frein pour le service SI, ni pour le développement de la société. Le but de cette solution

Stephanie MISSIAMENOU 31
32
étant dans le long terme et indirectement, un avantage pour la société à devenir pérenne Enfin, elle
doit pouvoir être assez flexible dans le cas d’une individualisation ou de l’ajour de composant logiciel
sur une machine pour pouvoir l’installer sans l’installer sur les autres machines de la même
configuration ainsi que de pouvoir installer ces machines sans qu’aucune des tâches n’affecte l’autre.

Contexte et objectif du projet

Informations sur le contexte du projet :


APPSOLUTION/Vaultinum est une société spécialisée dans l’audit, le conseil dans la gestion
d’actifs matériel et immatériel, la production de logiciel, la publication du journal Legalis, sur le droit
informatique et numérique. Elle compte 40 salariés. La société possède 3 locaux. Des bureaux à Paris
où travaillent les salariés, un datacenter à Grenoble, le principal où sont les baies de stockage abritant
les serveurs et les machines clientes. Un 3 ème site est en train de voir le jour à Genève. Le site de
Grenoble doit, à l’avenir accueillir l’hébergement de serveurs. Ce datacenter servira à héberger les
services des clients dans l’Europe tandis que celui de Grenoble servira uniquement pour les clients
Français. A terme, l’entreprise veut devenir une marque de référence mondiale dans le droit d’auteur,
surtout en matière d’entiercement.
La gestion des machines virtuelles de l’entreprise APPSOLUTION/Vaultinum montre que tout est
fait manuellement. Ce qui est chronophage et énergivore. En effet, chaque installation de machine,
chaque configuration, chaque mise-à-jour, mise-à-niveau doit être faite par un administrateur. Il y a
des dizaines de machines, on doit passer sur chacune l’une après l’autre. Ce qui prend du temps et
augmente le risque d’erreur lié aux manipulations. Ça augmente les failles de sécurité.
Il faut donc installer et déployer une solution qui administre les machines virtuelles de l’entreprise.
Nous avons fait le choix d’installer un serveur Ansible, qui réunit tous les critères et est capable de
répondre aux exigences posées, en temps, coûts, et technicités.

Problèmes à résoudre :
La maintenance des machines virtuelles de l’entreprise permettant d’administrer les services sur
lesquels travaillent les salariés, où sont entreposés les codes sources que les clients ont déposés, sont
faite manuellement. Ce qui est une perte de temps et d’énergie, ainsi qu’un critère de sécurité. En
effet, lorsque tout est fait manuellement, ça augmente le risque de mauvaise manipulation humaine. Le
but d’Ansible est d’enlever tous ces problèmes et ainsi baisser le risque d’erreur humaine.

Objectifs spécifiques :
L’objectif du déploiement d’Ansible est d’automatiser la gestion et la configuration des machines
virtuelles de la société. Pour se faire, le logiciel doit être installé sur une machine virtuelle Linux ;
Ubuntu, Debian, ou tout autre distribution de Linux. On doit pouvoir installer et configurer des
playbooks. On doit aussi gérer les listes des ordinateurs, les groupes d’ordinateurs. Elle doit être
capable d’installer une mise-à-jour, un logiciel ou une configuration spécifiquement demandé sur un
ordinateur ou un pool d’ordinateurs donné.

Stephanie MISSIAMENOU 32
33
Description du produit

Fonctionnalités :
Pour le matériel :
- 1 serveur de test
- 3 machines virtuelles dont une :
 1 machines virtuelle manager node sur laquelle on installe
Ansible
 2 machines virtuelles nodes sur lesquelles on teste les
configurations

Pour le logiciel :
Automatisation des tâches informatiques
Ansible automatise les tâches informatiques telles que la mise à jour de logiciels, la configuration du
système et la gestion des utilisateurs.

Gestion à distance
Ansible peut gérer les configurations de plusieurs systèmes informatiques à distance, ce qui permet de
gagner du temps et de l'efficacité.

Modèles de Playbook
Ansible utilise des modèles de Playbook pour décrire les tâches à exécuter sur les systèmes
informatiques. Les Playbooks sont faciles à écrire et à maintenir, ce qui les rend simples à utiliser pour
les administrateurs système.

Intégration avec d'autres outils


Ansible peut être intégré à d'autres outils tels que Puppet, Chef, et SaltStack, ce qui permet une
gestion centralisée des configurations.

Plateforme multi-OS
Ansible peut gérer des systèmes informatiques sous diverses plateformes telles que Linux, Unix, et
Windows.

Modules pré-construits
Ansible propose de nombreux modules préconstruits qui peuvent être utilisés pour effectuer des tâches
spécifiques, tels que la gestion des utilisateurs, la mise en place de la sécurité et la gestion de la
mémoire.

Contraintes d’assimilation :
Ansible est une solution logicielle à installer. Elle ne possède donc pas de contraintes de
développement et de conception. Elle possède néanmoins des contraintes d’assimilations c’est-à-dire
une étude de compatibilité avec l’existant. Il faut étudier et essayer de prédire son comportement dans

Stephanie MISSIAMENOU 33
34
l’infrastructure. De plus, il est important de vérifier et donc de mettre en place une surveillance de la
technologie afin de prévoir les éventuels bugs et incompatibilités avec d’autre éléments matériels et
logiciels. Il faut aussi prévoir les mises-à-niveaux qui pourraient empêcher Ansible de fonctionner
avec certains de ses modules dont AWX. Il faut aussi regarder les serveurs matériels dans le but de
trouver un serveur en capacité logiciel ; version du serveur, mais surtout des dépendances importantes
afin de vérifier la compatibilité entre Ansible. Ces dépendances, pour certaines, sont déjà présentes
dans l’infrastructure de l’entreprise vont déterminer la bonne assimilation d’Ansible. Le serveur sera
mis avec l’existant de l’infrastructure, les autres machines de l’entreprise. Il faut donc mettre en place
un laboratoire de tests qui aidera à prédire les comportements et possibles failles, ajustements à faire,
surtout vis-à-vis des dépendances citées plus haut, mais aussi inconvénients, limites mais aussi les
« imprévus » de configurations Ansible en lien avec les nodes communicants dans un SI.

Exigence de performances :
Ansible est un service qui ne doit pas nécessairement être en état de fonctionnement 24h sur 24h. Il
doit néanmoins être d’une disponibilité sans faille. Il ne doit pas être redondant. Cependant, une image
de la machine virtuelle doit être faite au minimum 2 fois par an afin de garantir un backup quant aux
règles des différentes machines qui pourraient être créées, modifiées, supprimées afin d’empêcher la
perte de configuration de données. Il doit évidemment remplir la(es) tâche(s) qui lui incombe(nt), c’est
ce pourquoi il a été installé. Il doit permettre aux administrateurs d’être plus investis à d’autres tâches.

Exigences fonctionnelles :

Fonctionnalités spécifiques :
Ansible doit être non gourmand en ressources. Il doit remplir les fonctionnalités demandées. Il doit
ainsi avoir la capacité d’être mis-à-jour facilement par les équipes d’administration SI. Il doit convenir
à l’existant et le pas perturbe le fonctionnement de l’entreprise notamment par les dépendances avec
lequel d’autres applications fonctionnent. La prise en main doit être rapide, dans le cas d’un nouvel
administrateur. Il doit permettre de gagner du temps dans la gestion de configuration des machines
virtuelles de l’entreprise. Elles abritent les services fondamentaux au fonctionnement de la société.
Tout problème entrainant la suspension de services pourrait entraîner de graves conséquences pour
l’entreprise et ses salariés.

Scénarii d’utilisation :
Scénario 1 :
La machine virtuelle avec Ansible installé dessus est mise en service. Les tests ont été concluants. On
configure les paramètres des différentes machines avec lesquelles Ansible communique. Les machines
sont paramétrées depuis Ansible individuellement et en pool. Les configurations sont transmises aux
machines nodes, et les changements sont pris en compte sans perturber l’existant. Les administrateurs
gagnent du temps et peuvent effectuer d’autres tâches en parallèle.

Scénario 2 :

Stephanie MISSIAMENOU 34
35
La machine virtuelle avec Ansible installé dessus est mise en service. Les tests ont été concluants.
Pendant l’assimilation, Ansible ne fonctionne pas. On retire la machine afin d’investiguer, trouver et
régler le problème.

Scénario 3 :
La machine virtuelle avec Ansible installé dessus est mise en service. Les tests ont été concluants. On
configure les paramètres des différentes machines avec lesquelles Ansible communique. Les machines
sont paramétrées depuis Ansible individuellement et en pool. Un problème est repéré dans la
transmission des changements de configurations et configurations. Une investigation doit être tenue
pour trouver le problème et le réparer.

Scénario 4 :
La machine virtuelle avec Ansible installé dessus est mise en service. Les tests ont été concluants. On
configure les paramètres des différentes machines avec lesquelles Ansible communique. Les machines
sont paramétrées depuis Ansible individuellement et en pool. Cependant, il y’a une interférence dans
les dépendances des différentes applications, ce qui perturbe le fonctionnement des application
existantes. Une investigation doit être menée afin de voir où se situe le problème. Si le problème est
plus enraciné, la machine virtuelle doit être enlevée afin d’éviter un grave problème de disponibilité
mettant à mal la pérennité de l’entreprise.

Scénario 5 :
La machine virtuelle avec Ansible installé dessus est mise en service. Les machines sont paramétrées
depuis Ansible individuellement et en pool. Les configurations sont transmises aux machines nodes, et
les changements sont pris en compte sans perturber l’existant. Cependant, cela ne permet pas aux
administrateurs de gagner du temps pour d’autres tâches. Une modification des configurations doit être
fait afin d’optimiser les fichiers de configurations sur la machine virtuelle Ansible.

Exigences non fonctionnelles :

Liées à la performance :
- La machine virtuelle reconnait chaque node grâce à des informations qui lui sont propres,
comme d’IP.
- En cas de panne, une image récente de la machine virtuelle doit être disponible.

Liées à la fiabilité :
- Les informations de configuration des machines ne sont accessibles que par les
administrateurs. Seuls eux sont habilités à modifier la configuration des machines.
- Les configurations n’entrent pas en conflit.

Liées à la sécurité :

Stephanie MISSIAMENOU 35
36
La machine n’est pas accessible par n’importe qui.
- Il existe une sécurité, pour la gestion sur les serveurs telle qu’une authentification.
- Les serveurs sont dans des locaux filtrant.
- Le service Ansible améliore la sécurité des configurations en baissant le pourcentage de risque
d’une erreur liée à une manipulation humaine

Liées à la convivialité :
- Les fichiers de configurations ne doivent pas être difficiles pour les administrateurs à
modifier.
- Les utilisateurs ne sont impactés par la mise en place de la machine.

Contraintes de développement :

Installation du produit :
L’installation d’Ansible ne nécessite pas d’achat de matériel, dans la mesure où la partie logicielle est
la plus importante. L’achat doit s’effectuer uniquement si le besoin est présent. Le serveur dot être
compatible avec l’infrastructure existante. Il sera placé dans la salle serveur de l’entreprise.

Les ressources :
Matériel
- 1 serveur :
o 16GB RAM
o 250GB ROM
o 8 CORES

Logiciel
- Debian 11
- Ansible et ses dépendances à savoir :
 Jinja
 Pyhton3
 Docker
 Docker-Compose
 NodeJS
 NodeJS-NPM
 NPM
 Etc …

Prestations et services :

Stephanie MISSIAMENOU 36
37
Le soumissionnaire doit assurer une mise en œuvre clé en main de la plateforme proposée, en
fournissant les prestations suivantes :
- Réaliser et fournir un planning détaillé d’exécution des prestations relatives au marché. Ledit,
planning doit respecter la durée d’exécution (18 mois). Le planning doit respecter la démarche
standard (initiation, conception, tests/recettes, déploiement) du déploiement et d’installation
de tous les éléments
- Installer et paramétrer les équipements (machines virtuelles)
- Faire toutes les configurations nécessaires pour répondre aux besoins.
- Faire les tests de bon fonctionnement et de validations et fournir un rapport détaillé
d’exécution des dits tests
- Assurer un transfert de compétence à l’équipe IT
- Fournir le dossier de mise en œuvre, la documentation détaillée des dossiers de test/recette.

Délais de tests et d’installation :


Nous espérons que le projet puisse être mené dans un délais de 18 mois, du début à la fin de
l’installation. Dans le cas contraire, une communication sur une nouvelle date de livraison devra être
effectuée.

Limites de budget :
Ansible est un logiciel open-source. Il ne nécessite pas de dépense. La limite de budget est fixée à
environ 1400euros, en comprenant l’achats de matériel si le besoin est, c’est-à-dire dans le cas échéant
d’un serveur.

Planification et livrables

Etapes de développement et délais :


Nous voulons, comme livrables
 Le résultat de tests de fichiers
 La livraison de la demande (machine virtuelle, avec la solution Ansible)
 Le support écrit de transfert de compétences vers l’équipe IT dès que
possible.
 Le résultat des tests d’intégration à l’environnement dans la mesure du
possible.
La documentation de Ansible est considérée comme un livrable tant elle a un rôle fondamental dans la
prise en main et l’apprentissage des équipes lors d’un projet. Ici, les administrateurs lisent la
documentation afin de s’approprier le logiciel et faire les modifications nécessaires à l’amélioration de
l’automatisation des machines virtuelles grâce à Ansible.

Jalons du projet :
Les jalons du projet sont les délimitants des étapes :
- Identifier les types de machines qui seront impactés par l’installation de Ansible.

Stephanie MISSIAMENOU 37
38
- Le montage de l’environnement de tests comprenant les machines demandées, à savoir 1 node
manager Ansible et 2 nodes receveurs.
- Tester leur fonctionnement des fichiers de configurations et de la communication entre les
nodes. On observe le comportement de la solution. On regarde comment les fichiers créés et
utilisés par le programme sont utilisés. Cela autorise aux premiers ajustements afin
d’améliorer le programme par rapport aux attendus fixés.

Communication et collaboration

Attentes en matière de communication :

Les attentes en matière de communication entre les parties prenantes ; Les personnes de l’équipe IT
doivent constamment se parler. En effet, elles sont les personnes aptes à mener à bien le projet. Dans
le but de l’avancée et de l’accomplissement de la mise en place du serveur Ansible, tous les moyens de
communication doivent être mis en place :
- Les réunions afin de parler de l’avancée du projet
- La consultation ainsi que les modifications des documents indiquant l’avancée des différentes
étapes du projet.

Les rapports de progression :


Les rapports de progression se font entre les membres de l’équipe IT de l’entreprise. un rapport
d’avancée du projet doit être mis en place pour plus de clarté et une reprise/arrivée éventuelle par un
nouvel administrateur.

Accompagnement :
Un accompagnement est à prévoir durant toute la période de la mise en œuvre. Cet accompagnement
toutes les interventions en réponses aux besoins (installation, administration du système,
configuration, résolution d'un problème technique …)

Formation et transfert de compétences :


L’offre doit contenir aussi un plan de formation et de transfert de compétence à l’équipe IT dans
l’objectif d’avoir une autonomie dans la gestion et l’administration du système.
La formation et le transfert de compétence doivent être accompagnés avec des supports écrits

Stephanie MISSIAMENOU 38
39

Objectifs et périmètre du projet

La présente section du plan de gestion du projet de TI contient un aperçu du but, de la portée et des
objectifs du projet visé par le plan ainsi que des hypothèses et des contraintes du projet, la liste des
biens livrables, un sommaire du calendrier et du budget et le plan de mise en œuvre du plan de gestion
du projet de TI.

Le but du projet est d’automatiser la gestion et la configuration des machines virtuelles de l’entreprise.
L’objectif est de libérer les administrateurs réseaux pour d’autres tâches, mais aussi de gagner en
sécurité, en uniformité et en ergonomie. Pour ce faire, le logiciel Ansible a été sélectionné car il
répond le mieux aux besoins de la société en termes d’assimilation dans l’infrastructure informatique
de l’entreprise. Le but est d’augmenter la sécurité, l’uniformité et de faire gagner du temps à l’équipe
SI.

Parties prenantes :
- L’équipe d’administration SI qui a la charge du projet mais qui en est aussi le bénéficiaire.
- Les autres salariés lors du déploiement de la machine en production.

Les livrables :
Les livrables dans le cas de ce projet sont :
- Le cahier des charges, qui vérifie les fonctionnalités et la bonne compréhension du projet et de
ses objectifs : les attendus, les spécificités fonctionnelles comme non-fonctionnelles.
- Le plan projet, qui définit les contraintes du projet, aussi bien budgétaire, temporel, humaine,
mais aussi les attendus en termes de qualité. Il alloue les ressources et sert de repère à la
planification du projet.
- Les résultats de tests : afin d’orienter le mieux possible les tests pour qu’ils correspondent le
plus possible aux attendus et objectifs.

Les exclusions :
Sont exclues du projet, les configurations portant sur l’automatisation de postes, l’installation et le
déploiement de nouvelles machines. Le but ici, est d’automatiser et ergonomiser l’existant. Cela
concerne donc les machines virtuelles déjà présentes dans l’infrastructure. Seules les machines de tests
doivent être installées pour procéder à une simulation.

Identification les interfaces :


Dans le cas du déploiement, la machine peut rencontrer des problèmes, notamment les dépendances d’Ansible,
en l’occurrence Docker, Python. Ces dépendances peuvent rentrer en conflits avec d’autres dépendances, de
versions, de dépôts différents, servant pour d’autres applications. Ce sera la partie la plus délicate.

Stephanie MISSIAMENOU 39
40
Matrice des objectifs et WBS
Arbre des objectifs :

Pérennisation de
l’entreprise

Gain de clients

Facilité dans Obtention de


l’agrandissement de certification et de
l’infrastructure fiabilité de
l’entreprise

CONSEQUNCES
Enchainement des Economie de temps dans la Moins de failles
tâches de la part gestion des problèmes
des Administrateurs d’uniformité (problèmes de
réseaux droits utilisateurs, d’accessibilité

Gain de temps Uniformité accrue Gain de Sécurité

OBJECTIFS
Configuration des machines
virtuelles

Mise en place
de tests
MOYENS

Mise en place
de machine de
Logiciel Ansible tests

Serveur matériel de tests

Stephanie MISSIAMENOU 40
41
WBS :

Projet : Automatisation de tâches grâce


à Ansible

Déploiement et Mise en place de


Planification Conception et
maintenance de sauvegarde de
développement
la plateforme l’infrastructure
de la plateforme

Définition des Conception de Planification et


Plan de
objectifs, la machine et exécution du
reprise
besoins et des installation de déploiement de
d’activité
exigences du Ansible la plateforme
(sauvegardes)
projet

Planification et Création des Support et


fichiers de maintenance Gestion des
gestion du
configurations de la dépendances
calendrier du
projet plateforme

Planification et Images de la
Tests et Mise à jour et
gestion des Tests de machine
validation de gestion des
ressources la plateforme performances
correctifs de
humaines
sécurité et
performance de
Planification et la plateforme
gestion du budget
Amélioration
et de la livraison du Disponibilité,
des fichiers de
projet sécurité,
configurations
réalisation des Surveillance et
tâches amélioration des
Définition et demandées performances de
validation du la plateforme
périmètre du
projet

Définition et
délimitation
des tâches des
équipes

Gestion des
risques du projet

Plan de gestion des ressources

Rôles et responsabilités
Les rôles sont simples. L’équipe SI se charge du projet. L’équipe se compose de 4 membres.

Stephanie MISSIAMENOU 41
42
- Le responsable réseau : Olivier CLEF
- Les administrateurs réseaux : Michael FRANCK et Steeves DELOUSTAL
- Le technicien réseau : Stéphanie MISSIAMENOU (Moi)

Charge estimée pour chaque ressource :

Etape Coûts Coûts


monétaires Coûts humain Salaires matériels Coût temporel
Planification 0 Equipe SI 7,2k 840
Conception
des
Serveur, trois
machines machines
virtuelles 0 Equipe SI 300 virtuelles 35
Installation Serveur, trois
machines
de Ansible 0 Equipe SI 190 virtuelles 7
Tests de Serveur, trois
machines
Ansible 0 Equipe SI 7,4K virtuelles 140
Installation Serveur, trois
machines
de AWX 0 Equipe SI 1,9k virtuelles 70
Tests de Serveur, trois
machines
AWX 0 Equipe SI 5,7k virtuelles 210
Tests de Serveur, trois
machines
performance 0 Equipe SI 1k + virtuelles 105 +

Diagramme de GANTT :

Stephanie MISSIAMENOU 42
43

Budget du projet
Le budget consacré au projet est assez faible. Ansible est un logiciel opensource et gratuit. Il n’y pas
besoin de licences pour ce logiciel. Il en est de même pour le serveur, qui est déjà disponible, ainsi que
les installations, les tests. Le plus gros du budget repose sur les salaires et les coûts électricités. Le
coût total revient à un peu moins de 24k tout coût compris

Plan de gestion de la communication

Canaux de communication
Attentes en matière de communication :

Les attentes en matière de communication entre les parties prenantes ; Les personnes de l’équipe IT
doivent constamment se parler. En effet, elles sont les personnes aptes à mener à bien le projet. Dans
le but de l’avancée et de l’accomplissement de la mise en place du serveur Ansible, tous les moyens de
communication doivent être mis en place :
- Les réunions afin de parler de l’avancée du projet
- La consultation ainsi que les modifications des documents indiquant l’avancée des différentes
étapes du projet.
Le projet peut se faire en présentiel, comme en distanciel. Les principaux canaux de communications
sont des comptes-rendus fait via teams lors de meeting. Les tickets sur Jira permettent de suivre
l’avancée du projet. Les tests, ainsi que leurs résultats indiquent la direction du projet.
Les rapports de progression se font entre les membres de l’équipe IT de l’entreprise. un rapport
d’avancée du projet doit être mis en place pour plus de clarté et une reprise/arrivée éventuelle par un
nouvel administrateur.
L’offre doit contenir aussi un plan de formation et de transfert de compétence à l’équipe IT dans
l’objectif d’avoir une autonomie dans la gestion et l’administration du système.
La formation et le transfert de compétence doivent être accompagnés avec des supports écrits

Décrire les instances de gouvernance du projet

Définir les objectifs stratégiques du projet : Le but est que l’équipe SI gagne du temps sur
l’administration du SI. Elle est donc l’équipe sur le projet. Le responsable SI approuve le projet. Les
échanges se font régulièrement, lors des jalons de projet.
Fixer les budgets et allouer les ressources : le budget est fixé au début du projet. L’équipe SI,
principalement les techniciens examinent les ressources et demandent les ressources nécessaires
précédemment calculées. Pour ce projet, le budget est fixé par rapport aux technologies utilisés, ainsi
que le coût des équipements sur le long terme, comme l’électricité et les salaires.

Stephanie MISSIAMENOU 43
44
Examiner et approuver les plans et les livrables : les livrables sont créés et mis-à-jour par les
techniciens en charge d’exécution du projet. Le tout est vérifié par les administrateurs réseaux. Les
tests sont faits et vérifier par l’ensemble de l’équipe sauf le responsable réseaux.
Surveiller l'avancement du projet : Le technicien réseaux est chargé de l’avancement du projet via des
tickets. Les tickets sont contrôlés par les administrateurs qui encadrent le projet.
Prendre des décisions clés : L'instance de gouvernance prend des décisions sur des questions critiques
liées au projet, telles que les changements de portée, les ajustements de budget, les ressources
supplémentaires, les approbations des livrables, etc.
Assurer la communication et la transparence : Elle assure une communication claire et transparente
entre toutes les parties prenantes du projet, en fournissant des mises à jour régulières sur l'état
d'avancement, les risques et les décisions prises.
Évaluer les résultats et les leçons apprises : À la fin du projet, les administrateurs réseaux, avec les
techniciens évaluent la technologie en rapport avec les résultats. Ils évaluent ces résultats et les
comparent aux attenus. Ils fournissent, en conséquence, e des recommandations pour améliorer les
futures initiatives de projet.

Les indicateurs de suivi du projet

Indicateurs de portée (Scope) :


2 machines nodes sont installés. Il faut partager les clés SSH de l’utilisateur de la machine Manager.
Pour ces tests, 2 machines sont installées. Mais la configuration impactera Plusieurs dizaines à
plusieurs centaines de machines. Le nombre de modules augmentera au fur et à mesure que la
connaissance des besoins s’affineront.

Indicateurs de délai (Time) :


Durée estimée pour l'installation d'Ansible sur la machine virtuelle Debian.
La durée initiale sera de 3 mois. C’est à parti de ce délai-là que nous serons en mesure de cerner plus
précisément les besoins en termes de configurations plus adaptée et adaptables selon les machines et
leur besoin ainsi que leur utilisation. C’est à partir de ce moment-là que nous pourrons faire les pool
machines en fonction des besoins. La durée du projet en lui-même est de 18 mois. Un report du délai
final est possible.

Indicateurs de coût (Cost) :


Les frais sont de l’ordre de coûts électrique. Il n’y pas de coûts liés à l’installation, à l’administration
en termes de licences pour Ansible. Les autres coûts à prendre en compte sont les salares.
Il faut les compétences minimales en réseaux. Une connaissance en Ansible est meilleure. Dans le cas
contraire, une prise en main est nécessaire.
Pour les administrateurs, une capacité d’encadrement est demandée afin d’aider le technicien dans sa
prise en main et dans le suivi du projet.

Stephanie MISSIAMENOU 44
45
Le temps de l’installation et de la configuration est estimé à plus de 1407H sans compter la suite des
tests et le déploiement.

Triangle d’or :

Approche de développement et cycle de vie du projet

Conception et initiation :
Les objectifs du déploiement d’Ansible sont le déploiement plus facile et la gestion des mises-à-jour
des machines. Les enjeux sont d’économiser du temps. Le système doit être autonome pour que
l’administrateur puisse s’atteler à d’autres tâches. Évaluation de la faisabilité et des contraintes.
Les parties prenantes de ce projet sont :

- L’équipe d’administration du service informatique (IT) de l’entreprise ayant pour objectif de


mener à bien le projet, de sécuriser le SI et trouver une solution pour répondre à la
problématique et au besoin de l’entreprise.
- Les salariés de l’entreprise, ainsi que les futurs salariés qui seront impactés de façon mineure
par le projet et la mise en place de la solution si tôt qu’elle aura été testée et installée.

Planification :
Élaboration d'un plan détaillé pour atteindre les objectifs du projet.

Stephanie MISSIAMENOU 45
46
 Le résultat de tests de fichiers
 La livraison de la demande (machine virtuelle, avec la solution Ansible)
- Nous espérons que le projet puisse être mené dans un délais de 18 mois, du début à la fin de
l’installation. Dans le cas contraire, une communication sur une nouvelle date de livraison
devra être effectuée.
Ansible est un logiciel open-source. Il ne nécessite pas de dépense. La limite de budget est fixée à
environ 1400euros, en comprenant l’achats de matériel si le besoin est, c’est-à-dire dans le cas échéant
d’un serveur. Le budget repose surtout sur les dépenses dans le temps comme les salaires et les coûts
en termes d’électricité.

Exécution :
Mise en œuvre du plan de projet.
- Identifier les types de machines qui seront impactés par l’installation de Ansible.
- Le montage de l’environnement de tests comprenant les machines demandées, à savoir 1 node
manager Ansible et 2 nodes receveurs.
- Tester leur fonctionnement des fichiers de configurations et de la communication entre les
nodes. On observe le comportement de la solution. On regarde comment les fichiers créés et
utilisés par le programme sont utilisés. Cela autorise aux premiers ajustements afin
d’améliorer le programme par rapport aux attendus fixés.
Les personnes de l’équipe IT doivent constamment se parler. En effet, elles sont les personnes aptes à
mener à bien le projet. Dans le but de l’avancée et de l’accomplissement de la mise en place du
serveur Ansible, tous les moyens de communication doivent être mis en place :
- Les réunions afin de parler de l’avancée du projet
- La consultation ainsi que les modifications des documents indiquant l’avancée des différentes
étapes du projet.
Ils constituent la partie prenante la plus impactée par le projet.
Les principaux canaux de communications sont des comptes-rendus fait via teams lors de meeting. Les
tickets sur Jira permettent de suivre l’avancée du projet. Les tests, ainsi que leurs résultats indiquent la
direction du projet.

Surveillance et contrôle :
Suivi de l'avancement par rapport au plan établi.
Gestion des changements, des risques et des problèmes.
Un allongement des délais sera nécessaire si besoin est.
Les tickets sur Jira permettent de suivre l’avancée du projet. Les tests, ainsi que leurs résultats
indiquent la direction du projet.

Clôture :
La formation et le transfert de compétence doivent être accompagnés avec des supports écrits.
Le nombre de modules augmentera au fur et à mesure que la connaissance des besoins
s’affineront.

Stephanie MISSIAMENOU 46
47

Plan de gestion de la qualité

Les objectifs de qualité du projet

En termes de disponibilité :
Les machines virtuelles ne seront pas nécessairement allumées et connectées 24/24. Néanmoins, dans
le cas où elles seraient allumées plusieurs heures à plusieurs jours pendant une mise-à-jour et une
configuration, elle ne doit pas présenter de problèmes ne doit pas s’interrompre pendant. En cas de
problème, une image de la machine doit être faite régulièrement afin de garantir une alternative de
secours en cas de problème de disponibilité de la machine, d’altération et/ ou de mauvaise
manipulation.

En termes de tests de validation :


Les tests sont passés afin de s’assurer que la machine et l’installation respectent bien les attendus. Les
tests de fonctionnalités sont passés. Premièrement, leur objectif est d’accompagner les administrateurs
dans la prise en main du logiciel. Deuxièmement, de vérifier les attendus et de jauger les améliorations
à apporter afin d’affiner la réponse aux besoins par rapport aux attendus.

En termes de performance :
La machine doit répondre aux exigences qui lui sont demandées. Dans le cas présent, elle doit
permettre la configuration, la maintenance de machines virtuelles en Debian. Elle doit répondre aux
tâches suivantes :
- Mises-à-jour et mises-à-niveau de machines virtuelles hôtes
- Installation et configurations de Playbooks ayant pour but de configurer les machines hôtes
Dans une possibilité de prolongement du projet :
- Une harmonisation des machines virtuelles hôtes avec les postes en Windows (évoquer en
moyen à long terme)
- Création et déploiements de machines virtuelles

En termes de Sécurité :
La machine virtuelle doit être placé dans un serveur, lui-même dans un datacenter de l’entreprise. Ce
dernier ne doit être accessible que par les administrateurs réseaux de l’entreprise. Ce datacenter est
situé à Grenoble. Les locaux sont accessible grâce à une badgeuse ou seul l’administrateur réseau est
autorisé à entrer.

En termes de maintenance :
La machine Ansible est la machine Manager en charge de la gestion des mises-à-jours des machines
virtuelles de l’infrastructure. Elle doit impérativement être maintenue prioritairement des autres
concernant les mises-à-jours et doit faire partie des plans de back up et d’archivage à l’instar des

Stephanie MISSIAMENOU 47
48
autres machines. Les versions doivent être documentés et ajournées. De plus, une vérification des
compatibilités de versions doit être surveillées afin d’aucune application ni aucun logiciel ne tombe.

Les rôles et responsabilités en matière de qualité :


Le technicien réseau : Moi : Est en charge de la réalisation du projet. Doit vérifier les attendus du
projet par rapport aux exigences qualité de la demande. Pour cela, les tests sont effectués dans
l’objectif de se rapprocher au maximum de but d’automatisation le plus complet possible de
l’infrastructure.
L’administrateur réseau : Steeve Deloustal. S’occupe de l’encadrement du projet de la solution. Il est
amené à participer à l’installation et aux tests d’installation et de fonctionnement de Ansible.
L’administrateur réseau : Michael Franck. S’occupe de la mise en production et des tests de la
machine dans la zone de production.
L’équipe entière du SI. S’occupe des tests de la machine en temps que partie prenante du projet. Elle
est l’équipe impactée par l’installation de la machine Ansible. Les tests effectués par chacun des
membres permettront d’affiner les configurations apportées sur la machine envers les machines hôtes.

Les outils de qualité qui seront utilisés pour le projet :

Logiciels de gestion de projet :


Jira est un logiciel de gestion de projet. On peut avec, créer la documentation des projets en cours de
développement. Il nous permet de poser des repères concernant le projet à savoir : l’avancée du projet,
les étapes, les tests, les résultats de ces tests, les fonctionnalités qu’on cherche à implémenter… Ce
logiciel est dans notre cas, est utilisé afin de communiquer aux autres sur l’avancée du projet, mais
aussi en tant que repère afin de reprendre l’installation et la configuration après une longue période
passée en dehors du projet.

Outils de gestion des documents :


Le serveur samba est l’endroit où on stocke les fichiers de documentation des administrateurs réseaux.
C’et dessus que sont stockées les fichiers de configurations des machines et les diverses procédures.
Dans la machine virtuelle, le répertoire « installer » est l’endroit où sont entreposées les fichiers de
configuration de Ansible. C’est depuis ce répertoire qu’ils sont appéles.

Les activités de gestion et de maîtrise de la qualité planifiées pour le projet :


Planification de la qualité :
La planification de la qualité est découpée en plusieurs étapes qui vérifient chacune que le projet
respecte les normes et attendus minimal du projet. Cela vérifie, par la même occasion, les besoins des
administrateurs.
- La première étape est l’identification des besoins. Cette identification nous permet de réfléchir
à une solution pour répondre à ce besoin.
- La deuxième est de sélectionner une option, ici logiciel afin de répondre à cette
problématique.

Stephanie MISSIAMENOU 48
49
- La troisième est d’établir une liste de fonctionnalité en réponse aux objectifs fixé par l’analyse
des besoins.
- La quatrième repose sur l’installation et la configuration de la solution, ici Ansible suivies de
tests qui vérifient la conformité des installations.
- L’affinement des besoins afin de prévenir d’éventuels problèmes de personnaliser les
configurations en fonction des situations qui se présentent.

Assurance qualité :
Afin de garantir que les livrables du projet répondent aux normes et aux exigences de qualité définies,
une revue de l’équipe est effectuée, pour rendre compte de l’avancée du projet, de propose des options
d’affinage de la configuration. Les tests répertorient les résultats des tests, ainsi que les avancées
futures qui seront ajoutées à la machine. Un fichier avec les consignes d’utilisation de la machine et de
ses fonctionnalités permet de retrouver, en cas d’oubli, les bonnes pratiques d’utilisation de la
machine.

Contrôle de la qualité :
Le contrôle de qualité implique des tests et une validation de ces tests par rapports aux attendus. Des
correctifs sont mis en place. Ces correctifs impliquent le téléchargement et l’installation de playbooks,
la configuration et la programmation de playbooks testés sur les machines hôtes. Des tests de
connexion entre les machines pour s’assurer du bon fonctionnement de la liaison entre les machines
virtuelles. Ensuite, des maintenances de la machine Ansible doivent être programmées pour la mettre à
la version la plus récente du logiciel si cela est possible. Il faut avant vérifier les versions des
dépendances ainsi que des applications sur lesquelles agissent les playbooks. Pour finir l’affinement
des besoins.

Gestion des non-conformités :


La principale non-conformité est un mauvais choix de solution logiciel. Les autres non-conformités
sont facilement réglables et enlevables. Dans le cas d’un mauvais playbooks, il suffira de le
désinstaller. Dans le cas d’une mauvaise configuration liée à une mauvaise programmation, le retrait
du bloc de « code » entrainant l’erreur est privilégié.

Livrables et processus faisant l’objet d’une revue de la qualité :


Spécifications et documents de conception :

Le cahier des charges : Acteur : Moi. Responsable : Michael Franck. Valideur : Olivier Clef.
Les spécifications ainsi que les attendus de l’installation et de la configuration de Ansible. Il détaille
des spécificités fonctionnelles et non-fonctionnelles, les jalons et étapes de la mise en place de
Ansible, les parties prenantes. Il est le plus utile en comparaison du besoin afin de solutionner le
problème, le budget, le matériel requis pour procéder aux installations et à la bonne conduite du projet.

Plans de projet : Acteur : Moi. Responsable : Michael Franck. Valideur : Olivier Clef.
Dans lequel est documenté différents plans tels que le plan qualité, le plan de gestion des risques, le
plan de communication, etc., sont examinés pour vérifier qu'ils sont pertinents, complets et appropriés

Stephanie MISSIAMENOU 49
50
pour la gestion efficace du projet. Tous ces plans sont étudiés dans l’objectif de mener à bien
l’exécution du projet.

Code source et scripts : Acteur : Moi, Steeves Deloustal. Responsable : Michael Franck. Valideur :
Olivier Clef.
L’installation d’Ansible, les machines tests qui sont élaborées afin d’étudier le comportement de la
solution pour mieux appréhender les modifications à faire pour améliorer et affiner la réponse aux
besoins des autres machines de l’infrastructure et l’assimilation de nouvelles fonctionnalités, ainsi que
de futures modifications. Les Playbooks font partie des « codes sources » du projet car ils participent
directement à l’automatisation des machines nodes via la machine manager.

Rapports et documentation : Acteur : Moi, Steeves Deloustal. Valideur : Olivier Clef.


La documentation de Ansible est considérée comme un livrable tant elle a un rôle fondamental dans la
prise en main et l’apprentissage des équipes lors d’un projet. Ici, les administrateurs lisent la
documentation afin de s’approprier le logiciel et faire les modifications nécessaires à l’amélioration de
l’automatisation des machines virtuelles grâce à Ansible.

Le rapport de tests : Acteur : Moi, Steeves Deloustal. Responsable : Michael Franck. Valideur :
Olivier Clef.
Les comptes-rendus et résultats de tests nous aiguillent pour augmenter l’efficacité de l’installation et
du déroule du projet. Grâce à cela, nous voyons et fixons les échelons des étapes. Nous savons
lorsqu’une étape est franchie et finis si les résultats correspondent aux attendus fixés, voire les
dépassent. Ils nous servent à tirer les conclusions concernant le chemin et la direction dans laquelle
nous orientons notre développement, les limites et difficultés auxquelles nous faisons face. Nous
pouvons ensuite améliorer le contenu du code une fois les erreurs comprises et corrigées.

Produits livrables finaux : : Acteur : Moi, Steeves Deloustal. Responsable : Michael Franck. Valideur :
Olivier Clef.
La machine virtuelle Ansible, les playbooks sont les livrables finaux. Ils sont examinés pour s'assurer
qu'ils sont précis, clairs, complets et qu'ils répondent aux besoins des utilisateurs finaux.

Plan de gestion des risques :


Dans le contexte de l'installation et de la configuration d'Ansible, la gestion des risques revêt une
importance cruciale. L'installation et la configuration d'un outil aussi essentiel nécessitent une
approche proactive pour identifier, évaluer et gérer les risques qui pourraient affecter la réussite du
projet. La gestion des risques permet de prévenir les problèmes majeurs, de minimiser les impacts
négatifs et de maximiser les opportunités d'amélioration.
La complexité technique et les dépendances multiples associées à l'installation et à la configuration
d'Ansible créent un environnement propice à l'émergence de risques. Ces risques peuvent inclure des
problèmes de compatibilité matérielle ou logicielle, des erreurs de configuration, des lacunes dans les
compétences des équipes, des retards dans le déploiement, des erreurs de sécurité ou même des échecs
majeurs du système.

Stephanie MISSIAMENOU 50
51
La gestion des risques permet d'anticiper ces problèmes potentiels et de mettre en place des mesures
pour les atténuer. Elle implique une analyse approfondie des risques, l'identification de mesures
d'atténuation appropriées et la planification de réponses adéquates en cas de survenance de ces risques.
Une gestion efficace des risques contribue à minimiser les coûts, à améliorer la qualité du projet et à
renforcer la confiance des parties prenantes.

Méthodologie de gestion des risques : nous avons privilégié une approche standard pour
l’identification, l’analyse et la résolution des risques. La première réponse à la gestion des risques
est… d’éviter d’en faire. C’est à première vue une réponse banale. Elle nécessite néanmoins qu’on
mette en place une typologie en matière de mots de passe, de nom de variable, de noms de fichiers
pour éviter les confusion et différences orthographique. Nous avons listé les risques et mis différents
niveaux de résolution pour chaque problème. Cette méthodologie est applicable lorsque le problème
est d’origine logiciel, qu’il est résultant d’un processus et d’une manipulation intervenue lors de la
mise en place d’un élément. Il existe cependant les problèmes qui ne peuvent être résolus qu’avec un
report de temps et/ou une redistribution des tâches au sein de l’équipe. Ces problèmes sont des
problèmes concernant les membres de l’équipe projet elle-même mais impactant le déroulé du projet
Ansible.
Ces différents niveaux sont :
- Niveau 1 : Résolution d’un problème mineur en modifiant à peine une configuration créant un
message d’erreur.
- Niveau 2 : Recherche sur internet afin de trouver la même situation ou une similaire conclue
par une résolution du problème afin de résoudre notre problème par le même résonnement.
- Niveau 3 : Appel à un ami pour une résolution du problème qui dépasserait mes
connaissances.
- Niveau 4 : Appel à la communauté. Description du problème sur un forum tier pour avoir une
aide et un œil extérieur.
- Niveau 5 : Destruction de la machine et réhabilitation via une image faite au préalable.
- Niveau 6 : Reports des délais de l’étape jusque rétablissement d’une situation favorable.

La stratégie repose surtout sur le transfert en cas de problème lié à la situation d’un salarié et
l’atténuation, voire la résolution liée à un problème logiciel. L’enjeu est d’éviter qu’un problème est
apparence banale ne grossisse au fur et à mesure du temps pour devenir un nœud.

Exemples de gestion des risques :


Dans le vas d’une manipulation de machine virtuelle, il peut arriver qu’après une manipulation ou
changement d’état de celle-ci, qu’elle soit hors de fonctionnement. Ce risque étant très probable, une
image de la machine à été faite au préalable afin de la restaurer dans le cas où une altération de son
état arrivait.

Matrice de probabilité et d’impact :

Impact 1 2 3 4 5
Négligeable Mineur Modéré Majeur Catastrophique

6 Machine
Avéré virtuelle

Stephanie MISSIAMENOU 51
52
cassée
5 Erreurs Absence
Très dans le d’un
probable code collaborateur
4 Mauvaise Panne Conflit dans
Assez instruction internet ou les
Probable donnée à la électrique dépendances
machine
3
Probable
2 Mauvais Panne des
Peu objectif fixé serveurs
probable
1 Installation Vitre brisée Tremblement
Quasi du mauvais de terre
improbable logiciel

L’impact sur un projet est la portée, positive ou négative qu’aura un évènement sur le projet. Il peut
l’impacter sur des données comme le temps avec un report des délais, l’argent en engendrant des coûts
supplémentaires, les ressources matérielles ou humaines. Il nécessite d’être envisagé et appréhender
selon sa criticité et la probabilité de sa survenue. Cela va de négligeable à catastrophique.
La probabilité est la chance, le risque ou la fréquence qu’a un évènement d’arriver. Cela va de « quasi
improbable » à « avéré » pour les évènements déjà survenus.
Afin de bien mesurer ce risque sur un projet, il nous faut bien calculer et anticiper son impact et sa
probabilité. Pour ce faire, il faut ensuite multiplier les 2 afin de pouvoir prioriser et traiter les
évènements grâce à cette matrice. Il faut traiter en priorité ceux qui sont le plus susceptible d’arriver
ainsi que ceux qui auraient un impact considérable dans la faisabilité et la finalisation du projet.

Description des risques :


Installation du mauvais logiciel : Criticité : 1. le logiciel installé sur la machine n’est pas Ansible.
L’administrateur n’est pas bien réveillé. Cela impacte légèrement les délais. Pour le régler, il faut
désinstaller le logiciel et réinstaller le bon.
Machine virtuelle cassée : Criticité : 6. La machine virtuelle est hors de fonctionnement. Une
mauvaise manipulation a entrainé une interruption définitive de la machine. Cela impacte la
disponibilité de la machine. Il faut remplacer la machine par un autre. Il faillait dans ce cas faire une
image de sauvegarde de la machine. Dans le cas contraire, il faut tout refaire, ce qui entraine des
allongements de délais.
Erreurs dans le code : Criticité : 5. Erreurs détectées comme un mauvais nom de variable rendant le
code. Cela est dû à un code incorrect dans un des fichiers de la machine. Cela peut impacter la
sécurité, la disponibilité, l’intégrité des informations de configurations. Corriger le code erroné.
Mauvaise instruction donnée à la machine : Criticité : 8. la machine exécute un ordre B au lieu d’un
ordre A. Erreur de code. Cela peut impacter la sécurité, la disponibilité, l’intégrité des informations de
configurations. Corriger le code erroné.
Mauvais objectif fixé : Criticité : 4. Mauvaise analyse des besoins. Mauvaise compréhension des
besoins ayant entrainé une mauvaise analyse. Cela peut impacter les coûts, les délais, la qualité du
projet. Il faut revoir la compréhension des objectifs et la définition des besoins, par rapport au cahier
des charges. Il faut revoir l’objectif et s’assurer de sa bonne compréhension.

Stephanie MISSIAMENOU 52
53
Absence d’un collaborateur : Criticité : 15. Un collaborateur est absent. Il est malade ou en congés
parentaux. Cela impacte les délais, la qualité du projet. Il faut redistribuer les tâches selon les
compétences, soit attendre le retour du collaborateur, ce qui allonge les délais.
Panne internet ou électrique : Criticité : 12. Il n’y plus d’électricité dans les locaux ou il n’y plus
internet. Dû à une panne de secteur dans le quartier ou pour une panne internet à ne boucle dans le
réseau, une mauvaise direction DNS, un problème au niveau de l’armoire électrique. Cela impacte les
délais, la disponibilité. Dans le cas d’une panne de courant, il faut voir avec l’électricien ou la
compagnie d’électricité. Dans le cas d’une panné internet, trouver le problème et l’enlever. Appeler
l’opérateur si besoin.
Conflit dans les dépendances : Criticité : 16. Une dépendance rentre en conflit avec une autre
empêchant une application de fonctionner. Cela peut être lié à 2 applications utilisant les mêmes
dépendances, avec des versions différentes, deux dépôts pour une même application. Cela impacte la
disponibilité, l’intégrité. Voir d’où vient le conflit.
Panne des serveurs : Criticité : 10. Plus de serveurs disponibles. Une attaque informatique, une panne
de courant de grande ampleur au niveau des datacenters, une altération des datacenters. Cela impacte
la disponibilité, l’intégrité. Dans le cas de back up infructueux, cela impacte tout : les coûts, les délais,
la qualité, la disponibilité, la sécurité, l’intégrité. Il faut voir l’origine de la panne, changer le serveur
et remettre des backups.
Vitre brisée : Criticité : 2. Un objet est rentré en collision avec la vitre. Une manifestation. Cela
impacte la sécurité des locaux. Remplacer la vitre.
Tremblement de terre : :-\ . Criticité : 5. Pas grand-chose à faire. On accepte le risque.

Plan de gestion des changements

Maîtrise des changements du projet :


La gestion des changements se fait, soit lors d’une difficulté qui nécessite un détournement, soit dans
le cas ou ce changement est bénéfique pour l’une des facettes privilégiées. Un changement entrainant
une plus grande sécurité ou une plus grande ergonomie sera privilégié.
Si le changement est un changement mineur, ne nécessitant pas de grandes ressources monétaire,
temporelle ou humaine, le changement peut se faire. Dans ce cas, il faudra spécifier le changement et
la nouvelle direction si tôt celui-ci entamé. Le changement sera spécifié dans Jira, sur le ticket
concerné afin de suivre l’avancée du projet.
A contrario, un changement plus coûteux en temps, argent, ou nécessitant plus de personnes, sera
spécifié par une demande au préalable.

Plan de gestion de la configuration


L’objectif est d’automatiser l’installation de logiciel en incluant la standardisation des configurations,
l'automatisation des déploiements, la gestion des versions. Les éléments qui doivent être gérés grâce à
ça sont les machines virtuelles servant de serveurs, les applications installées sur ces machines. Cela se
fera par des playbooks, des groupes d'hôtes. Pour cela, il faut établir des normes de configuration
claires et cohérentes des éléments de configuration. Ainsi le nom des fichiers de configuration sera la

Stephanie MISSIAMENOU 53
54
tâche pour lequel ce fichier a été créé. On retrouvera facilement chaque playbooks. Concernant les
formats, les playbooks seront en .yml.

Stephanie MISSIAMENOU 54
55

ANALYSE DES SOLUTIONS RETENUES ET INSTALLATION ET


TESTS DE ANSIBLE

ANALYSE DES SOLUTIONS RETENUES

Pourquoi installer une solution de gestion de machines ?

L'automatisation d'installation de machines est un processus qui permet de déployer automatiquement


des applications, des systèmes d'exploitation et des paramètres de configuration sur les serveurs,
ordinateurs de l'entreprise. Cela peut être effectué à l'aide de scripts ou de logiciels dédiés.
L'automatisation d'installation divers permet de gagner du temps et de l'efficacité en permettant une
installation rapide et uniforme des applications et des paramètres de configuration sur de nombreux
ordinateurs et/ou serveur. De plus, cela peut également aider à éliminer les erreurs et les différences
dans les configurations d'ordinateur, ce qui peut améliorer la sécurité et la stabilité du système.
Il y a plusieurs raisons pour lesquelles une entreprise peut choisir d'automatiser l'installation
de machines :
- Gain de temps : L'automatisation de l'installation de postes peut gagner du temps par rapport à
une installation manuelle, en particulier lorsqu'il s'agit de déployer des applications et des
systèmes d'exploitation sur de nombreux ordinateurs.
- Uniformité : En utilisant un processus d'installation automatisé, vous pouvez vous assurer que
tous les serveurs et surtout les ordinateurs disposent des mêmes applications et des mêmes
paramètres de configuration. Cela peut aider à éliminer les erreurs et les différences dans les
configurations, surtout d'ordinateurs.
- Amélioration de la sécurité : L'automatisation de l'installation de machines peut aider à
améliorer la sécurité en veillant à ce que toutes les applications et tous les systèmes
d'exploitation soient mis à jour et en sécurité.
- Flexibilité : L'automatisation peut également offrir une flexibilité supplémentaire, car vous
pouvez déployer les mêmes applications et les mêmes paramètres de configuration sur de
nouveaux serveurs, ordinateurs lorsqu'ils sont ajoutés au réseau.

Dans notre cas, la raison moteur de la réflexion ayant poussé le test de l’automatisation d’installation
de machines est la demande croissante due au recrutement accru de nouveau salariés. Le gain de temps
serait considérable par rapport à l’installation manuelle. Ce serait ainsi un gain d’énergie et de
productivité. Cela nous permettrait de nous atteler à une autre tâche pendant.
De plus, nos machines n’ayant pas besoin d’une grande variété de logiciel, l’uniformité est déjà de
norme.
Deuxièmement, la sécurité serait plus grande car les risques de fausses manipulations altérant la
sécurité seraient grandement réduits. La réduction du temps de vérification en conséquence des
réglages et configurations réduirait de même.
Il existe de nombreux logiciels de gestion et d’automatisation. Pour ce faire j’avais le choix entre
Ansible et Terraform qui correspondaient le mieux aux exigences de l’entreprise . Ce sont ces 2
choix de solutions que nous étudieront.

Stephanie MISSIAMENOU 55
56
Approche déclarative et approche procédurale :

Pour une approche déclarative, vous spécifiez le résultat souhaité et le système détermine comment
atteindre ce résultat. Nous ne donnons pas d'instructions détaillées sur la façon de procéder, mais
plutôt une description de l'état final souhaité. Cette approche est souvent utilisée pour des tâches de
résolution de problèmes complexes, telles que la planification, la conception ou l'optimisation.
Par exemple, si nous utilisons une approche déclarative pour automatiser la production d'un rapport
mensuel, nous spécifions le contenu, le format et les données nécessaires pour créer le rapport, mais
nous ne donnons pas d'instructions détaillées sur la façon de rassembler les données ou de créer le
format. Le système détermine lui-même comment rassembler les données et créer le rapport en
utilisant des règles et des modèles que vous avez définis.

Dans une approche procédurale au contraire, nous donnons des instructions détaillées sur la façon
d'effectuer une tâche, étape par étape. Nous décrivons les actions spécifiques à effectuer pour atteindre
le résultat souhaité. Cette approche est souvent utilisée pour des tâches plus simples et répétitives,
telles que la saisie de données ou le traitement de fichiers.
Si nous utilisons une approche procédurale pour automatiser la création d'un rapport mensuel, nous
donnons des instructions détaillées sur la façon de rassembler les données, de les organiser et de les
formater, en spécifiant chaque étape du processus.

L'approche déclarative est axée sur le résultat souhaité et laisse le système déterminer comment y
parvenir. L'approche procédurale est axée sur les actions spécifiques à effectuer pour atteindre le
résultat souhaité.

Terraform
Terraform est un outil open source, de gestion de la configuration pour les infrastructures réseaux et
cloud. Il vous permet de décrire votre infrastructure en utilisant un langage de configuration simple, et
de déployer et gérer de manière fiable vos ressources informatiques sur des fournisseurs de cloud tels
que Amazon Web Services (AWS), Microsoft Azure et Google Cloud Platform. Terraform vous aide à
automatiser les tâches répétitives et complexes liées à la configuration et à la gestion de votre
infrastructure, ce qui peut vous faire gagner du temps et améliorer la qualité de vos déploiements. De
plus, en utilisant Terraform, vous pouvez également facilement reproduire et partager votre
infrastructure avec d'autres équipes ou environnements.

Stephanie MISSIAMENOU 56
57

Les principales fonctionnalités de Terraform sont :


Terraform est un outil de gestion de la configuration pour la création, la modification et le versioning
de l’infrastructure IT. Les principales fonctionnalités de Terraform incluent :
- Modélisation de la configuration : Terraform vous permet de décrire votre infrastructure de
manière abstraite et de la gérer de manière déclarative.
- Automatisation de la mise en œuvre : Terraform peut automatiser le déploiement, la mise à
jour et la suppression de la configuration de l'infrastructure.
- Prise en charge multi-cloud : Terraform est compatible avec de nombreuses plateformes
cloud, ce qui vous permet de gérer votre infrastructure de manière cohérente et cohérente
quelle que soit la plateforme utilisée. S'il y a une mise à jour dans le plan ou l'environnement,
il synchronisera l’infrastructure cloud.
- Gestion de dépendances : Terraform peut déterminer les dépendances entre les ressources et
les provisionner dans le bon ordre.
- Versioning de la configuration : Terraform utilise un système de contrôle de version pour vous
permettre de conserver des versions antérieures de votre configuration et de les restaurer en
cas de besoin.
- Collaboration et partage : Terraform permet à plusieurs personnes de travailler sur la même
configuration en même temps et de partager les ressources entre différents projets.

Limites de Terraform

Complexité croissante : Terraform peut devenir rapidement complexe pour les environnements plus
vastes ou plus complexes, ce qui peut rendre difficile la maintenance et la compréhension des
configurations.
Gestion de la complexité de dépendance : Terraform utilise un système de dépendance pour gérer les
relations entre les différents éléments de l'infrastructure, mais cela peut devenir complexe pour les
environnements plus vastes.
Limitations de l'interface utilisateur : Bien que Terraform ait une interface utilisateur en ligne de
commande, elle peut être limitée pour certains utilisateurs qui préfèrent une interface graphique plus
intuitive.
Risques de défaillance de l'application : Terraform utilise un état pour suivre les modifications
apportées à l'infrastructure, mais il existe un risque de perte de cet état, ce qui peut entraîner une
défaillance de l'application.

Stephanie MISSIAMENOU 57
58
Apprentissage continu : Terraform est un outil en constante évolution, ce qui peut rendre difficile la
mise à jour des connaissances pour les utilisateurs qui n'ont pas suivi les mises à jour.

Ansible

Ansible est un outil IaC (Infrastructure as Code) de gestion de configuration et de déploiement


automatisé pour les systèmes informatiques et les applications. Il utilise un langage de description de
configuration simple pour décrire les états souhaités des systèmes et les applications, et peut déployer
automatiquement les changements nécessaires pour atteindre cet état. Ansible est open-source, simple
à utiliser et peut être utilisé pour gérer des ressources sur une variété de plates-formes, notamment les
systèmes d'exploitation Linux, les systèmes de virtualisation et les clouds publics. Il est souvent utilisé
pour la gestion de la configuration, la mise à niveau de logiciels, le déploiement d'applications et la
gestion des infrastructures cloud.

Les principales fonctionnalités de Ansible sont :


Ansible est un outil de gestion de configuration et de déploiement de systèmes. Il permet de gérer les
configurations de plusieurs systèmes informatiques à distance, via des tâches simples et répétables
décrites dans des fichiers appelés Playbooks. Les principales fonctionnalités d'Ansible incluent :
- Automatisation des tâches informatiques : Ansible automatise les tâches informatiques telles
que la mise à jour de logiciels, la configuration du système et la gestion des utilisateurs.
- Gestion à distance : Ansible peut gérer les configurations de plusieurs systèmes informatiques
à distance, ce qui permet de gagner du temps et de l'efficacité.
- Modèles de Playbook: Ansible utilise des modèles de Playbook pour décrire les tâches à
exécuter sur les systèmes informatiques. Les Playbooks sont faciles à écrire et à maintenir, ce
qui les rend simples à utiliser pour les administrateurs système.
- Intégration avec d'autres outils : Ansible peut être intégré à d'autres outils tels que Puppet,
Chef, et SaltStack, ce qui permet une gestion centralisée des configurations.
- Plateforme multi-OS : Ansible peut gérer des systèmes informatiques sous diverses
plateformes telles que Linux, Unix, et Windows.

Stephanie MISSIAMENOU 58
59
- Modules pré-construits: Ansible propose de nombreux modules pré-construits qui peuvent être
utilisés pour effectuer des tâches spécifiques, tels que la gestion des utilisateurs, la mise en
place de la sécurité et la gestion de la mémoire.
- Scalabilité : Ansible peut être utilisé pour gérer les configurations de petits réseaux, mais
également de grands réseaux avec des centaines de systèmes informatiques. Il peut également
être déployé en tant que solution pour une utilisation à grande échelle.

Limites de Ansible :
- La difficulté à déboguer les erreurs : Ansible ne fournit pas de fonctionnalité de débogage
intégrée pour vous aider à identifier et à résoudre les erreurs dans vos scripts.
- La complexité accrue des scripts pour les scénarios complexes : Lorsque vous travaillez avec
des scénarios plus complexes, les scripts Ansible peuvent devenir plus difficiles à gérer et à
maintenir.
- La dépendance du modèle de déclaration : Ansible utilise un modèle de déclaration pour
décrire les configurations et les tâches. Ce modèle peut être difficile à comprendre pour les
nouveaux utilisateurs ou les personnes n'ayant pas d'expérience en programmation.
- La vitesse d'exécution : Ansible peut être lent lorsqu'il est utilisé pour gérer de grandes
infrastructures, car il doit traiter chaque tâche séparément.
- La limitation en matière de fonctionnalités : Bien que Ansible offre de nombreuses
fonctionnalités puissantes, il peut y avoir des cas où d'autres outils sont plus adaptés. Par
exemple, Ansible n'offre pas de fonctionnalités de surveillance en temps réel de vos
infrastructures.

Terraform et Ansible :
- Ils sont tous deux capables de mettre en place la nouvelle infrastructure cloud et de l'équiper
des composants applicatifs nécessaires.
- Sur la machine virtuelle fraîchement formée, les commandes à distance peuvent être exécutées
à la fois par Terraform et Ansible. Cela indique qu'aucun des deux outils ne nécessite
d'agent. Le déploiement de l'agent sur les ordinateurs n'est pas nécessaire pour des raisons
opérationnelles.
- Terraform construit une infrastructure en utilisant les API des fournisseurs de cloud, et SSH
est utilisé pour des opérations de configuration simples. Il en va de même pour
Ansible ; toutes les activités de configuration nécessaires sont effectuées via SSH. Les deux
outils sont sans maître puisque les informations « d'état » pour aucun ne nécessitent une
infrastructure distincte à gérer.

Critères\Solutions Terraform Ansible


Logiciel OPEN SOURCE OPEN SOURCE
Argent NON NON
Temps d’installation et de PEU ou LONG selon le PEU ou LONG selon le
configuration besoin besoin
Temps d’administration Selon la taille de Selon la taille de
l’infrastructure l’infrastructure
Modules NON OUI
Outil APPROVISIONNEMENT CONFIGURATION
Approche DECLARATIVE HYBRIDE bien qu’un peu
plus orienté PROCEDURAL
Propose une infrastructure OUI NON

Stephanie MISSIAMENOU 59
60
de construction
Bare Metal NON OUI
Packaging et templates Pas le meilleur support Support complet
Gestion de cycle de vie Ça dépend du cycle de vie NON
Automatisation de OUI OUI
l’infrastructure
Cloud OUI OUI
Multi-cloud OUI NON

Voici un tableau comparatif entre Terraform et Ansible. Nous pouvons voir qu’ils sont similaires sur
certains aspects et caractéristiques comme le type de logiciel, tous les deux Open source, « gratuits ».
Ils ont un temps de configuration et d’administration qui dépend grandement de la taille de
l’infrastructure. Plus elle est grande, plus le temps d’administration est long. Les 2 logiciels sont
couramment utilisés pour la gestion, l’administration et l’automatisation de l’infrastructure. Ils sont
tous les deux utilisés pour administrer un système Cloud. Terraform, est dans le cas, d’une
infrastructure cloud, meilleur, car il permet de gérer le multicloud, contrairement à Ansible.
Cependant, le reste diffère. Ansible ne propose pas un plan d’infrastructure lorsque celle-ci est en
construction contrairement à Terraform. Néanmoins, il suit une approche Hybride à penchant
procédurale. C’est-à-dire qu’il nous fournit des modules, détaillant des étapes, une par une afin
d’arriver au modèle d’infrastructure que nous voulons. Il propose aussi le Bare Metal. Donc nous
pouvons gérer et administrer des serveurs physiques avec Ansible, ce que nous ne pouvons pas faire
avec Terraform. Grâce aux playbooks, Ansible couvre un panel de fonctionnalités installable sur le
serveur concerné. Ansible contient des modules afin d’adapter la configuration que ne contient pas
Terraform. De plus, il ne gère pas le cycle de vie, à contrario de Terraform.
C’est pour cela, qu’après réflexion, nous choisissons Ansible. Il permet de gérer des serveurs
physiques, ce qui peut nous être un avantage si nous avions besoin de faire une configuration avec nos
machines physique, en adéquation avec nos machines virtuelles. Ensuite, nous n’utilisons pas Ansible
pour faire une infrastructure cloud. Terraform étant le plus adapté pour le cloud et en particulier du
multicloud, il ne nous est pas utile d’avoir un logiciel spécialisé. Il est fait pour de l’automatisation et
suit une approche procédurale bien que pouvant être hybride. Ce qui est un avantage car plus
modulable.

Analyse SWOT de Ansible :

Interne FORCES FAIBLESSES

Force : Faiblesse :
- Simplicité : Simplicité et facilité - Configuration complexe : La
d'utilisation. Il utilise le langage YAML pour configuration initiale peut être
décrire les tâches, ce qui le rend relativement complexe, en particulier lors de la mise
facile à apprendre et à comprendre. en place de l'authentification et des
- Automatisation : Automatisation puissante connexions sécurisées.
des tâches de configuration, de déploiement et - Performance : Dans certains cas, la
de gestion. Il permet d'automatiser des performance d'Ansible peut être un défi,
processus complexes et répétitifs, ce qui en particulier lors du déploiement de
permet de gagner du temps et d'améliorer configurations sur un grand nombre de
l'efficacité. nœuds. Cependant, des améliorations
- Agentless : Fonctionne de manière ont été apportées dans les versions
"agentless", ce qui signifie qu'il n'est pas récentes pour atténuer ce problème.
nécessaire d'installer d'agent sur les nœuds

Stephanie MISSIAMENOU 60
61
cibles. Cela facilite le déploiement et la
gestion à grande échelle.
- Large communauté : Communauté active et
en croissance. Il existe de nombreuses
ressources, tutoriels, modules et playbooks
disponibles, ce qui facilite le partage des
connaissances et l'adoption du logiciel.
- Intégration avec d'autres outils : Ansible peut
se connecter à une grande variété d'autres
outils et services, ce qui lui donne
l'opportunité de s'intégrer à des flux de travail
et des pipelines existants, renforçant ainsi son
utilité et sa pertinence.

Extern OPPORTUNITES MENACES


e
Opportunités : Menaces :
- Adoption croissante de l'automatisation : - Concurrents : Le marché des outils
L'adoption de l'automatisation des d'automatisation et de gestion de
infrastructures et des opérations est en configuration est concurrentiel, avec des
croissance constante. Ansible est bien concurrents bien établis tels que Puppet,
positionné pour capitaliser sur cette tendance Chef et SaltStack. La concurrence peut
et étendre son utilisation dans diverses créer des défis pour Ansible en termes
industries. d'adoption et de maintien de sa part de
- Intégration avec d'autres outils : Ansible peut marché.
se connecter à une grande variété d'autres
outils et services, ce qui lui donne
l'opportunité de s'intégrer à des flux de travail
et des pipelines existants, renforçant ainsi son
utilité et sa pertinence.

- Évolution des besoins technologiques : Les besoins et les technologies évoluent


rapidement dans le domaine de l'automatisation. Ansible doit continuer à évoluer et à
s'adapter pour rester pertinent et répondre aux besoins changeants des utilisateurs.

- Large communauté : Communauté active et


en croissance. Il existe de nombreuses
ressources, tutoriels, modules et playbooks
disponibles, ce qui facilite le partage des
connaissances et l'adoption du logiciel.

Stephanie MISSIAMENOU 61
62

Stephanie MISSIAMENOU 62
63

INSTALLATION ET TESTS DE ANSIBLE

Etapes :
Cette installation est découpée en plusieurs étapes :
- Installation de Apache et d’un environnement web sur un ou deux serveur(s) sous
Debian.
- Configuration du(es) serveur(s) web en local qui servira(ont) de node(s) pour la liaison
avec le node Ansible.
- Installation de Ansible sur un serveur sous Debian.
- Configuration de Ansible pour la configuration de paramètres afin d’automatiser
l’installation des postes ainsi que la liaison avec le(s) node(s) installé(s)
précédemment.
- Installation de AWX.
- Tests de AWX et playbook Ansible

Déroulé
Sur notre poste, on installe un hyperviseur, ici vmware pro 16. Avec l’hyperviseur, on crée une
machine virtuelle sous le système d’exploitation linux, distribution Debian 11. On lui met 2go de
RAM, 20 de ROM. La machine n’est pas lourde. On coche, lors de l’installation, le serveur SSH. C’est
grâce à ce protocole que les différents nodes vont pouvoir communiquer. L’installer maintenant est
donc un gain de temps. En effet, elle servira de test de liaison afin de vérifier la communication avec
le node Ansible et de faires des modifications de tests et de prise en mains du logiciel. Afin d’installer
Ansible, je devais choisir entre 2 distributions de Linux ; Debian et CentOS. Je partais sur une CentOS
où l’installation semblait plus facile. Cependant, je choisis finalement Debian 11 car les VM déjà
existantes formant l’infrastructure de l’entreprise étaient des Debian. Choisir une Debian serait donc
plus facile pour assimiler la nouvelle machine à l’ensemble de l’existant.
Une fois cela fait, on peut commencer la configuration de la machine pour la transformer en mini
serveur web de test.

Pour la suite, il nous faut installer les services Apache2 qui est un serveur web local, sur la machine
donc, ainsi, ainsi que PHP, un langage de programmation très utilisé pour le web, et mariaDB, un
gestionnaire de bases de données. Nous allons donc commencer par Apache2. Pour ce faire, il faut de
préférence (au choix ici car la machine est neuve) faire une mise-à-jour des services déjà existants sur
la machine. Nous nous connectons en root pour effectuer les tâches précédemment dites.

Su root
« on entre le mot de passe root »
apt install && apt upgrade -y

On entre la commande téléchargeant et installant les paquets Apache2. Nous sommes déjà en root,
donc il n’y a besoin de mettre « sudo » devant chaque commande.

Stephanie MISSIAMENOU 63
64

apt install apache2 -y

Une fois, cela fait on fait la même chose avec php.


apt install php -y
On va installer plusieurs paquets pour.
apt-get install -y php-pdo php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-
bcmath
on pourra taper « php -v » pour voir la version
on refait cette étape pour MariaDB.
apt install mariadb-server -y
puis pour la configuration de l’utilisateur root, on commencera la configuration avec cette commande :
mariadb-secure-installation
Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n] n


... skipping.

You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] Y


New password: **************
Re-enter new password: **************
Password updated successfully!
Reloading privilege tables..
... Success!

Une fois la configuration de LAMP terminé, on essaye de se connecter à SSH. On obtient une erreur
de connexion. Il nous en impossible de nous connecter en root sur la machine avec le SSH. Afin de
voir à quoi peut être due l’erreur on regarde dans les logs. On voit que la connexion n’est pas autorisée
avec le root.
On va donc dans le fichier /etc/ssh/sshd_config et on change la ligne PermitRootLogin de « no » à
« yes » puis on décommente la ligne.
Après modification de ce paramètre, la connexion root en SSH sur les autres machines était
opérationnelle. On doit néanmoins se connecter en utilisant le mot de passe de l’utilisateur, ce qui est
une sécurité insuffisante. Pour cela, on remplace le mot de passe par une identification pas clé SSH.
On génère donc une clé SSH dans le but de se connecter avec un utilisateur unique sur les machines.
Pour se faire, on crée un utilisateur uniforme, qui servira de connecteur entre toutes les machines. On
le nommera « ansible » pour des soucis de clarté.
Sur chaque machine :
Useradd ansible

Stephanie MISSIAMENOU 64
65
On renseigne un mot de passe, ainsi que les informations nécessaires. Ici, il n’y a que le mot de passe
donc on ne renseigne que ceci. Puis on teste l’authentification sur cet utilisateur pour vérifier qu’on a
noté le mot de passe correcte.
Une fois cela fait, sur le node manager, on génère une clé avec ce nouvel utilisateur, qu’on copiera sur
les nodes serveurs. Ça sera une authentification par clé, générée grâce à un algorithme de
cryptographie et non par mot de passe, ce dernier étant moins fiable qu’une authentification par clés.
Sur le node manager. Se connecter avec le nouvel utilisateur.
ssh-keygen
« une paire de clés c’est-à-dire une clé publique et une clé privée sont créées»
Pour la connexion sur les nodes annexes, dans l
e terminal, on entre la commande « ssh-copy-id <utilisateur@ip_de_la_machine> comme ceci :
ssh-copy-id ansible@192.168.249.128
La clé est copiée.
On fait la même chose avec le 2nd serveur.
ssh-copy-id ansible@192.168.249.129

On crée un nouveau fichier sur lequel sont inscrits les machines que lesquelles on a copié la clé
publique de l’utilisateur du node manager.
Une fois copiée sur les différentes machines, nous sommes authentifiés en tant qu’user ansible.
Cependant, soucieuse de bien cloisonner les autorisations, et, pour être sûre que aucun autre utilisateur
ne peut se connecter à la machine. En effet, on peut se connecter avec l’utilisateur ansible. Cependant,
il n’a pas les autorisations de lancer des commandes en tant que root. Pour celà, on va le lui permettre
en modifiant le fichier /etc/sudoers. On rajoute la ligne :
ansible ALL=(ALL) NOPASSWD:ALL
On installe à présent ansible.
Sudo apt update && apt upgrade
Sudo apt ansible
Maintenant qu’il peut lancer des commandes en tant que root, on va établir une liste de serveur sur
lequel cet utilisateur et uniquement lui peut s’authentifier afin d’en prendre le contrôle et faire des
modifications. En créant un fichier hosts dans le répertoire de ansible.
192.168.249.128 ansible_user=ansible
192.168.249.129 ansible_user=ansible

On renseigne l’ip, et/ou le DNS ainsi que l’utilisateur choisi. On peut même organiser ce fichier en
pool (ou groupe) ce qui nous permet de faire des modifications sur plusieurs machines en simultanée.

Cela fini, on teste la connexion en envoyant un ping de la machine manager vers les machines nodes
(ou annexes). On peut observer que le ping fonctionne et que les machines sont configurables.

Stephanie MISSIAMENOU 65
66
Pour avoir une vue d’ensemble sur les machines et sur l’avancée de l’automatisation, nous installation
l’interface graphique de Ansible qui se nomme AWX. La version de AWX choisie est la 17. Elle est
plus facile à installer car depuis les dernières versions de AWX, la méthode d’installation à changer.
Or les tutoriels trouvables mélangent les 2 méthodes d’installation, ce qui ne fonctionne évidemment
pas. Pour les versions 17 ou inférieures, AWX est téléchargé par le playbook install.ylm qui est LE
fichier fondamental pour l’installation de AWX. Dans les versions récentes, ce qui disparaît. Mais les
tutoriels l’incluent encore dans l’installation des fichiers AWX pour les versions récentes. Cela amène
donc des erreurs lors du téléchargement et l’installation des versions récentes de AWX.
Notre ressource est le tutoriel du site Howtoforge qui est le tutoriel le plus fiable trouvé.
Pour se faire, nous procédons ainsi.
- Installation des différentes dépendances de AWX
o Dépendances des fichiers
o Dépendances de docker
o Dépendances de python3
o Dépendances de pip
o Installation de jinja
- Installation de AWX via docker

Il faut donc, pour cette étape, taper une série de commandes d’installations de paquets. Il faut aussi
ajourner et/ou appeler les dépôts d’où ces paquets seront installés. Nous modifions une série de
fichiers miroirs.

On commence par installer les 1ères dépendances :


apt-get install apt-transport-https ca-certificates software-properties-common unzip gnupg2 curl git -
y

Ensuite, on édite de fichier /etc/apt/sources.list, qui est le fichier contenant la liste des dépôts. On
ajoute le dépôt à partir duquel on va installer les paquets pour le téléchargement, l’installation et le
fonctionnement de Ansible :
deb http://ppa.launchpad.net/ansible/ansible/ubuntu focal main
On sauvegarde pour que la modification soit prise en compte. On ajoute la clé GPG :
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
On obtient les informations suivantes ce qui est bon signe :
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
Executing: /tmp/apt-key-gpghome.47eo2M3Kib/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-
keys 93C4A3FD7BB9C367
gpg: key 93C4A3FD7BB9C367: public key "Launchpad PPA for Ansible, Inc." imported
gpg: Total number processed: 1
gpg: imported: 1

on fait une mise-à-jour de la machine avec apt-get update -y. puis on réinstalle Ansible (être attentif
ici, on y reviendra tout à l’heure), apt-get install ansible -y. Pour voir la version de Ansible, ansible –
version.

Stephanie MISSIAMENOU 66
67

Comme nous voyons, la version installée est la 2.14.2. Nous y revenons tout à l’heure.

Nous passons au répertoire Docker CE et ses dépendances. Pour ce faire depuis le dépôt Docker, nous
téléchargeons le fichier « docker-archive-keyring.gpg » :

curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o


/usr/share/keyrings/docker-archive-keyring.gpg

Ensuite, on crée le fichier docker.list, dans le lequel on inscrit la ligne suivante :


echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg]
https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee
/etc/apt/sources.list.d/docker.list

Dans cette ligne, figure l’architecture de la machine (amd64), le lieu de stockage de la clé GPG, ainsi
que le lien du dépôt.

On refait une mise-à-jour et on installe docker CE.

apt-get update -y
apt-get install docker-ce -y

Pour voir la version et le statut de docker, les commandes ci-dessous sont utiles :

systemctl status docker


docker -v

la version de docker et celle du build :


Docker version 23.0.1, build a5ee5b1

On passe à l’installation de Docker Compose et des autres dépendances :

wget https://github.com/docker/compose/releases/download/1.29.0/docker-compose-Linux-x86_64

C’est le dépôt à partir duquel on va importer le binaire de Docker compose. On le déplace vers le
répertoire /usr/bin, dans lequel on va le mettre :

mv docker-compose-Linux-x86_64 /usr/bin/docker-compose

on va ensuite changer les autorisations de ce dossier en lui ajoutant le droit d’exécution afin qu’il
exécute le binaire dont on a précédemment modifié l’emplacement :

chmod +x /usr/bin/docker-compose

Pour voir la version de Docker Compose:


docker-compose version

Le résultat suivant s’affiche :

Stephanie MISSIAMENOU 67
68
docker-compose version 1.29.0, build 07737305
docker-py version: 5.0.0
CPython version: 3.7.10
OpenSSL version: OpenSSL 1.1.0l 10 Sep 2019

Il nous reste à installer comme dépendances NodeJS, NPM, Python3 et PIP, avant de procéder à
l’installation de l’interface AWX. Concernant l’installation de PIP3, on spécifie la version déjà
existante de Docker Compose pour éviter les problèmes de compatibilité entre paquets (tiens donc !).
La version de Compose sur la machine est la 1.29.0. Avec les commandes suivantes :

apt-get install nodejs npm -y


npm install npm --global
apt-get install python3-pip git pwgen -y
pip3 install docker-compose==1.29.0

Maintenant, la dernière installation concernant AWX ; son interface. Dans le répertoire root, on
importe le fichier en format zip depuis le dépôt, qu’on unzip :

wget https://github.com/ansible/awx/archive/17.1.0.zip

unzip 17.1.0.zip

Une arborescence de fichier est installée. Avec la commande cd awx-17.1.0/installer/, on se déplace


dans le but d’être dans ce répertoire et on génère une clé (encore !) qu’on inscrira dans le fichier
inventory après.
pwgen -N 1 -s 30
<une clé est générée>

Cette commande génère une clé de 30 caractères.


On édite le fichier inventory et on change les ligne admin_user qui définit un nom d’utilisateur admin,
admin_password, le mot de passe administrateur, et la secret_key=, où l’on place la clé qu’on vient de
générer.
nano inventory

<changement de ces lignes>


admin_user=admin
admin_password=securepassword
secret_key=dGF8eiFiTkzpaqpWyckxSLe57sZNfJ (c’est pas la vraie clé quand même !)

on installe le playbook install.yml, playbook de l’interface.


ansible-playbook -i inventory install.yml

Et cela fonctionne… OU PAS !

Stephanie MISSIAMENOU 68
69

Un énorme message d’erreur vient interrompre l’installation.



Après vérifications et aides, cela venait de la version de Ansible, la 2.14.2, qui n’était pas compatible
avec la version de AWX. En effet, la version 2.14.2 fonctionne avec les dernières versions de AWX,
soit, de la 18 à la dernière, la 21.
Pour en arriver là, il a fallu investiguer. On a d’abord regardé les versions de python, pip, docker, jinja
et ansible. Les versions semblaient à jour et jusque-là, on ne faisait pas encore le lien. On a ensuite
regardé dans le fichier apt/sources.list s’il n’y avait pas un conflit de paquets. Nous avons testé en
commentant les différents dépôts installés un à un. Pour le dernier dépôt, il y’eu une trouvaille.
On a donc réessayé d’installer Ansible. Et on remarque un truc.

On remarque un conflit de nouvelles dépendances seront installées avec … une mise-à-jour de


Ansible. Nous avons donc axé notre recherche autour de Ansible. Dans le fichier apt/sources.list. Il
y’eu effectivement un conflit de fichier de Ansible provenant de différents dépôts. Nous commentons
l’avant dernier dépôts de la liste de apt/sources.list. Ainsi que la mise-à-jour du paquet de Ansible
nous apparût.
En effet, le problème venait de l’avant-dernier dépôt que nous avons installé. Nous avions
précédemment installé une version de Ansible lors de l’installation de la machine. C’est cette version,
la 2.14.2 qui, en étant suérieure à celle dont nous avons besoin, était donc incompatible avec les
versions de Pythons, Docker, Jinja et autres. Pour ce faire, il fallait donc commenter le dépôt source de
la version de faire une mise-à-jour de Ansible via le dernier dépôt installé pour que cette version soit
compatible avec Python, Docker, Jinja et toutes les autres dépendances nécessaires à l’installation de
AWX.

Stephanie MISSIAMENOU 69
70
Une fois la mise-à-jour faite, nous relancions le programme d’installation de AWX et ce fut un succès.
Enfin !

Avec cette interface, nous pouvons voir les machines administrées par AWX sur le node principal, les
jobs en attente, en cours, terminés, les flux. Ce qui est idéale pour avoir un visuel graphique de nos
machines et de leurs configurations. On peut aussi lancer en ligne de commande des playbooks, qui
exécuteront la tâche demandée.

On pouvait enfin tester un des playbooks afin de faire la prise en main d’Ansible et enregistrer les
1ères configurations. Il existe une bibliothèque de playbooks que l’on peut télécharger et installer sur
la machine node manager. Ensuite, on lançait la commande depuis ce node sur les nodes receveurs
afin que les commandes dans le playbook s’exécute sur ces machines. Pour cela, on utilisait le pool de
machines virtuelles créé sur lesquels on exécutait les playbooks comme ceci :
ansible-lint verify-apache.yml
Cette commande sert à savoir si Apache est installé avec sa dernière version sur les machines
virtuelles concernées. Cette commande nous retourne le résultat. Faire de cette manière, en exécutant
les commande depuis les nodes Manger est plus précise et plus fiable car elle exécute les commandes
sur les machines simultanément au lieu d’une par une.
Faire cette commande nous prend Littéralement 5 minutes. Si on avait dû passer sur les machines une
par une, sachant qu’on a une centaine de machines nous aurait pris une APRES-MIDI !!
Ceci est un test de 1er ordre mais qui donne un résultat concluant. C’est un gain de temps conséquent.
Il faut améliorer les tests en associant les playbooks, les uns avec les autres pour avoir une
fonctionnalité entière à ajouter sur les nodes. Mais le début est prometteur et les tests sont très
satisfaisants.
A l’avenir, l’idéal serait de pouvoir installer des postes utilisateurs avec Ansible. Seulement, ces
postes sont en Windows et Ansible n’est pas le plus optimisé pour Windows. On pourrait le combiner
avec Windows AD Manager pour ergonomiser et harmoniser le côté serveur et le côté utilisateur.

Stephanie MISSIAMENOU 70
71

Conclusion :

J’ai effectué mon master Informatique réseaux et sécurité en alternance pendant 2 ans dans
l’entreprise APPSOLUTION/Vaultinum. Mes missions dans l’entreprise concernaient la sécurité,
notamment celle des réseaux de l’entreprise comme l’installation de postes et l’assistance utilisateurs,
maintenance du parc informatique, accueil et gestion des utilisateurs, répertoriage du matériel de
l’entreprise.
Pendant mon alternance dans la société, je me suis aperçue que bien qu’en nombre insuffisant,
toutes les installations, les gestions, mises-à-jour et configurations étaient faites manuellement. Cela
pose plusieurs problèmes. Premièrement, un souci de temps. Comme je le disais précédemment, étant
débordés par les différentes tâches à réaliser dans l’objectif d’optimisation du système d’information,
nous perdions beaucoup de temps à réaliser les tâches une par une, manuellement. Deuxièmement,
nous perdions de l’énergie à répéter ces étapes à chaque modification que nous devons apporter.
Troisièmement, cela pose un souci de sécurité. Car nous risquions des erreurs à chaque nouvelle
manipulation, ce qui pouvait potentiellement créer une faille dans le SI.
Nous avons donc étudié plusieurs solutions qui répondent aux problèmes auxquels nous faisons
face. Suite à cette étude, nous avions 2 solutions et choisi celle qui correspondait le mieux aux critères
d’administration et aux besoins de la société. Terraform et Ansible. Nous devions pour cela faire une
veille, se documenter et les comparer pour mieux choisir. Nous avons regardé les différentes options
proposées, les avons mesurées à la demande de l’entreprise, pesé les avantages apportés et les
inconvénients portés. Nous les avons opposées pour trouver la plus avantageuse.
Ensuite, une fois choisie, nous avons démarré le processus d’installation en plusieurs étapes de
Ansible afin de procéder aux tests de mise en situation de ce logiciel. Nous l’avons choisie car elle
remplissait le mieux les critères de sélection à savoir, premièrement, la compatibilité avec
l’infrastructure existante. Ansible est une solution pour les machines tournant avec des distributions de
linux. Deuxièmement, car elle possède une approche hybride et utilise un système de playbooks qui
nous permet de créer nous-mêmes les configurations dont nous pourrions avoir besoin. Il peut
également de gérer des machines Windows avec Ansible mais le processus est plus complexe et
nécessite le déploiement d’agents. Nous avons donc mis en place un environnement logiciel, de tests
en créant 3 machines virtuelles, 3 machines Debian 11, une manager et 2 nodes imitant le
comportement de l’infrastructure de l’entreprise. Pour mieux comprendre la gestion de Ansible, et de
tester les différentes options. Ainsi pour valider notre choix initial .
Il faudra sur le court terme, améliorer notre compréhension de Ansible, ce qui est déjà en bonne
voie. Ensuite, le déploiement de la solution sur l’architecture générale de l’entreprise où nous
observerons davantage pour améliorer le paramétrage. Nous devrons ajuster des paramètres dans le but
de gagner encore plus de temps sur l’administration.
Nous devons, à moyen terme, intégrer et observer le comportement de la solution afin d’ajuster au
maximum les configurations afin de maximiser le temps de gestion des tâches et des jobs sur les
machines, fournir un service de sécurité optimal, ce qui nous fera économiser de l’énergie que nous
mettrons ailleurs. Ainsi Ansible nous permettra de gérer le déploiement de nouvelles fonctionnalités
lors de l’agrandissement, déjà en cours de l’infrastructure de l’entreprise avec le nouveau datacenter
de Genève. Il faudra donc pouvoir l’y intégrer quand il sera prêt.
En effet, il se pose une question sur la manière dont nous voudrons agencer Ansible. Ansible est
un logiciel en priorité pour les machines Debian. Bien que nous ayons une majorité de machines
Debian, nous avons des machines Windows server. La gestion de ces machines, avec Ansible risque
de s’avérer compliqué. Pourtant, ça harmonisera la gestion de machines virtuelles, indépendamment
de leur Système d’exploitation. Seulement, Ansible n’est pas le mieux pour les machines Windows
server. Une autre option, serait dans ce cas-là d’utiliser l’AD avec AD Manager pour l’installation de

Stephanie MISSIAMENOU 71
72
modules et l’automatisation des machines Windows et d’installer Ansible pour la même fonction mais
cette fois-ci des machines Linux. De cette façon, chaque machine et type de machines aura les
meilleures optimisations en fonction de son OS. Cependant, cela pose des problèmes sur
l’uniformisation des machines de l’entreprise en nous faisant passer un peu plus de temps sur les
logiciels de configurations. C’est une question pour laquelle, il nous faut trouver une réponse.
Sur le long terme, il nous faut aussi la préparer à l’ajout de prochains composants et/ou nouvelles
solutions pour que le système soit le plus imperméable possible, ainsi que maintenir le travail de veille
pour que la qualité du système d’information ne se dégrade. Equilibrer dans le but d’avoir les
applications adéquates sans alourdir l’infrastructure informative. Mettre tout à niveau et garantir ce
niveau constant.

J’ai effectué 2 ans de développement pour ensuite me réorienter en réseaux. J’y ai fait une 3 ème
année en Bachelor Réseaux puis, 2 années de master informatique option réseaux et sécurité. J’ai
beaucoup appris pendant ces 5 ans, sur le monde de l’informatique et sur le monde du travail. J’ai
beaucoup aimé la 3ème année car elle m’a permis de réellement plonger dans le monde du travail et ses
exigences. Cela m’a fourni une expérience supplémentaire. J’ai ensuite continué sur mes 4 ème et 5ème
années dans le même domaine mais dans une différente entreprise afin de voir d’autres mieux, et
d’avoir d’autres points de vues. Il y’a différentes manières de gérer une infrastructure réseaux. Les
besoins ne sont pas les mêmes selon les entreprises. C’est pour cela qu’il faut être polyvalent. Afin de
pouvoir s’adapter à n’importe quel contexte. J’ai par la même occasion pu mettre à profit ce que
j’apprenais en cours Ce n’était plus seulement de la théorie mais de la pratique. Du concret.
Ce qui me fascine avec l’informatique est la diversité des domaines que cela recouvre. Considéré
comme un secteur d’avenir, il est toujours en progression et en évolution constante. Ainsi, il est un
nouvel enjeu du monde actuel. Il le modèle sans pour autant s’en soustraire, tout en faisant parti.
J’ai effectué 5 ans d’informatique, d’abord 2 ans en développement, puis 3 ans de réseaux. J’ai
énormément appris pendant ces années. Ce que j’ai appris, je dois maintenant le mettre en pratique
dans la vie de tous les jours, au travail. Ce que je retiens est qu’il me reste encore beaucoup à
apprendre. L’informatique est un domaine, non, un monde en constante évolution. C’est 5 ans ne sont
pas la fin de quelque chose, mieux encore. Cela ne fait que commencer.

Stephanie MISSIAMENOU 72
73

Bibliographie :

Site de l’entreprise :
https://www.app.asso.fr/nos-solutions

Site "nos sociétés" :


https://www.societe.com/societe/app-solutions-519136170.html

Les fonctions de l’entreprise :


CELOG_PART_STATUS V2.doc

Comparaisons Ansible vs Terraform :


https://k21academy.com/ansible/terraform-vs-ansible/#:~:text=Terraform%20is%20a%20tool
%20designed,for%20automation%20across%20various%20domains.
https://www.ansible.com/blog/ansible-vs.-terraform-demystified

Installation et configuration de Ansible :


https://www.it-connect.fr/installer-un-serveur-lamp-linux-apache-mariadb-php-sous-debian-11/
https://linuxhint.com/install_ansible_debian10/
https://www.howtoforge.com/how-to-install-ansible-awx-on-debian-11/

Pour aller plus loin :


https://docs.ansible.com/ansible/latest/collections/index_module.html#ansible-windows

Stephanie MISSIAMENOU 73
74

Annexes

Création des machines, installation des serveurs LAMP, connexion en SSH en root

Figure 1 : Montrant la 1 ère machine installé (je n’ai pas pris des photos de chaque étape de
l’installation, sans quoi nous seront déjà à 10 pages d’annexes) servant de serveur web test. Le service
SSH a été installé au préalable, nous épargnant des étapes et nous faisant gagner du temps.

Figure 2 : prise de contrôle de la machine en superutilisateur et mise-à-jour de celle-ci.

Stephanie MISSIAMENOU 74
75

Figure 3 : montrant le service Apache fonctionnant et actif pour les étapes suivantes

Figure 4 : Montrant la finalisation de PHP ainsi que sa version, dans ce cas, la 7.4.33

Stephanie MISSIAMENOU 75
76

Figure 5 et Figure 6 : montrant la commande d’installation de MariaDB et son aptitude à fonctionner.


Il faut maintenant le configurer pour que les utilisateurs de la machine puissent se connecter aux bases
de données.

Figure 7 : Commande de configuration des utilisateurs de la base. Il faut lui créer un mot de passe, et
lui renseigner des informations sur son organisation si nécessaire. Ce n’est pas le cas ici.

Stephanie MISSIAMENOU 76
77

Figure 8 : IP de la machine. Cela nous aidera pour la connexion SSH.

Figure 9 : Erreur d’authentification lors de la connexion en SSH à la machine.

Stephanie MISSIAMENOU 77
78

Figure 10 et figure 11: On décommente la ligne « PermitRootLogin » afin que l’utilisateur root puisse
se connecter en SSH à la machine.

Figure 12 : On peut constater que la rectification fonctionne. On doit néanmoins se connecter en


utilisant le mot de passe de l’utilisateur, ce qui est une sécurité pas assez grande. Pour cela, on
remplacera le mot de passe par une identification pas clé SSH.

Création de l’utilisateur, génération des clés SSH, copies des clés publiques sur les machines

nodes.
Figure 13 : Commande servant à la création de l’utilisateur.

Stephanie MISSIAMENOU 78
79
Figure 14 : Génération de la clé SSH pour la liaison des nodes vers le node manager hébergeant
Ansible.

Figure 15 et figure 16 : Commande de copie de la clé publique SSH vers les nodes pour assurer une
authentification de l’utilisateur sans mot de passe.

Figure 17 : pour se connecter avec l’utilisateur ansible sans mot de passe.

Installation de Ansible

Stephanie MISSIAMENOU 79
80

Figure 18 : Configuration du fichier hosts afin d’avoir la liste des machines administrables avec le
node MANAGER

Figure 19 : Fichier Inventory où sont répertoriées les machines et les groupes. Ce fichier sert, lors
d’une manipulation, à savoir quelles machines sont impactées par.

Figure 20 : Après la génération et la copie des clés sur les nodes, on peut se connecter avec la clé
publique sur le node, sans avoir besoin de mot de passe.

Stephanie MISSIAMENOU 80
81

Installation de AWX

Figure 21 : Installation des dépendances pour le télécharger AWX.

Figure 22 et Figure 23 : Liste des dépôts

Figure 24 à 28 : installation de la dépendance Docker

Stephanie MISSIAMENOU 81
82

Figure 29 : Installation de Docker, de ses dépendances depuis le dépôt dans les dépôts ci-dessus.

Figure 30 et figure 31 : commande afin de voir la version de docker, installation et version de docker-
compose, ainsi que le changement de permission du fichier de configuration de docker compose.

Figure 32 : Installation de nodejs npm, une des dépendances de AWX.

Stephanie MISSIAMENOU 82
83

Figure 33 : Installation de npm.

Figure 34 et figure 35 : installation de python3, git, docker-compose

Figure 36 et figure 37 : Installation sur le serveur de AWX depuis un fichier zip.

Figure 38 : déploiement de AWX.

Stephanie MISSIAMENOU 83
84

Figure 39 et figure 40: Montrant les erreurs pendant l’installation de AWX. Le problème venait de la
version d’Ansible trop récente.

Figure 41 : AWX après la rectification et la mise-à-jour de ansible et la réinstallation de AWX.

Stephanie MISSIAMENOU 84

Vous aimerez peut-être aussi