Vous êtes sur la page 1sur 18

Scripting system 2022

SEANCE 1

Chapitre 1 : Généralités

1. DEFINITIONS DES CONCEPTS

Script :

script 1, n. m., [] Énoncé organisé sous forme d'instructions qu'un INFORMATICIEN écrit dans un LANGAGE et qui sert à
faire exécuter une TÂCHE spécifique par un ORDINATEUR.

Dans notre contexte, la tâche spécifique sera : la modification d’un serveur

Serveur :

serveur 1, n. m., [] Ordinateur de grande capacité géré par un ADMINISTRATEUR et utilisé comme élément central dans un
réseau afin de permettre à des UTILISATEURS ou à des ORDINATEURS d'utiliser du MATÉRIEL, des LOGICIELS ou des
DONNÉES.

Mainframe :

Un serveur permet de partager les ressources d'un réseau constitué de plusieurs ordinateurs. Dans le cas d'un mainframe, il
n'y a qu'un seul ordinateur, le mainframe, tous les utilisateurs sont connectés au mainframe par des terminaux qui ne sont en
général que des claviers, écrans et imprimantes

Administrateur réseau :

administrateur [administrateur d'un RÉSEAU] Informaticien dont la responsabilité principale est de mettre en place un
RÉSEAU et de veiller à son bon fonctionnement et à celui de ses diverses composantes.

L'administrateur. Intervient sur le réseau, (administre, gère, implémente. Cela contraint l'administrateur à
créer et maintenir les fichiers graphiques / Les mots de passe donnant l'accès / Grâce à des outils logiciels, les administrateurs
de réseau peuvent piloter le réseau à partir de n'importe quel poste de travail.

2. LES TYPES DE SERVEURS, FONCTIONNEMENTS ET CHOIX

Un serveur est un ordinateur ou un système qui met des ressources, des données, des services ou des
logiciels à la disposition d’autres ordinateurs, qualifiés de « clients », sur un réseau.
En théorie, un ordinateur est considéré comme un serveur à partir du moment où il partage des
ressources avec une machine cliente.
Un système x peut simultanément fournir des ressources à un système y et utiliser celles que ce
dernier met à sa disposition. En d’autres termes, un périphérique peut agir à la fois comme serveur et comme
client.
La définition du serveur a ensuite évolué parallèlement au progrès technologique. De nos jours, un
serveur est parfois un simple logiciel qui tourne sur un ou plusieurs dispositifs informatiques physiques,
auquel cas on le qualifiera généralement de serveur virtuel. À l’origine, les serveurs de ce type permettaient
d’étoffer le nombre de fonctions qu’un serveur physique était en mesure d’accomplir à lui seul. Aujourd’hui,
les serveurs virtuels s’exécutent souvent sur le matériel d’un fournisseur tiers sur internet : on parle alors
de cloud computing.
Scripting system

Un serveur peut être conçu pour effectuer une seule et même tâche. C’est le cas du serveur mail, ou
serveur de messagerie, dont le rôle consiste à accepter et stocker des e-mails, avant de les mettre à la
disposition du client qui les sollicite. D’autres serveurs sont capables d’assurer différentes tâches, comme un
serveur de fichiers ou un serveur d’impression, qui va à la fois stocker les fichiers et accepter les tâches
d’impression que lui confient les clients, puis les transmettre à une imprimante connectée au réseau.

Comment fonctionne un serveur ?


Pour faire office de serveur, un périphérique doit être configuré pour écouter les requêtes que les clients lui
transmettent via une connexion réseau. Cette fonction peut être disponible sur un système d’exploitation
sous la forme d’une application ou d’un rôle installé, ou bien d’une combinaison des deux.
Par exemple, le système d’exploitation Windows Server de Microsoft intègre une fonctionnalité permettant
d’écouter et de répondre aux requêtes clients.
Les rôles ou services installés ont aussi pour fonction d’étoffer les types de requêtes clients auxquels
le serveur est capable de répondre.
Pour prendre un autre exemple, un serveur web Apache répond aux requêtes d’un navigateur via une
application tierce (en l’occurrence Apache) installée sur un système d’exploitation.
Quand un client sollicite des données ou une fonctionnalité auprès d’un serveur, il envoie une requête sur le
réseau. Le serveur la reçoit et y répond en communiquant l’information qui lui a été demandée. C’est le
mode requête-réponse du modèle client-serveur.
Un serveur va souvent effectuer d’autres tâches dans le cadre d’une requête-réponse : vérifier l’identité de
l’auteur de la requête, s’assurer que le client a l’autorisation d’accéder aux données ou ressources qu’il
sollicite, et formater correctement ou renvoyer la réponse requise selon la méthode qui en est attendue.

Les différents types de serveurs


Il existe des types de serveurs pour toutes sortes de fonctions. Beaucoup de réseaux contiennent au
moins un ou deux types de serveurs d’usage courant :

Serveurs de fichiers
Les serveurs de fichiers hébergent et diffusent des fichiers que peuvent partager une multitude de clients ou
d’utilisateurs. Grâce au stockage central des fichiers, il est plus simple d’effectuer des sauvegardes et de
déployer des solutions de tolérance aux pannes que si on tentait d’assurer la sécurité et l’intégrité des fichiers
sur chacun des appareils appartenant à une entreprise. La partie matérielle du serveur de fichiers est parfois
conçue pour maximiser les vitesses de lecture et d’écriture afin d’optimiser les performances.

Serveurs d’impression
Le serveur d’impression permet d’administrer et de répartir les fonctions d’impression. Au lieu de connecter
une imprimante à chaque poste de travail, on fait appel à un serveur commun qui va prendre en charge les
demandes d’impression de beaucoup de clients. De nos jours, les modèles d’imprimantes les plus
volumineux et sophistiqués intègrent parfois leur propre serveur d’impression, ce qui évite de recourir à un
serveur informatisé. Ce serveur interne fonctionne comme les autres, en répondant aux demandes
d’impression émanant d’un client.

Serveurs d’applications

Mr ELOUGA , elougaraoul@gmail.com Page 2


Scripting system

Le serveur d’applications offre un contexte d’exécution aux ordinateurs clients pour leur éviter d’exécuter
des applications localement. Les serveurs de ce type hébergent la plupart du temps des applications
gourmandes en ressources que se partage une large communauté d’utilisateurs. Par ce biais, les clients ne
sont plus tenus de disposer de ressources suffisantes pour faire tourner les applications, et il devient inutile
d’installer et de garder à jour des logiciels sur une multitude de machines : on se contente de le faire sur le
serveur, et tous les utilisateurs en bénéficient.

Serveurs DNS
Les serveurs DNS (pour Domain Name System) sont des serveurs d’applications utilisés pour résoudre les
noms de domaines des ordinateurs clients, c’est-à-dire traduire des noms conçus pour être compris de
l’homme en adresses IP exploitables par une machine. Le système DNS est une base de données largement
répandue qui contient des noms et d’autres serveurs DNS dont chacun peut servir à demander le nom d’un
ordinateur qui, autrement, resterait inconnu. Quand un client a besoin de l’adresse d’un système, il envoie à
un serveur DNS une requête DNS portant le nom de la ressource visée. Le serveur DNS répond en lui
fournissant l’adresse IP nécessaire, qu’il trouvera au sein de sa table de noms.

Serveurs de messagerie
Les serveurs de messagerie sont un des types de serveurs d’applications les plus répandus. Ils reçoivent les
courriers électroniques adressés à un utilisateur et les gardent en mémoire jusqu’à ce qu’ils soient sollicités
par un client au nom de l’intéressé. Posséder un serveur mail permet de configurer et de rattacher
correctement une machine au réseau à tout moment. Elle sera alors prête à envoyer et recevoir des messages
au lieu de demander à toutes les machines clientes de faire tourner en continu leur propre sous-système de
messagerie.

Serveurs web
Les serveurs web comptent parmi les catégories de serveurs les plus répandues sur le marché à l’heure
actuelle. Un serveur web est un genre de serveur d’applications qui héberge des logiciels et des données que
les utilisateurs vont solliciter sur internet ou sur un intranet. Ces serveurs répondent aux demandes de pages
web ou d’autres services web qui proviennent de navigateurs tournant sur des ordinateurs clients. Parmi les
serveurs web les plus populaires, on peut citer ceux d’Apache, de Microsoft Internet Information Services
(IIS) et les serveurs Nginx.

Serveurs de bases de données


Le volume de données utilisées par les entreprises, les utilisateurs, et les autres services est tout bonnement
colossal. Beaucoup de ces données sont stockées dans des bases de données. Celles-ci doivent être
accessibles à de nombreux clients à n’importe quel moment et peuvent mobiliser une gigantesque quantité
d’espace disque. À ce titre, les serveurs sont une solution idéale pour héberger des bases de données. Les
serveurs de bases de données exécutent des applications de bases de données et répondent aux nombreuses
requêtes des clients. Les applications les plus répandues sur ce segment sont Oracle, Microsoft SQL Server,
DB2, ou encore Informix.

Serveurs virtuels
Les serveurs virtuels sont en train de conquérir le monde de l’informatique. Contrairement aux serveurs
classiques, qu’on installe comme un système d’exploitation sur une machine physique, les serveurs virtuels
ne peuvent tourner que sur un logiciel spécialisé appelé hyperviseur. Chaque hyperviseur peut exécuter
simultanément des centaines, voire des milliers de serveurs virtuels. L’hyperviseur présente le matériel
virtuel au serveur comme s’il s’agissait de matériel physique. Le serveur virtuel utilise le matériel virtuel

Mr ELOUGA , elougaraoul@gmail.com Page 3


Scripting system

comme s’il s’agissait de hardware normal, et l’hyperviseur confie les tâches de calcul et de stockage à la
machine sur laquelle il est installé, qui est commune à tous les autres serveurs virtuels.

Serveurs proxy
Un serveur proxy fait office d’intermédiaire entre un client et un serveur. Souvent utilisé pour isoler soit les
clients, soit les serveurs, dans une optique de sécurité, un serveur proxy reçoit les requêtes que lui transmet
le client. Au lieu de répondre à ce dernier, il transfère la demande à un autre serveur ou processus. Le
serveur proxy reçoit la réponse émanant du deuxième serveur, puis répond au client d’origine comme si la
réponse émanait de lui. De la sorte, le client et le serveur qui lui répond n’ont pas besoin d’être connectés
l’un à l’autre.

Serveurs de supervision et d’administration


Certains serveurs ont pour vocation de superviser ou de gérer d’autres systèmes et clients. Il existe de
nombreux types de serveurs de supervision. Certains écoutent le réseau et reçoivent l’ensemble des requêtes
client et des réponses des serveurs, tandis que d’autres n’interrogent pas les données ni n’y répondent eux-
mêmes. Cela permet au serveur de supervision de garder à l’œil tout le trafic du réseau et les requêtes et
réponses des clients et serveurs, sans pour autant interférer avec ces opérations. Un serveur de supervision va
répondre aux requêtes émanant de clients dédiés à la supervision, comme ceux qu’utilisent les
administrateurs réseau soucieux de surveiller la santé du réseau.

QUEL SERVEUR INFORMATIQUE CHOISIR POUR SON


ENTREPRISE ?

Comment choisir un serveur informatique ? Cela peut être long et compliqué pour une entreprise si on ne
sait pas sur quels critères se baser.
UN SERVEUR INFORMATIQUE POUR QUEL USAGE ?
La première question à se poser lorsqu'on choisit un serveur : Pourquoi ai-je besoin d'un serveur ? Pour
quelles fonctions ? Quel type de logiciel doit-il être capable d'exécuter ?
Parmi ces fonctions on peut retrouver :
• Le stockage de fichier • Logiciels métiers
• La téléphonie sur IP • Annuaire d'entreprise
• La messagerie • Hébergement de site web
• La vidéo sur IP • Intranet
• Hébergement de base de données • Etc...
C'est à partir de ces usages que le choix de la majorité des caractéristiques du serveur découlera.
PROCESSEUR, MÉMOIRE VIVE ET DISQUES DU SERVEUR
De la même manière que pour un pc, les composants devront êtes sélectionnés en fonction du type
d'application que votre serveur doit être capable d'exécuter.
Si celui-ci doit supporter des logiciels de base de données la configuration choisie devra être plus
puissante que celle utilisée pour le simple stockage de fichiers.

Mr ELOUGA , elougaraoul@gmail.com Page 4


Scripting system

Pour faire correctement le choix de ces composants, reportez-vous aux configurations requises des
applicatifs que vous souhaitez exécuter.
CHOIX DU SYSTÈME D'EXPLOITATION DE VOTRE/VOS SERVEURS
En fonction des logiciels, les éditeurs valident un certain nombre de système d'exploitation : Microsoft
Windows Server, RedHat Enterprise, SUSE Linux Enterprise.
Si vous n'avez aucun prérequis, le choix de l'OS se fera en fonction de vos habitudes : Windows ou Linux,
une version avec support commercial ou support communautaire, ...
CHOIX DU FORMAT (RACK, TOUR, BLADE)
Il existe trois types de format physique pour les serveurs :
Les serveurs tour Ils sont très similaires aux unités centrales d'ordinateur fixe. Un de leurs
principaux avantages est qu'ils peuvent être installés dans n'importe quelle pièce
d'une entreprise.
Peu encombrant, en fonction des configurations ils peuvent offrir des
performances similaires aux autres formats de serveurs.
Deux points de vigilance, même si ces serveurs peuvent s'installer facilement «
partout », ils nécessitent souvent une arrivée électrique à fort ampérage et
peuvent entrainer des nuisances sonores et thermiques (dégagement de chaleur).
Les serveurs rack Destinés à être installés dans une baie, les serveurs rack offrent une densité
importante (plus de 40 serveurs par m2) et l'avantage de présenter un accès
facile aux machines pour les opérations de maintenance.
Comparé aux serveurs tours, il existe des configurations plus performantes (4
voire 8 processeurs par exemple).
Les serveurs Lame (ou Peu encombrant et énergétiquement efficient, le format lame est le plus récent.
serveur blade) Contrairement aux serveurs rack qui s'installent dans des baies, les serveurs
lames se glissent dans un châssis dédié et offrent ainsi une densité supérieure.
Leur temps de mise en service est également inférieur au format rack : pas de
mise en rack et pas de câblage, par ailleurs les commutateurs réseaux sont
généralement inclus dans le châssis.
Le tout s'administre depuis une console unique.

CHOIX DE L'ALIMENTATION
Pour des raisons de sécurité, il est fortement recommandé d'utiliser une alimentation dite « redondante ».
Constitué d'au minimum deux alimentations identiques, celle-ci permet de prévenir l'extinction de la
machine en cas de perte d'une des alimentations.
CHOIX DE LA CONNECTIQUE RÉSEAU
Les serveurs offrent un large choix de connectique réseau qui permet de répondre à tous types de besoin :
cartes réseaux 1, 10 Gb ou 40 Gb, connectiques cuivre ou fibre, support des protocoles IP, FC, InfiniBand, ...
CHOIX D'UNE SOLUTION DE MANAGEMENT

Mr ELOUGA , elougaraoul@gmail.com Page 5


Scripting system

Les serveurs intègrent une solution de management et supervision à distance, plus ou moins évoluée. En
fonction de vos besoins, il peut être nécessaire de recourir à des fonctions optionnelles :
Redémarrage à distance ;
Accès console à distance (équivalent d'un KVM) ;
Port réseau dédié pour le réseau de management.
CHOIX DE LA GARANTIE
Les serveurs occupant un rôle critique dans l'entreprise, il ne faut pas négliger le choix d'un contrat de
support.
En effet, la plus part des serveurs proposent de « base » une garantie d'une durée de 1 à 3 années, en retour
atelier ou intervention sur site sous 1 à 2 jours ouvrés.
Afin d'avoir un engagement sur les délais de réponse et d'intervention, il est possible de souscrire un contrat
de support répondant à vos problématiques : durée de support de 3 à 5 ans, intervention sous 4h, support
unifié matériel et logiciel, ...

3. DIFFERENCE ENTRE « LE SCRIPTING » ET « LA PROGRAMMATION »


L’un comme l'autre sont des langages de programmation. Un programme n'est d'ailleurs qu'un script
plus ou moins complexe.
Mais ce qui caractérise un langage de script est qu'il n'a pas besoin d'être compilé pour être exécuté,
on dit qu'il est interprété.
« Compilé » signifie qu'un langage de programmation possède son propre compilateur qui traduit la
syntaxe en code machine avant l'exécution. En revanche, les langages de script sont interprétés ligne par
ligne pendant l'exécution par l'interpréteur de la plateforme sur laquelle ils fonctionnent.
Le script est interprété (code source pas privé, lent), le programme est compilé (avantage : la
rapidité, code source privé inconvénient : dépendant de la plateforme, requiert des étapes de compilation)

Type Programmation scripting


Conversion Compilé Interprété
Dépendance Dépendant d’une plateforme Indépendant d’une
plateforme
Vitesse Exécution lente Exécution rapide
Sécurité Sécurisé Pas sécurisé
Code Complexe el long Rapide et simple
Mise à jour Moins fréquent Facile et fréquent
Application Beaucoup d’algorithme de Série de tâches automatisées
calcul Interface configurable
Logiciel indépendant prototype
C,C++,JAVA Perl,Python,PowerShell

Mr ELOUGA , elougaraoul@gmail.com Page 6


Scripting system

SEANCE 2

Chapitre 2 : Système d’exploitation pour serveur


et le langage python
1. HISTOIRE ET ACTUALITE

Qu'est-ce qu'un système d'exploitation pour serveur ?


Un système d'exploitation (OS) de serveur est un système d'exploitation installé et utilisé dans les
serveurs pour gérer les ressources matérielles et logicielles du système et fournir des services à plusieurs
programmes.
Il est prévu pour répartir la puissance de calcul entre les différents utilisateurs qui exploitent
le serveur.

Quel est le meilleur système d'exploitation pour un serveur ?


Dans le domaine de l'hébergement Web, Linux est souvent considéré comme le meilleur système
d'exploitation pour l'hébergement de serveurs. Ce logiciel libre est disponible pour tous depuis 1992 et peut
être adapté grâce à son architecture modulaire simple selon les besoins et connaissances de chacun.

Quels sont les systèmes d'exploitation serveur ?


Liste des systèmes d'exploitation serveurs et bureautiques les plus populaires / les plus utilisés en
entreprises : Suse Openstack Cloud. Suse Linux Enterprise Server. Red Hat Enterprise Linux.

Types de systèmes d'exploitation pour serveurs

Système d'exploitation UNIX

UNIX est un système d'exploitation multi-utilisateurs et multitâches. Il est largement utilisé dans les
environnements client-serveur. Le système d'exploitation serveur UNIX est exécuté à l'aide d'un langage de
programmation C de haut niveau qui prend en charge plusieurs plates-formes, ce qui le rend adapté à de
nombreuses architectures matérielles.
Il intègre le protocole TCP/IP, ce qui lui confère une stabilité et une sécurité supérieures. Mais il est
très coûteux, et il existe de nombreuses versions différentes de systèmes d'exploitation UNIX provenant de
différents fournisseurs, de sorte qu'il n'y a pas de système d'exploitation de serveur UNIX standard.

Système d'exploitation Linux


Le système d'exploitation Linux est un système d'exploitation de type UNIX avec toutes les fonctions
d'UNIX. Linux est le système d'exploitation dominant sur les serveurs et les superordinateurs.
Linux est gratuit et open-source et prend en charge les opérations multi-utilisateurs, multi-processus
et multi-threads.

Système d'exploitation Windows


Il fournit des services à de multiples utilisateurs et prend en charge la gestion et le contrôle du
stockage des données, des applications et des réseaux d'entreprise.

Mr ELOUGA , elougaraoul@gmail.com Page 7


Scripting system

Windows server OS est un système d'exploitation applicable au cloud, qui prend en charge la gestion
de la mémoire virtuelle et possède une interface graphique intuitive. En outre, il est plus facile à utiliser que
la plupart des systèmes d'exploitation basés sur Linux et il est facile à installer. Mais le système
d'exploitation Windows Server est payant. Et il est confronté à un plus grand nombre de menaces de sécurité,
ce qui nécessite le téléchargement en temps utile des dernières mises à jour de sécurité pour protéger le
système contre ces menaces et assurer une sécurité permanente.

Système d'exploitation NetWare


Le système d'exploitation serveur NetWare était largement utilisé dans les réseaux locaux les plus
anciens. Il prend en charge la gestion des multiprocesseurs et de la mémoire physique à haute capacité. Il
possède également de superbes capacités de partage de fichiers et d'impression.
Cependant, NetWare présente des inconvénients très évidents. Il nécessite un investissement coûteux
et une installation difficile, et de nombreuses applications ne prennent pas en charge le système.
2. LE LANGAGE PYTHON

L’objectif du cours est de pouvoir modifier un serveur grâce aux scripts : Au 21e siècle l’un des
langages les plus utilisés est le langage PYTHON (bien que crée dans les années 90 mais amélioré depuis peu).

Un script Python est un fichier texte enregistré avec l’extension .py que l'on peut créer par exemple
avec un simple éditeur de texte comme le bloc note de Windows. Mais il est plus pratique d'utiliser un
éditeur adapté pour l'écriture de scripts, comme Notepad++, PyScripter, Geany ou Bluefish, pycham.

a. Pourquoi python ?
 Simplicité
Très simple pour apprendre donc parfait pour commencer à programmer ;
Bonne lisibilité de la synthase du code
 Puissance
Très performante pour nos programmes ;
Enormément utilisé dans le monde scientifique pour des calculs numériques par exemple
 Communauté
Possède une assez grande base de communauté pour les : échanges , interaction ; Nous pouvons ainsi interagir
avec des personnes en cas de besoins , si par exemple vous rencontrez un problème.
PREREQUIS :
Il faut :
Un interpréteur ou environnement : c’est tout simplement un endroit ou va s’exécuter notre code python,
parce que par défaut vous ne pouvez pas le faire n’importe comment sur votre ordinateur. Accessible sur le
site : https://www.python.org ensuite se rendre dans la catégorie Download et télécharger selon la version
de votre système d’exploitation. Il vous suffit juste de l’installer de manière classique.
Un IDE : C’est un environnement de développement intégré (PYCHAM), télécharger la version
Communauty qui est open source donc libre

b. Domaine d’application du langage

C’est le langage le plus populaire en ce moment, c’est un langage versatile, on l’utilise dans plusieurs domaine :

 IA : Intelligence Artificielle

Mr ELOUGA , elougaraoul@gmail.com Page 8


Scripting system

 Développement d’application mobile front et back-end


 Développement d’application web front et back-end
 Analyse des données
 La data science
 Le devops
 L’administration réseau
 Création des jeux
 Machine learning
 Big data
 Comptabilité : pour des tâches rapides au quotidiens
 Etc…

Python est utilisé dans les entreprise comme : GOOGLE, FACEBOOK, NASA, QUORA, NETFLIX , DROPBOX ,
MICROSOFT et autres

En Amérique et en Europe python est le langage le plus populaire contrairement en Afrique et autres continents qui
trainent encore le pas à cause du manque d’implémentation de l’intelligence artificielle.

c. Exécution de quelques instructions

LISTES Les tuples


notes=[18,15,13,20,"raoul",[4,5]] list=(12,23,54,8)
print("notes") print(list[:4])
a=len(notes)
print(a)
LES BOUCLES FOR ET WHILE WHILE....................
FOR................ n=110
while n>=25 :
animaux=['chien','chat','abeille','oiseau']
n=n-25
for animal in animaux :
print(n)
print(f"{animal.upper()}")
LES FONCTIONS
# ajouter dans la liste vide des animaux commencant par "c"
print("hello python".replace("hello","bonjour"))
c_animaux=[]
def est_pair(nomb):
for animal in animaux:
if nomb % 2==0:
if animal.startswith('c'):
print(f"{nomb} est paire")
c_animaux.append(animal.upper())
return True
print(c_animaux)
print(f"{nomb} est impaire")
return False
no=int(input("entre un nombre: ")
est_pair(no)

Mr ELOUGA , elougaraoul@gmail.com Page 9


Scripting system

SEANCE 3

Chapitre 3 : Administrer un serveur


1. C’est quoi administrer un serveur ?

C’est un informaticien ayant la responsabilité de gérer et de surveiller les performances des serveurs
informatiques dans le centre de données d'une entreprise.

Également appelés administrateur système, les administrateurs de serveur travaillent quotidiennement avec les
serveurs et les réseaux pour s'assurer que les systèmes fonctionnent efficacement et continuent de fonctionner
sans temps d'arrêt ni dégradation des performances.

2. Opérations sur un serveur :


L’administrateur système , communément appelé « sysAdmin » peut:
o Parcourir les serveurs pour voir s’il y’a des sessions ouvertes ;
o Supprimer les snapshots pending sur les machines virtuelles ;
o Réinitialiser (reset) les mots de passe et envoyer aux utilisateurs externes ;
o Gestion et maintenance des serveurs ;
o Automatiser les configurations des serveurs ;
o Configuration et prise en charge des composants des serveurs ;
o Etc…
3. Initiation au script python : création d’un chat avec les scripts python
Ce mini-projet parlera des sockets. Un Socket : est un connecteur réseau
Grâce à la bibliothèque de python nous pourrons accéder aux services voulus (Le Web,le FTP, les mails….).
Un Socket est un élément logiciel qui est aujourd’hui répandu dans la plupart des systèmes d’exploitation. Il
s’agit d’une interface logicielle avec les services du système d’exploitation, grâce à laquelle un développeur
exploitera facilement et de manière uniforme les services d’un protocole réseau.
Procédure :
 Créer un répertoire du projet sur le bureau de votre ordinateur appelé :« chatroom »
 Ouvrir un éditeur de texte : de préférence sublime text
 Importer le répertoire « chatroom » dans sublime text
 Créer 2 fichiers scripts .py (serveur.py et client.py) et pour chaque script saisir respectivement les différents
code ci-dessous : (capture d’écran)

Exécution :

 Lancer l’invite de commande de Windows (3 fois : 1 fois pour le serveur, et les 2 autres pour le client1 et
client2)
 A l’aide des commandes « cd » atteindre le répertoire « chatroom »
 Exécuter chaque fichier : avec la commande « python » : python3 serveur.py pour le serveur et python3
client.py pour le client

Mr ELOUGA , elougaraoul@gmail.com Page 10


Scripting system

a. Créer un serveur réseau :

b. Créer un script client et le connecter au script serveur:

4. Utilisation des scripts python pour l’automatisation réseau

Il existe des bibliothèques python pour l’automatisation des tâches effectuées par un « SysAdmin »,
a. Bibliothèques de script python
Python dispose de trois bibliothèques – Paramiko, Netmiko et NAPALM – dédiées
au pilotage des équipements réseau.
Chacune d’elle apporte une couche d’abstraction supplémentaire pour simplifier la
communication avec les équipements réseau.
Les utilisateurs qui débutent ont juste besoin de comprendre la manière dont s’enchaînent les
commandes et comment sont structurées les données, notamment les « dictionnaires Python ».
c. Script permettant de demander à un routeur Cisco sa table ARP

Mr ELOUGA , elougaraoul@gmail.com Page 11


Scripting system

 Cas avec « Paramiko »


Paramiko sert à programmer l’envoi de commandes à un équipement réseau via le protocole SSHi.
Grâce à cette bibliothèque, les utilisateurs envoient des commandes que l’équipement réseau
exécutera comme si elles avaient été saisies dans sa console CLIii depuis un clavier qui lui aurait
été directement relié.
Le résultat de ces commandes sera récupéré par le script Python qui pourra les afficher sur
l’écran de l’administrateur.
Le script Python ci-dessous, que nous nommerons exemple_paramiko.py, utilise la
bibliothèque Paramiko pour demander à un routeur Cisco sa table ARP, laquelle liste le couple
adresse IP/adresse MAC des machines du réseau avec lesquelles il communique.
Obtenir cette table est la première étape pour identifier sur quel port d’un switch une machine
du réseau est connectée.

Les lignes un à cinq importent les bibliothèques supplémentaires dont nous avons besoin, et
définissent l’adresse IP du routeur que nous allons interroger.
Les lignes sept à quatorze créent une connexion SSH vers le routeur avec l’identifiant tester et
le mot de passe foobar. Une commande est envoyée pour désactiver le scrolling du texte à l’écran.
Les lignes 16 à 18 envoient la commande « show arp » directement interprétable par le
routeur.
La ligne 21 lit le résultat de cette commande et l’affiche. La connexion est fermée lorsque le
script se termine.

Voici le
résultat :

i
SSH, ou Secure Socket Shell, est un protocole réseau qui permet aux administrateurs d'accéder à distance à un ordinateur,...

ii L’interface en lignes de commande (CLI)

Mr ELOUGA , elougaraoul@gmail.com Page 12


Scripting system

Paramiko se limite véritablement à la simple fourniture d’une interface SSH vers les machines du
réseau.
Réécrire intégralement chaque script pour chaque équipement réseau à automatiser n’est pas une
bonne pratique. La bibliothèque Netmiko résout ce problème.

 Cas avec « Netmiko »


La bibliothèque Netmiko apporte une couche d’abstraction vers un grand nombre d’équipements
réseau. Ici, plus besoin de connaître par avance les commandes propres à l’appareil que l’on pilote.
À la place, on écrit dans le script des commandes génériques. Le premier bénéfice est que le script,
que nous appellerons netmiko-example.py, est d’autant plus court à écrire :

Les lignes 1 à 4 importent les modules nécessaires.


Les lignes 5 à 10 créent un « dictionnaire Python » qui contient les paramètres de connexion de
l’équipement. Lorsqu’on pilote plusieurs appareils, il suffit de multiplier les dictionnaires. La
connexion vers l’appareil se fait en une seule ligne. Il suffit aussi d’une ligne pour envoyer la
commande et afficher son résultat.
Le résultat est aussi plus court avec Netmiko, car cette bibliothèque supprime les lignes qui
correspondent aux commandes (les « invites ») :

Netmiko utilise la définition device_type qui puise dans sa base de connaissances interne pour
savoir comment gérer les communications avec l’équipement cible, ce qui évite à l’administrateur
de se hasarder à des spécificités dans les commandes et les lectures de résultat. Reste qu’il ne
permet pas de changer les paramètres de la cible. C’est là qu’entre en scène NAPALM.

 Cas avec « NAPALM »


La bibliothèque NAPALM est conçue pour manipuler la configuration des équipements
réseau. Il faut toutefois noter que si Netmiko dispose d’une base de connaissance très riche,

Mr ELOUGA , elougaraoul@gmail.com Page 13


Scripting system

NAPALM ne sait travailler qu’avec un nombre plus restreint d’équipements ; il reconnaît ceux de
marques Arista, Juniper et Cisco.
Pour commencer, NAPALM utilise des fonctions get pour récupérer les paramètres d’un
équipement. Le script suivant utilise la fonction get_arp_table() pour faire la même chose que les
scripts précédents :

Le script à écrire est plus long avec NAPALM qu’il ne l’est avec Netmiko, car il nécessite
d’inclure plus de bibliothèques de fonctions et que les paramètres de connexion soient spécifiés
différemment, comme on le voit dans les lignes 2 à 13.
La connexion est établie dans les lignes 15 à 17.
Ensuite, les informations de la table ARP sont récupérées, mais contrairement à précédemment
NAPALM les reformate, pour qu’elles se présentent comme un dictionnaire Python.
La ligne 19 affiche les données formatées de la sorte :

Le mérite de ce format dictionnaire est qu’il s’agit d’une structure de données directement
réutilisable dans Python. Il devient dès lors possible de remplacer, fusionner, comparer les données
de ce dictionnaire afin de déployer, corriger ou adapter une configuration.

Mr ELOUGA , elougaraoul@gmail.com Page 14


Scripting system

c. Script qui permet de faire un ping en python


En outre, vous devriez envisager d'utiliser le subprocessmodule au lieu de os.system()car ce dernier
est obsolète. https://docs.python.org/3/library/subprocess.html#module-subprocess

d. Script Python qui ping les adresses IP et indique si chaque ping a réussi

NB : os.system a été remplacé par subprocess.call. Cela évite la vulnérabilité d' injection de
shell dans les cas où votre chaîne de nom d'hôte pourrait ne pas être validée.
Exemple d’utilisation « subprocess »

Mr ELOUGA , elougaraoul@gmail.com Page 15


Scripting system

e. Script Python d’analyse réseau : cas de demande d’écho ICMP


ICMP (Internet Control Message Protocol) est un protocole de rapport d'erreurs que les
périphériques réseau tels que les routeurs utilisent pour générer des messages d'erreur à l' adresse
IP source lorsque des problèmes de réseau empêchent la livraison des paquets IP.
Il est également connu en utilisant la 'commande ping'. Un paquet ICMP est envoyé à un hôte
en utilisant l'adresse IP et si l'écho ICMP est reçu, cela signifie que l'hôte est en ligne et reçoit les
signaux. Pour cela, il est nécessaire de récupérer toutes les adresses IP pour lesquelles vous
souhaitez tester que l'hébergeur soit connecté ou non. Cette méthode fonctionne sur l'hypothèse que
les périphériques réseau ont ICMP activé.

Ce code itère sur toutes les adresses IP disponibles, les ping et vérifie la réponse. Si l'écho est
reçu, cela signifie que l'hôte est connecté et dans le cas où aucun écho n'est reçu, il semble que
l'hôte soit en panne.

f. Script Python d’analyse réseau : cas de balayage TCP


Pour surmonter les inconvénients de la méthode de demande d'écho, la méthode d'analyse TCP
est introduite, qui fonctionne sur la méthode de prise de contact à trois voies. Cette méthode part du
principe que les hôtes sur les réseaux sont des ports ouverts et nous devons deviner quel port est
ouvert ou non.
Les ports diffèrent selon le système d'exploitation que vous utilisez.
Méthode de poignée de main à 3 voies
Une poignée de main à trois est une méthode utilisée dans un réseau TCP/IP pour créer une
connexion entre un hôte/client local et un serveur. Il s'agit d'une méthode en trois étapes qui
nécessite que le client et le serveur échangent des paquets SYN et ACK (accusé de réception) avant
que la communication de données réelle ne commence.
Une poignée de main à trois est principalement utilisée pour créer une connexion de socket
TCP. Cela fonctionne lorsque :
 Un nœud client envoie un paquet de données SYN sur un réseau IP à un serveur sur le même
réseau ou sur un réseau externe. L'objectif de ce paquet est de demander/déduire si le
serveur est ouvert pour de nouvelles connexions.

Mr ELOUGA , elougaraoul@gmail.com Page 16


Scripting system

 Le serveur cible doit avoir des ports ouverts qui peuvent accepter et initier de nouvelles
connexions. Lorsque le serveur reçoit le paquet SYN du nœud client, il répond et renvoie un
accusé de réception - le paquet ACK ou le paquet SYN/ACK.
 Le nœud client reçoit le SYN/ACK du serveur et répond avec un paquet ACK.
Une fois ce processus terminé, la connexion est créée et l'hôte et le serveur peuvent communiquer.

g. Script Python pour trouver son adresse IP


Ici, nous devons d'abord importer le socket, puis nous obtenons le nom d'hôte en utilisant la
fonction gethostname(), puis nous récupérons l'adresse IP en utilisant le nom d'hôte que nous
avons récupéré et nous l'imprimons simplement.

h. Script python scanner de ports


Ce scanner de port fonctionnera à la fois pour les applications Web et pour l'hôte distant. Cet
outil a été créé pour fournir les fonctionnalités de base d'un scanner de ports. Le concept général de
Sockets avait été utilisé pour fournir la fonctionnalité. Port Scanner est construit sur Python 3 et
utilise des bibliothèques supplémentaires telles que socket et pyfiglet (pour une bannière
fantaisiste).
Remarque : Dans le code ci-dessous, c'est-à-dire pour le port dans la plage (1, 200) : vous pouvez
personnaliser vos ports sous quelle plage vous devez analyser. Ce scanner de port prendra

Mr ELOUGA , elougaraoul@gmail.com Page 17


Scripting system

généralement le temps de 2 minutes maximum pour produire une sortie au format, tel ou tel port est
ouvert ou fermé.

Mr ELOUGA , elougaraoul@gmail.com Page 18

Vous aimerez peut-être aussi