Rapport de Stage Emmanuel MOMBO
Rapport de Stage Emmanuel MOMBO
Rapport de Stage Emmanuel MOMBO
SOMMAIRE
GLOSSAIRE..................................................................................................................................................
DEDICACE....................................................................................................................................................
REMERCIEMENTS.....................................................................................................................................VII
INTRODUCTION............................................................................................................................................
Section 1 : Remarques..............................................................................................................................
I
Section 2 : Suggestions.............................................................................................................................
CONCLUSION..............................................................................................................................................
WEBOGRAPHIE :.........................................................................................................................................
Annexe 2 : playbook.......................................................................................................................................
II
GLOSSAIRE
NAPALM: Network Automation and Programmability Abstraction Layer with Multivendor support
III
LISTE DES FIGURES
Figure 1 : Organigramme de ST DIGITAL
Figure 2 : plan de contrôle et plan de données
Figure 3 : Automatisation de réseaux
Figure 4 : Pile du protocole NETCONF
Figure 5 : Cisco DNA Center
Figure 6 : Ansible
Figure 7 : Modèle d'infrastructure Cisco Tier-3
Figure 8 : fichier de configuration Ansible
Figure 9 : Inventaire de l'infrastructure
Figure 10 : Playbook de la configuration des hostname
Figure 11 : playbook de la création des vlan
Figure 12 : playbook de configuration des vlan
Figure 13 : playbook de configuration du HSRP
Figure 14 : Playbook du trunk des interfaces
Figure 15 : Playbook de la configuration du DHCP
Figure 16 : Configuration de Etherchannel
Figure 17 : Playbook de l'adressage
Figure 18 : Dictionnaire de l'adressage
Figure 19 : Template de l'adressage
Figure 20 : Configuration du protocole OSFP
Figure 21 : Lancement d'un playbook
Figure 22 : exécution d'un playbook
Figure 23 : portail Microsoft 365
IV
LISTE DES TABLEAU
V
DEDICACE
A ma famille…
VI
REMERCIEMENTS
Je voudrais tout d’abord remercier le tout puissant et miséricordieux pour la force et la patience qu’il
m’a donné afin de réaliser ce modeste travail. Je tiens également à remercier mes encadreurs Monsieur
Raoul OSSENE et Monsieur Jonathan KOUOH pour leur disponibilité, l’aide et les précieux conseils
qu’ils m’ont apportés durant toute la période de ce stage. Mes remerciements vont à l’endroit du corps
professoral et administratif de l’Institut National de la Poste et des Technologies de de l’Information et
de la Communication (INPTIC) dont :
A mon père Jean Olivier MOMBO qui m’as transmis la passion que j’ai aujourd’hui pour
l’informatique, à ma mère MOMBO Angèle qui m’a toujours soutenu et poussé à aller de l’avant, à mes
sœurs et a mes frères pour leurs soutiens tout le long de cette année.
Enfin, je tiens également à remercier la société ST DIGITAL qui a bien voulu m’accueillir dans ses
locaux à travers son Directeur Madame Laïka MBA, de m’avoir donné l’occasion d’effectuer mon stage
au sein de l’entreprise dont elle a la charge et enfin à remercier tout le staff de ST DIGITAL pour
l’accueil chaleureux et la bienveillance dont il a fait preuve.
VII
INTRODUCTION
ST DIGITAL est situé dans le quartier Bessieux, au 3ème étage de l’Immeuble COFINA, c’est une
Entreprise de Services Numériques qui accompagne les entreprises dans leurs transformations digitales.
Quelque soit la taille ou le secteur d’activité d’une entreprise moderne, le passage au numérique est un
enjeu majeur. En effet que ce soit pour la gestion des documents, le stockage, le traitement des
informations, la collaboration, le numérique est une solution qui répond parfaitement aux besoins des
entreprises dans le contexte actuel. La récente pandémie nous a encore montré toute l’importance des
solutions telle que le télétravail. C’est dans ce cadre que la société ST DIGITAL offre aux entreprises
ses services.
L'infrastructure réseau est l'ensemble des équipements, des logiciels, et des services qui permettent de
connecter les ordinateurs et les autres équipements informatiques entre eux. Elle peut inclure des
routeurs, des commutateurs, des passerelles, des pare-feux, des serveurs d'application, et d'autres
équipements. Elle permet de créer des réseaux locaux et étendus qui permettent aux utilisateurs de
partager des données, des fichiers, des applications, et de communiquer en ligne. Les réseaux locaux
peuvent couvrir une zone géographique limitée, comme un bâtiment ou un campus.
Les infrastructures réseaux doivent respecter des modèles de conception qui en assure la résilience. Les
architectures Tier-3 de Cisco par exemple sont des modèles qui répondent aux besoins des entreprises
dans le contexte actuel. Mais ces dernières peuvent représenter un grand nombre de périphériques
réseaux à administrer, ce qui peut représenter une charge de travail énorme pour les administrateurs,
occasionnant des erreurs, et plus généralement une mauvaise gestion du réseau. Il faut donc disposer
d’outils pour l’automatisation du réseau, notamment de certaines tâches répétitives facilitant la vie du
personnel.
C'est donc durant ce stage au service Infrastructure et Cloud, que nous avons eu pour projet de faire une
étude de l’automatisation d’une infrastructure réseau avec Ansible, afin d’en apprendre le
fonctionnement dans ce cas d’usage bien précis. En vue de relater de manière fidèle et analytique le
compte rendu des mois passés au sein de la société ST DIGITAL, il apparaît logique de présenter à
préalablement l’entreprise, de présenter les outils et protocoles de configuration enfin de présenter et
déployer Ansible.
VIII
Première Partie : Présentation de ST DIGITAL
ST DIGITAL est une société de services numériques panafricaine dont la mission est l'accompagnement
des entreprises à la transformation digitale et les services cloud. Elle est actuellement présente dans 6
pays de la sous-région (Cote Ivoire, Cameroun, Togo, Bénin, Congo et Gabon) et dessert ses clients
dans toute l'Afrique de l'Ouest et Centrale.
Créée en octobre 2020, la filière locale STD GABON, est la plus jeune filière du groupe STD.
La Formation
Le Conseil en transformation digitale
L'Infrastructure et le Cloud
Les outils de travail collaboratifs
Les solutions métiers
La cybersécurité.
ST DIGITAL est également le premier acteur indépendant à opérer un Datacenter de catégorie Tiers 3
en Afrique Centrale. L'offre de service Datacenter de ST DIGITAL se compose du IAAS (Infrastructure
as a Service), du SAAS (Software as a Service) et de la colocation d'équipements.
Étant partenaire officiel de MICROSOFT, ORACLE et SAP. Les services de ST DIGITAL vont de la
formation officielle des éditeurs MICROSOFT, SAP et ORACLE jusqu’aux Audits SI & Conseils en
système d’information en passant par l’intégration, le support et la tierce maintenance applicative sur les
applications MICROSOFT, ORACLE et SAP.
Le siège de ST DIGITAL est situé au quartier Bessieux au 3ème étage de l’immeuble Cofina.
IX
Section 2 : Organisation et Fonctionnement de ST DIGITAL
Comme toute entreprise, ST DIGITAL dispose d’une hiérarchie pour assurer son bon fonctionnement.
Elle assure le pilotage de l’entreprise. C’est la direction qui dicte la politique de l'entreprise, choisit les
différents prestataires de services, et représente l’entreprise aux yeux de l’état. Elle est sa voix et son
porte-parole.
Elle est chargée de l’administration de l’entreprise, et de la gestion des finances de cette dernière. Elle
débloque le budget des différents projets, s’assure du paiement de diverses charges, taxes et salaires.
C’est aussi elle qui gère la trésorerie de l’entreprise.
Elle est responsable du montage des propositions commerciales, de la gestion des relations avec les
partenaires, et s’assure du suivi de l’exécution des projets.
Sa principale fonction est la réalisation de projets, et le support technique avant-vente. C'est le service
technique qui supervise et gère les consultants.
L'Office Manager est chargé de la logistique et de l’administration du bureau. Il est chargé des
formalités administratives, des courses diverses, du point d’accueil, de la logistique des sessions avant
pendant et après ces dernières, de l'accueil et de la gestion de la logistique des membres du groupe ST
DIGITAL en séjour au Gabon.
X
2.8 - le Commercial :
Il se charge de vendre l’offre de service ST DIGITAL aux entreprises, aux particuliers et aux
gouvernements. Il est responsable de la prospection, de la rencontre des clients, de la préparation des
offres, du suivi, et du pilotage commercial. Elle bénéficie de formation en cas de disponibilité.
Il est chargé du déploiement et de la gestion de projet. Il doit avoir les compétences nécessaires pour
conduire les missions qui lui sont attribuées. Il fait aussi des démonstrations d’offre de solutions
techniques aux clients, aide à rédiger les offres et les réponses aux appels d’offres en support de la
Direction des Operations. Il bénéficie lui aussi de formation afin de monter en compétences.
XI
Chapitre 2 : Présentation du Service Technique
Le service technique de ST DIGITAL est sous la tutelle de la direction technique de l’entreprise. Elle est
divise en V-TEAM qui s’occupe chacune un secteur particulier dans l’offre des services de l’entreprise :
Nous avons passé un entretien avec Jonathan KOUOH, Consultant senior ensuite avec Carine de la
Direction des Services afin de discuter des compétences académiques, et des expériences
professionnelles précédentes. C'est au sein de la V-TEAM Infrastructure et Cloud que nous avons été
intégré en tant que consultant junior, sous la supervision de Jonathan au terme de ses entretiens.
Dès lors, nous avons dû nous familiariser avec les produits et services que propose notre entreprise,
notamment à travers des séances de formation. Aussi, nous avons été affecté à un poste, et associé aux
différents projets en cours, d’abord pour une période d’observation dans un premier temps, ensuite une
fois familiarisé, nous sommes intégrés aux différents projets selon les besoins de l’entreprise.
XII
Deuxième Partie : Automatisation des réseaux avec Ansible
Chapitre 1 : Généralité sur L’automatisation des réseaux
Section 1 : L’automatisation des réseaux
La définition d’un réseau dans les technologies de l’information peut être la mise en relation d’au moins
deux systèmes informatiques. Cette connexion peut se faire par plusieurs moyens physique ou virtuel.
Le réseau le plus basique comporte deux ordinateurs connectés entre eux, chacun ayant accès aux
données de l’autre, ils peuvent partager des ressources, comme du stockage, des programmes, des
périphériques…
Mais avec l’avènement d’internet, ces systèmes informatiques peuvent aussi entre deux infrastructures
composées de plusieurs équipements réseaux, tels que des modems qui servent à transmettre des signaux
numériques via des supports analogiques ; des routeurs, qui assurent la retransmission des données
(paquets) en traçant un chemin dans l’océan des équipements réseaux interconnectés, à l’aide de
différents protocoles de routages ; les commutateur ou switch qui servent à interconnecter plusieurs
éléments d’un réseau interne, tout en gérant les informations sur le routage, la sécurité ou la
segmentation des réseaux.
La croissance des entreprises, telles que les opérateurs internet, les CDN (Content Delivery Network) ou
encore les grandes firmes et administrations les amènent à investir de plus en plus dans les réseaux pour
leur administration, leurs extensions, ou encore leur modernisation. En effet ces opérations peuvent être
couteuses, en temps, en mains-d’œuvre et en argent. L'administration de tel réseau composé de centaines
d’équipements peut s’avérer fastidieuse.
Dans le domaine des réseaux, un plan est une conception abstraite de l'endroit où se déroulent certains
processus. Les deux plans couramment référencés dans les réseaux sont le plan de contrôle et le plan de
données.
XIII
Le plan de donnée est la partie d’un réseau qui contrôle la façon dont les paquets sont acheminés, c’est-
à-dire comment les données sont envoyées d’un endroit à un autres. Comme exemple, le processus de
création d’une table de routage, est considéré comme faisant partie du plan de contrôle.
Le plan de données contrairement au plan de contrôle, qui détermine comment les paquets doivent être
transmis, transmet réellement les paquets. Le plan de données est également appelé plan
d'acheminement.
De façon général chaque équipement réseaux comporte son plan de contrôle et son plan de données.
Pour les réseaux classiques, chaque équipement doit être configurer individuellement, tout en tenant
compte de la configuration des autres équipements. Cela représente un cout énorme en temps, en
praticité et les erreurs sont difficile à détecter (propice aux erreurs), car il faut repasser sur chacun des
équipements afin d’inspecter les configurations effectuées.
Il est difficile de parler de l’automatisation des réseaux sans comprendre la notion de devops, et
d’infrastructure as code. Le DevOps est un mouvement culturel et une approche des processus d'affaires
qui visent à améliorer la collaboration et l'efficacité des équipes informatiques en intégrant les pratiques
de développement logiciel et d'exploitation informatique. L'automatisation des réseaux et l'Infrastructure
XIV
as Code (IaC) sont des éléments clés du DevOps, car ils permettent d'automatiser les tâches répétitives
et les processus de déploiement d'infrastructure et d'application.
L'automatisation des réseaux peut être réalisée à l'aide d'outils logiciels tels que Ansible, Puppet, ou
Chef. Ces outils permettent de créer des scripts ou des "recettes" qui décrivent les tâches à accomplir
pour configurer et déployer l'infrastructure et les applications. Ces scripts peuvent être exécutés de
manière automatisée, ce qui permet de gagner du temps et d'éviter les erreurs humaines.
L'Infrastructure as Code (IaC) est une approche qui consiste à décrire l'infrastructure informatique sous
forme de code, plutôt que de la configurer manuellement. Cela permet de rendre l'infrastructure plus
facile à gérer et à maintenir en utilisant les mêmes outils et les mêmes processus que pour le
développement logiciel. En utilisant l'IaC, les équipes informatiques peuvent également intégrer
l'infrastructure dans le cycle de développement logiciel, ce qui leur permet de déployer et de mettre à
jour l'infrastructure de manière rapide et fiable.
En résumé, le DevOps utilise l'automatisation des réseaux et l'Infrastructure as Code (IaC) pour
améliorer la collaboration et l'efficacité des équipes informatiques en automatisant les tâches répétitives
et les processus de déploiement d'infrastructure et d'application. Cela peut accélérer la livraison de
nouvelles fonctionnalités et améliorer la qualité des logiciels en utilisant des méthodologies agiles et en
intégrant l'infrastructure dans le cycle de développement logiciel.
XV
Figure 3 : Automatisation de réseaux
Dans cette partie, nous présentons les différents outils que nous pouvons utiliser pour l’automatisation
des réseaux, la programmation, les scripts, les solutions propriétaire
Il existe plusieurs solutions pour automatiser un réseau. La plupart des solutions d’automatisation de
réseaux se situent entre deux extrêmes : l’automatisation a l’aide de script Shell et le logiciel
d’automatisation, en passant par les modules de programmation. Aussi ses solutions utilisent des
protocoles que nous commencerons par définir.
XVI
Le protocole SSH a été conçu avec l'objectif de remplacer les différents protocoles non chiffrés comme
rlogin, Telnet, rcp et rsh.
Par défaut, le protocole SSH utilise le port TCP/22, et est utilisé pour ouvrir un Shell sur une machine
distante. La première version ayant des problèmes de sécurité, c’est actuellement la version 2 qui est
largement utilisée. Cette version possède en plus un protocole de transfert de fichier SSH File Transfer
Protocol (SFTP).
SSH utilise deux méthodes d’authentification, une par mot de passe et une par clé. Pour la première il
faut des informations de connexion ou une phrase secrète. La seconde méthode utilise la cryptographie
asymétrique avec un système de clé publique et clé privée. La clé publique est distribuée sur les
systèmes auxquels on souhaite se connecter, tandis que la clé privée reste uniquement sur le poste
duquel on se connecte.
Il existe plusieurs implémentations logicielles du SSH, les plus utilisés étant le projet libre d’outils
OpenSSH et PuTTY.
NETCONF est un protocole réseaux relativement récent normalisé en décembre 2006 avec le RFC 4741
et révisé en 2011 avec le RFC 6241. Ce protocole est basé sur du XML, et permet la gestion et la
configuration d’équipement réseau au travers des protocoles comme le SSH.
Il est implémenté dans la plupart des équipements réseaux des constructeurs actuels.
Comme le montre le schéma si dessous la pile du protocole NETCONF il utilise pour le transport le
SSH, et le XML selon un modèle qui contient les procédures, les opérations à effectuer et les différentes
données de configurations ou encore les messages. Ce modèle, c’est le YANG qui peut décrire des
données de configuration, accessibles en lecture et écriture : par exemple l’adresse IP statique d’une
interface ou des données de fonctionnement, accessibles en lecture seule : par exemple l’état d’une
interface (UP ou DOWN).
XVII
Figure 4 : Pile du protocole NETCONF
1.3.3 - Le SNMP
(SNMP), Simple Network Management Protocol en français « protocole simple de gestion de réseau »,
est un protocole de communication qui permet aux administrateurs réseau de gérer les équipements du
réseau, de superviser et de diagnostiquer des problèmes réseaux et matériels à distance. Il utilise le port
UDP 161 et 162.
Les systèmes de gestion de réseau du SNMP sont basés sur trois éléments principaux : un superviseur
(manager), des nœuds (nodes) et des agents.
L'architecture de gestion du réseau proposée par le protocole SNMP est donc fondée sur trois principaux
éléments :
Les équipements gérés (managed devices) sont des éléments du réseau (ponts, commutateurs,
concentrateurs, routeurs ou serveurs), contenant des « objets de gestion » (managed objects) pouvant
être des informations sur le matériel, des éléments de configuration ou des informations statistiques ;
Les agents, c'est-à-dire les applications de gestion de réseau résidant dans un périphérique, sont chargés
de transmettre les données locales de gestion du périphérique au format SNMP ;
Les systèmes de gestion de réseau (Network Management Systems notés NMS), c'est-à-dire les consoles
à travers lesquelles les administrateurs peuvent réaliser des tâches d'administration.
XVIII
Aussi ce dernier est plus utilisé dans le domaine de la supervision.
Maintenant que nous avons vu quelques protocoles pour l’automatisation des réseaux, il convient dans
cette partie de présenter quelques solutions et outils d’automatisation.
1.3.4 - Python :
Python est un langage de programmation qui peut s’utiliser dans de nombreux contexte et s’adapter à
tout type d’utilisation grâce à des bibliothèques spécialisées. C’est notamment le cas du réseau avec des
bibliothèques comme pyATS, Netmiko, NAPALM, Genie, et NCClient.
Quel que soit le module utilisé, l’automatisation avec python ne change pas : il repose sur des scripts
dont la syntaxe est propre au module utilisé et qui exécute des taches d’automatisation définies. Un des
grands avantages de de l’automatisation avec python, c’est que pour certaines de ses bibliothèques
comme NAPALM (Network Automation and Programmability Abstraction Layer with Multivendor
support) est multiplateformes. On peut exécuter un même script sur deux équipements de marque
différente et avoir le résultat demandé. Ils sont donc particulièrement efficaces dans un environnement
hétérogène.
Cisco DNA Center est une plateforme de pilotage centralisée propriétaire qui permet d'automatiser la
gestion des réseaux d'entreprises et fournit la visibilité complète du réseau.
XIX
En 2007, le SDN (Software Defined Access) est apparu dans l’objectif de tout automatiser, et même, de
se débarrasser de la CLI, en la remplaçant par un logiciel unique et centraliser, qui est le Cisco DNA
Center (Digital Network Architecture), solution propre à la marque.
Mais aujourd’hui, le SDN, concerne plutôt les data center et se concentre principalement sur les
applications. Comme les réseaux d’entreprise utilisent encore beaucoup d’appareils matériels, l’idée
serait de proposer de nouveaux services, comme il y’a actuellement dans les datacenters. Par exemple, si
nous avons besoin d’un nouveau pare-feu, et bien, ce serait plus simple, qu’en seulement quelques clics,
nous puissions obtenir un ASA virtuel, directement dans notre entreprise.
Le principe repose sur une « fabric » programmable, bâtie sur l’ensemble des équipements du réseau de
l’entreprise. On y voit cinq composants : la Fabric, le contrôleur APIC-EM, l’ISE (Identity Services
Engine), le NDP (Network Data Platform) et le DNA center
Dans cette partie nous faisons une petite présentation des SDN qui sont un ensemble de technologie que
permet la centralisation du contrôle d’un réseaux.
XX
Le SDN qui veut dire Software Defined Network en français réseaux définit par logiciel est une
approche de l’architecture réseau qui permet de contrôler le réseau de manière intelligente et centralisée
à l’aide d’application logiciel ou d’un contrôleur dédier. Le SDN vise une plus grande souplesse dans le
déploiement des infrastructure réseau, en s'inspirant sur les technologies issues du cloud computing ou
encore de la virtualisation.
En effet les SDN répondent à des problématiques différentes grâces aux différentes offres et outils. Il
peut être implémenté aussi bien dans un data center que dans une infrastructure d’entreprise. Les SDN
bénéficient d’une sécurité accrue avec la flexibilité de ses fonctions de routage, mais aussi de la
virtualisation des fonctions réseau. C’est donc la sécurité qui s’adapte au réseau. De plus l’accès aux
données des flux réseaux est largement simplifié, étant contrôlé en temps réel par le contrôleur SDN ce
qui permet une détection en temps réel des attaques, ou de mener plus facilement des analyses sur des
incidents.
La scalabilité qui est la capacité du réseau à s’étendre est un élément très important quand on parle des
SDN. Grâce à sa dimension de « programmabilité », le SDN permet de changer le fonctionnement d’un
réseau, de rajouter de nouvelles pièces ou service avec de délais très réduits. Ce réseau piloté par
logiciel fait abstraction du matériel et du logiciel, en séparant le plan de contrôle et le plan de données.
Les services liés au réseau (priorité, routage, …) sont regroupés dans le contrôleur qui gère entièrement
le réseau. Des règles peuvent donc être établies afin d’automatiser certaines tâches.
1.3.7 - Git :
Quand on administre des centaines d’équipements réseaux, la gestion des versions de configurations, de
nos équipements doit se faire de façon efficace.
Un logiciel de versioning, ou logiciel de gestion de version est un logiciel qui permet de conserver un
historique des modifications effectuées sur un projet afin de pouvoir rapidement identifier les
changements effectués et de revenir à une ancienne version en cas de problème.
Git est un logiciel de gestion de versions décentralisé. C'est un logiciel libre et gratuit, créé en 2005, et
distribué sous licence publique.
XXI
Git indexe les fichiers d'après leur somme de contrôle calculée avec la fonction de hachage SHA-1.
Quand un fichier n'est pas modifié, la somme de contrôle ne change pas et le fichier n'est stocké qu'une
seule fois. En revanche, si le fichier est modifié, les deux versions sont stockées, dans un dépôt, qui peut
être un répertoire local comme notre disque dur ou en ligne, sur GitHub par exemple.
2 - Présentation de Ansible :
Il fait donc également partie de façon centrale du mouvement DevOps, car il s’apparente à un véritable
couteau suisse de l’automatisation des infrastructures.
Le minimum par nature. Les systèmes de gestion ne devraient pas imposer des dépendances
supplémentaires sur l’environnement.
La cohérence. cf. notion de test unitaire (procédure permettant de vérifier le bon fonctionnement d’une
partie précise d’un logiciel ou d’une portion d’un programme).
La sécurité. Ansible ne déploie pas des agents sur les nœuds. Un protocole de transport comme
OpenSSH ou HTTPS est seulement nécessaire pour commencer une gestion.
La fiabilité. Lorsqu’il est écrit soigneusement, un livre de jeu Ansible peut être idempotent afin d’éviter
des effets secondaires inattendus sur les systèmes gérés.
Une courbe d’apprentissage faible. Les livres de jeux Ansible utilisent un langage simple et descriptif
basé sur YAML et les modèles Jinja2.
2.1 - Fonctionnalité :
XXII
Provisioning : configurer les différents serveurs et équipements dont vous avez besoin dans votre
infrastructure.
La grande force d’Ansible est qu’il est facile à mettre en œuvre, car il est agent-less et ne nécessite
qu’une connexion SSH et la présence de python pour lancer les taches à réaliser.
Lorsqu’il y a plusieurs machines à gérer, Ansible exécute les opérations en parallèle. Cela permet de
gagner un temps considérable. Cependant, les tâches sont effectuées dans un ordre défini par l’utilisateur
lors du choix de la stratégie : Par défaut Ansible attendra d’avoir fini une tâche (sur tous les hôtes) pour
passer à la suivante.
Ansible et plus particulièrement ses modules sont idempotents. Cela signifie qu’une opération donnera
le même résultat qu’on l’exécute une ou plusieurs fois. Par exemple, on va vérifier si un utilisateur
existe : si c’est le cas, on ne fera rien, mais si l’utilisateur n’existe pas alors on viendra le créer.
Node Manager : ou Control Node, est le poste depuis lequel tout est exécuté via des connexions,
essentiellement en SSH, aux nodes de l’inventaire. À sa connexion SSH.
Playbook: Un playbook Ansible est une séquence de tâches ou de rôles décrits dans un fichier ou
format yaml.
XXIII
L'automatisation avec ansible repose sur l’utilisation de playbooks. Les playbooks sont écrits selon un
langage d’automatisation simple et puissant. Les livres de jeu peuvent orchestrer avec précision
plusieurs parties d’une topologie d’infrastructure avec un contrôle très détaillé du nombre de machines à
traiter à la fois.
L’approche de Ansible en matière d’orchestration est une approche simple et précise : le code
d’automatisation devrait être pérenne et il devrait y avoir très peu de choses à retenir sur la syntaxe ou
des fonctionnalités spéciales.
Les livres de jeu sont écrits en langage YAML, Ain’t Markup Language. YAML expose un minimum de
syntaxe et propose un modèle de configuration ou de processus plutôt qu’un langage de script ou de
programmation. Chaque livre de jeu est composé d'un ou plusieurs “jeux (plays)” énoncés dans une
liste.
Un jeu est une analogie sportive qui définit un état ou un modèle et qui se “rejoue” de différentes
manières à d’autres moments.
Le but d’un “jeu” est de faire correspondre un “groupe” contenant des “hôtes (hosts)” dans des “rôles”
bien définis représentés par des objets Ansible appelés des “tâches (tasks)”. Sur le plan fondamental,
une “tâche” Ansible n’est rien de plus qu’un appel à un module Ansible accompagné de paramètres. Un
module est un programme Ansible en vue de réaliser certaines actions sur les “hôtes”.
Un module est généré sur le contrôleur, il est copié, exécuté et effacé sur les nœuds (dans le cadre de
l’automation des serveurs). Par contre, quand il s’agit de gérer des périphériques du réseau, comme des
commutateurs (switches) ou des routeurs, un module est généré et exécuté localement sur le contrôleur
pour agir sur la cible.
Inventaire : La liste des systèmes cibles gérés par Ansible est appelée un inventaire. C'est une source de
données listant les cibles devant être gérées par Ansible qui peuvent être organisées en groupes. On
distingue deux types d’inventaire :
XXIV
Module : Les modules Ansible sont des “bouts de codes” écrits principalement en Python (mais tout
langage supportant les retours JSON est autorisé) pour modifier l’état d’une propriété d’un hôte. Les
modules sont invoqués par l’exécution de tâches soit directement dans la ligne de commande
ansible ou dans des livres de jeu avec la commande ansible-playbook.
Template : Comme son nom l’indique, un template est un modèle permettant de générer un fichier
cible. Ansible utilise Jinja2, un gestionnaire de modèles écrit pour Python. Les « Templates » Jinja2
permettent de gérer des boucles, des tests logiques, des listes ou des variables.
Rôle : Afin d’éviter d’écrire encore et encore les mêmes playbooks, les rôles Ansible apportent la
possibilité de regrouper des fonctionnalités spécifiques dans ce qu’on appelle des rôles. Ils seront
ensuite intégrés aux playbooks Ansible.
Figure 6 : Ansible
XXV
ansible-console Ouvre une console interactive Commandes classiques
permettant de lancer plusieurs actions
sur un inventaire.
Ansible Tower est une plateforme logicielle qui permet de gérer et d'automatiser les tâches
d'infrastructure et de déploiement d'applications. Il est basé sur le logiciel Ansible, un outil de
configuration et de déploiement automatisé pour les systèmes informatiques, et ajoute des
fonctionnalités telles que l'interface graphique.
XXVI
Avec Ansible Tower, les équipes informatiques peuvent facilement créer et gérer des workflows
d'automatisation, ce qui leur permet d'automatiser les tâches répétitives et de gagner du temps. La
plateforme offre également une interface graphique intuitive, ce qui facilite l'utilisation et la gestion des
workflows.
En outre, Ansible Tower permet aux équipes de suivre les versions et de contrôler les changements
apportés à leur infrastructure, ce qui peut améliorer la fiabilité et la stabilité des opérations. La
plateforme offre également des fonctionnalités de gestion des accès et des autorisations, ce qui permet
de gérer les utilisateurs et les rôles de manière centralisée.
Enfin, Ansible Tower offre une surveillance en temps réel des tâches d'automatisation, ce qui permet
aux équipes de contrôler l'exécution des workflows et de détecter rapidement les problèmes potentiels.
Cela peut aider les équipes informatiques à mieux gérer leur infrastructure et à réagir rapidement aux
problèmes.
En résumé, Ansible Tower est une plateforme logicielle utile pour les équipes informatiques qui
souhaitent automatiser leurs tâches d'infrastructure et de déploiement d'application, ce qui peut
améliorer l'efficacité et la fiabilité des opérations.
XXVII
Chapitre 2 : Implémentation de la solution
1 – Présentation de l’infrastructure :
La conception d’un réseau d’entreprise se fait selon des modèles de conception qui servent à construire
des réseaux en respectant certaines règles d’architecture qui leur permettent de répondre aux besoins
actuels et futurs des entreprises et de leurs utilisateurs.
Modularité : il supporte facilement la croissance et les changements ; faire évoluer le réseau est facilité
par l’ajout de nouveaux modules au lieu redessiner entièrement l’architecture du réseau.
Flexibilité : les changements dans l’entreprise peuvent être adaptés au réseau rapidement selon les
besoins
Notre réseau, afin de respecter les critères de modèle de conception, sera un modèle hiérarchique à trois
couches (tier 3).
Core : Backbone haute vitesse pour transférer rapidement les paquets. Fournit de la haute
disponibilité et s’adapte rapidement aux changements.
Distribution : Agrège, les connexions des locaux techniques. Utilise des commutateurs pour
segmenter et organiser le système d’information en groupes, profils utilisateurs et afin d’isoler
les problèmes.
Access : permets aux utilisateurs d’accéder aux périphériques du réseau.
La couche Access est celle qui connecte les utilisateurs finaux (end users) au réseau. Les commutateurs
(switches) de couche Access offrent une connectivité de type L2 (Couche 2 du modèle OSI) notamment
avec la technologie VLAN. On reconnaîtra un périphérique de couche Access par les fonctionnalités
suivantes :
XXIX
La couche Core fournit la connectivité entre tous les périphériques de la couche Distribution. On
l’appelle aussi le “Backbone”, la dorsale du réseau dont le rôle principal est de transférer de la manière
la plus efficiente un gros volume de trafic du réseau.
2 – Préparation de l’infrastructure :
Pour pouvoir automatiser un réseau, il est nécessaire qu’au moins un protocole de configuration soit
configuré, sur les nœuds (manage node). La configuration des équipements sera faite selon le tableau
suivant :
XXX
Cisco input ssh
IOSvL2 Ip Login local
add192.168.122.1
03/24
DSW2 Vlan 1
Cisco Ip
IOSvL2 add192.168.122.1
05/24
DSW2 Vlan 1
Cisco Ip
IOSvL2 add192.168.122.1
06/24
Cisco Ip
IOSvL2 add192.168.122.1
07/24
CSW2 Vlan 1
Cisco Ip
IOSvL2 add192.168.122.1
08/24
CSW2 Vlan 1
Cisco IP
IOSvL2 add192.168.122.1
XXXI
09/24
Comme nous pouvons le voir sur le tableau au-dessus, nous avons activer le uniquement le SSH sur nos
équipements. Bien que répétitives, ces étapes sont nécessaires pour pouvoir communiquer avec nos
différents périphériques et équipements.
Bien qu’étant multiplateforme, la configuration de notre nœud ansible requière d’être familier avec le
système de fichier du système d’exploitation sur lequel nous installons notre nœud de contrôle. Notre
choix c’est porté sur Ubuntu, un système Debian. Parmi les fichiers nécessaires pour pourvoir exploiter
notre moteur d’automatisation, deux sont indispensables : le fichier de configuration et l’inventaire.
Ce document comporte par défaut plusieurs sections, la plus importante étant la section [default].
XXXII
Figure 8 : fichier de configuration Ansible
Nous avons configuré quatre paramètres, notons que les paramètres non configurés sont définis par
défauts par Ansible :
host_key_checking qui va vérifier et accepter manuellement de clés SSH. Elles doivent donc être
prés enregistrer. Si notre environnement est sécurisé, ce doit être désactivé ;
Deprecation_warnings qui va afficher les clés et valeurs définies dans les playbooks. Noud
désactivons ce paramètre
3.1.2 - L’inventaire :
Notre inventaire se présente sous la forme d’un fichier YAML selon une hiérarchie bien précise.
XXXIII
Figure 9 : Inventaire de l'infrastructure
Au plus haut niveau nous avons notre réseau, dans lequel nous pouvons voir nos switches. Ces derniers
sont repartis sur trois niveaux : le niveau accès, le niveau distribution, et le niveau cœur. C'est aussi ici
que nous renseignons l’adressage de nos différents équipements, le type de connexion utilisé (ici,
network_cli), les paramètres d’authentifications, et le module d’utilisé. Ici, nous utilisons des
équipements Cisco, ce sera donc un module réseau, cisco.ios. Rappelons qu’il existe un grand
nombre de modules pour plusieurs utilisations, et taches.
XXXIV
• Le DHCP sur la distribution,
• L'Etherchannel
• L'adressage
• Le protocole OSPF entre les couches Core et distribution
Pour chacune de ces taches des playbooks seront créés, en YAML, et afin d’éviter les longs fichiers de
configuration, pour l’adressage sera utilisé un template.
Ce playbook va appliquer à chacun des éléments du groupe switch de notre inventaire le nom tel que
défini dans la variable inventory_hostname de ce dernier. Cela veut dire que chacun des switchs
de notre infrastructure aura le noms d’hôte défini dans notre inventaire.
XXXV
Figure 11 : playbook de la création des vlan
Ici notre playbook créera des vlan dans tous les équipements de la couche distribution et accès : nous
allons segmenter notre réseau en le découpant en trois vlans. Notons que nous pourrons en déployer
plusieurs à la demande en les rajoutant dans notre playbook.
Notre playbook ici va configurer les ports, selon les vlan auxquels ces derniers ont accès. Il utilise le
module cisco.ios.ios_l2_interfaces qui sert à administrer les interfaces des switchs de
niveau 2 (layer-2 switch).
XXXVI
3.2.4 - La configuration du protocole HSRP sur la couche distribution :
Notre playbook ici est chargé de l’automatisation de la configuration du protocole HSRP sur le switch
DSW1. Il utilise le module cisco.ios.ios_config. Ce module nous permet d’utiliser les
commandes cisco ios pour différente configuration. C'est pourquoi nous pouvons reconnaitre des
commandes ios dans ce playbook. Pour ne pas allonger cette section, nous mettrons en annexe les
configurations de DSW2 et DSW3. Notons que ces dernières sont dans le même playbook.
Ce playbook va "trunker” les ports, entre la couche distribution et la couche accès. Il utilise le module
cisco.ios.ios_l2_interfaces qui sert à administrer les interfaces des switchs de niveau 2
(layer-2 switch).
XXXVII
Figure 14 : Playbook du trunk des interfaces
XXXVIII
Sur ce playbook, nous pouvons observer l’automatisation de la configuration du DHCP sur la
distribution, pour le réseau d’accès. Il utilise le module cisco.ios.ios_config. Ce module nous
permet d’utiliser les commandes Cisco ios pour différentes configurations.
XXXIX
Notre playbook nous montre la configuration de l’Etherchannel. Nous utilisons le module
cisco.ios.ios_lacp_interfaces. Ce module a pour rôle principal la configuration de
l’Etherchannel en mode LACP (active).
3.2.8 - l’adressage :
L'adressage d’un réseau selon la taille de ce dernier peut nous emmener à faire de long playbook. Dans
l’optique de l’automatisation de cette étape, nous pouvons utiliser les templates. Pour cela nous aurons
XL
Figure 18 : Dictionnaire de l'adressage
Le src : il spécifie l’emplacement du template à utiliser. Il s’agit d’un script qui vas récupérer les
interfaces et leurs adresses IP, ensuite vas les passer au module cisco.ios.ios_config qui va
automatiquement faire les configurations nécessaires.
XLI
Figure 20 : Configuration du protocole OSFP
L’exécution des tâches d’automatisation avec ansible se fait avec la commande ansible-playbook. Une
fois configurer nous pouvons lancer le playbook en précisant le chemin de l’inventaire si nous ne
l’avons pas renseigné. La syntaxe est :
Depuis notre nœud de contrôle, préalablement connecté à notre infrastructure, nous exécutons les
différents playbooks préalablement créés.
L’exécution d’un playbook se fait en deux étapes : d’abord le lancement. Pendant cette phase, la console
affiche la portée du playbook (équipement spécifique, couche, …). Ensuite l’exécution, la console
affiche la tâche à effectuer, les équipements affectés par ce changement et un récapitulatif des
opérations.
XLII
Figure 21 : Lancement d'un playbook
Il en est de même pour l’exécution de tous les playbooks. Nous avons toujours l’affichage des taches à
exécuter, la portée (la couche ou l’équipement concerné) et un résumé du déroulement de l’exécution.
5 - difficultés rencontrées :
L’automatisation réseau avec ansible ne se met pas en place de façon aisé. Elle demande un large
éventail de connaissance et de compétence :
L’administration système linux : selon la version de ansible utilisé, une version précise de
python peut être requise. Il faut savoir changer les variables d’environnement sous linux afin de
changer la version par défaut de python. Aussi il faut connaitre les emplacements des différents
fichiers de configuration pour éditer certains paramètres afin d’assurer la connexion ssh.
Evidement il faut être à l’aise avec la ligne de commande et la lecture de logs pour pouvoir faire
du troubleshooting sur notre Nœud Ansible.
La programmation : Ansible étant basé sur python, certain script notamment jinja2 même étant
simple demande une bonne connaissance de la programmation python. De plus la préparation
des playbooks en YAML aussi demande une parfaite maitrise de ce dernier. Le moindre espace
de trop par exemple peut rendre nos playbooks inutilisables.
XLIII
XLIV
Troisième Partie : Remarques, Suggestions et apport du stage
Pendant la durée de notre stage au cours de ST DIGITAL, nous avons pu faire quelques observations
aussi bien au sein de l’entreprise que chez nos différents clients :
Avec le cloud computing et les solutions d'intégration les entreprises peuvent utiliser à la demande les
services informatiques sans se soucier des problématiques d'infrastructures de sécurité et de
maintenance, et ainsi se concentrer sur les tâches relatives au cœur de métier de cette dernière. Mais cela
s’accompagne d’une certaine dépendance à un fournisseur d’accès internet.
Pour beaucoup d’entreprises, la possession d’équipement physique est l’assurance d’une certaine
autonomie. En effet ils ne sont pas dépendant d’une connexion internet pour pouvoir continuer à opérer.
Mais de la même ils n’ont qu’au ressources de leurs infrastructures uniquement quand ils sont dans leurs
locaux.
Section 2 : Suggestions
Les si les solutions cloud sont intéressantes, la nécessité d’avoir une connexion internet permanente
demeure leur grand point faible. Une première solution serait déjà une redondance de ligne de
préférence avec des opérateurs différents.
Aussi pour profiter de la continuité de services dans un environnement ou une connexion internet
permanente n’est pas toujours disponible, il vaut mieux privilégier une architecture hybride. En effet
l’avantage d'une architecture hybride est qu'elle peut combiner les avantages des différents types
d'architectures, tels que le cloud et les systèmes sur site. Cela permet de tirer parti des meilleures
technologies et de créer une solution adaptée aux besoins spécifiques de l'entreprise. Une architecture
hybride peut également offrir une plus grande flexibilité et une meilleure évolutivité, ce qui peut être
utile pour les entreprises en constante croissance ou en phase de changement.
XLV
Chapitre II : Apport du stage au sein de ST DIGITAL
Notre stage à St digital Gabon nous a permis d'avoir une connaissance approfondie du service cloud de
Microsoft, notamment les outils de collaboration avec Microsoft 365 et le cloud computing avec
Microsoft Azure.
Microsoft 365 est une suite d'applications en ligne qui permet aux utilisateurs de travailler de manière
collaborative. La suite comprend des outils de productivité tels que Word, Excel, PowerPoint, OneNote,
et Outlook, ainsi que des services de stockage en ligne tels que OneDrive et SharePoint.
Microsoft 365 permet aux utilisateurs de travailler sur des documents en temps réel, ce qui leur permet
de partager et de collaborer facilement sur des projets. La suite offre également des fonctionnalités de
communication en ligne, telles que les appels audio et vidéo, les discussions de groupe, et les réunions
en ligne, ce qui permet aux utilisateurs de rester connectés et de travailler ensemble de manière efficace.
En outre, ils offrent des fonctionnalités de gestion des tâches et des projets, ce qui permet aux
utilisateurs de planifier et de suivre les progrès des projets en temps réel. La suite offre également des
fonctionnalités de sécurité avancées, ce qui permet aux utilisateurs de protéger leurs données et leurs
communications en ligne.
XLVI
Figure 23 : portail Microsoft 365
L'écoute et l’analyse : l’écoute et l’analyse des besoins des clients sont primordiales. Ils
permettent d’établir un climat de confiance, de connaitre l’environnement dans lequel nous
serons appelés à intervenir ;
Les propositions pertinentes : en fonction du besoin du client nous devrons proposer la
solution adéquate et adaptée au besoin de ce dernier.
Le retour d’expérience : une fois la solution livrée au client nous devrons recueillir les avis et
ressentis de ce dernier afin d'en proposer des améliorations si besoin, et maintenir la confiance.
Aussi sur le plan comportemental ce séjour en entreprise s’est révélé très instructif, notamment sur
plusieurs points :
Le respect de la hiérarchie : dans le monde de l’entreprise nous avons une hiérarchie bien
définie, dont le respect est primordial, et demande une certaine discipline.
XLVII
La proactivité et productivité : l’oisiveté est à proscrire en entreprise. Il nous revient d’être
productives et travers des activités qui nous permettrons de monter en compétences par exemple.
L’organisation : dans la réalisation d’un projet, il est indispensable d’être organisé et de
respecter le programme établis et d’effectuer ses dans les temps.
Enfin nous avons appris l’importance de l’administration et la rédaction, que ce soit à travers la
rédaction de document administratif, le rapport, les comptes rendus de réunion, ce sont des
atouts très importants.
CONCLUSION
En conclusion, ce stage à l’entreprise ST DIGITAL a été très formateur. Cette société de service
numérique, présente au Gabon est très impliquée sur l’accompagnement des entreprises à travers ses
services pour que ces dernières se concentrent et sur leur cœur de métier.
Ansible est un outil d’automatisation, un logiciel libre qui automatise le provisioning, la configuration
et déploiement d’applications ou de configuration. Il utilise le protocole SSH pour la connexion aux
différents nœuds.
Il est multi plateforme, et peut etre utilisé pour plusieurs taches, comme dans notre cas, l’automatisation
des réseaux. En effet les réseaux d’entreprises sont vitaux pour ces dernières, mais peuvent demander de
plus en plus d’investissement. C'est pourquoi leur gestion doit se faire de manière efficace, d’où
l’utilisation des outils d’automatisation et de gestion de configuration comme Ansible.
Le déploiement de l’automatisation avec ansible nous à permit de comprendre plusieurs concepts tel
que celui de l’infrastructure as code, dans le cas du réseau, Network as code qui est le fait d’écrire un
programme pour configurer un réseau et ne plus avoir à le faire manuellement, ainsi nous sommes
XLVIII
concentrés sur sa conception. Il nous a aussi permis d’acquérir des notions sur la programmation
notamment en python qui est un langage de référence pour la programmation du réseau.
Au cours de ces mois nous avons pu acquérir une certaine expérience professionnelle, et nous avons
approfondi nos connaissances sur les outils de collaborations Microsoft 365, appris en tant que
technicien, à faire de la relation avec la clientèle.
Enfin notre implémentation a été réalisée sur GSN3 qui est un outil de simulation d’infrastructure. Mais
nous avons la forte convection que cet outil que nous utilisons pour le déploiement de nos
configurations serait un atout majeur et avons un bon espoir de le voir utilisé dans une infrastructure qui
sans douteen aura une grande utilité.
WEBOGRAPHIE :
https://docs.ansible.com/ansible/latest/collections/cisco/ios/index.html
https://docs.rocheralexandre.com/ansible/ansibleBase/
https://www.techtarget.com/searchnetworking/tip/An-introduction-to-network-automation-with-Ansible
https://docs.ansible.com/ansible/latest/network/index.html
XLIX
Annexe 1 : Installation de Ansible
Depuis les dépôts des distributions récentes : depuis la version 10 de Debian, et depuis la version
18.04 de Ubuntu, Ansible est disponible dans les dépôts officiels. Il faut juste lancer l’installation
avec la commande :
sudo apt install ansible
L
Avec Python3-pip : Ansible est aussi disponible comme module python. Avec cette méthode
d’installation, il faut d’abord installer pip avec la commande :
sudo apt install python3-pip
Une fois pip installé, nous pouvons lancer l’installation de Ansible avec la commande :
pip install ansible
Ansible a besoin d’un autre module, appelé sshpass. Une fois installé, il faut configurer les algorithmes
de chiffrement SSH. Pour cela il faut éditer le fichier config dans le répertoire ~/.ssh/
LI
Annexe 2 : playbook
LII