Avec cet article sur PERL, j’étoffe un peu plus la rubrique Supervision Réseau de Quick-tutoriel, qui va englober la programmation système, le développement de scripts (utile à tout bon administrateur réseau où système) et la supervision comme les routeurs, switchs, sondes à l’aide de PERL et des modules CPAN.

Le but de ce tutoriel est de vous permettre d’installer et d’utiliser les modules CPAN, qui vous fourniront de nombreuses fonctions pour vos futurs scripts.

Avant de commencer une petite définition sur le langage PERL peut être utile :

Perl est un langage optimisé pour extraire des informations de fichiers texte et imprimer des rapports basés sur ces informations. C’est aussi un bon langage pour de nombreuses tâches d’administration système. Il est écrit dans le but d’être pratique (simple à utiliser, efficace, complet) plutôt que beau (petit, élégant, minimaliste).

Perl combine les meilleures fonctionnalités de C, sed, awk et sh, de manière telle que les personnes familières de ces langages ne devraient avoir aucune difficulté avec celui-ci. (Les historiens pourront aussi noter quelques vestiges de csh, de Pascal et même de BASIC-PLUS). La syntaxe se rapproche beaucoup de celle du C.

Contrairement à la plupart des utilitaires Unix, Perl ne limite pas arbitrairement la taille des données — si vous avez assez de mémoire, Perl peut copier l’intégralité d’un fichier dans une seule chaîne de caractères. Il n’y a pas de niveau maximum à la récursivité. Et les tables utilisées par les tables de hachage (appelées aussi « tableaux associatifs ») croissent dès que nécessaire afin de garantir un bon niveau de performance.

Perl utilise des techniques sophistiquées de recherche de motifs pour pouvoir traiter très rapidement de très grandes quantités de données. Bien qu’optimisé pour le traitement des fichiers textes, Perl peut aussi traiter des données binaires et faire que des fichiers DBM soient vus comme des tables de hachage.

Les scripts Perl ayant leurs setuid bits positionnés sont plus sûrs que des programmes C grâce à des mécanismes de suivi de flot de données qui permettent d’éviter de nombreux trous de sécurité particulièrement stupides.

Face à un problème pour lequel vous auriez habituellement utilisé sed, awk ou sh, mais qui dépasse leurs capacités ou qui doit fonctionner un peu plus rapidement et pour lequel vous ne voulez pas écrire en C, alors Perl est pour vous. Il existe aussi des convertisseurs pouvant transformer vos scripts sed et awk en scripts Perl.

Qu’est ce qu’un module Perl ?

Un module est un script Perl avec une extension « .pm » qui a été écrit pour effectuer des tâches précises.

Lorsque vous programmez, votre script peut rapidement devenir très long (des milliers de lignes de codes) et vous avez du mal à vous y retrouver par la suite. Il n’est pas évident de le maintenir par vous ou une tierce personne des mois après. Il est donc important de le sectionner en procédures et modules afin de le rendre plus court, plus propre, facilement réutilisable.

Les modules CPAN

CPAN (Comprehensive Perl Archive Network) est le réseau complet d’archives de Perl. Il en fait sa grande force et son succès. En effet, il permet de collecter des milliers de modules prêts à être utilisés. Perl lui même intègre une partie de ces modules sans lequel il ne pourrait pas fonctionner.

La plupart des modules du CPAN sont testés régulièrement. Ils sont fiables et c’est à vous de lire attentivement la documentation et de les installer afin de les tester et en tirer tous les bénéfices.

Tous les développeurs recherchent des modules (librairies) afin de ne pas réinventer la roue . En Perl, tout est sur le CPAN. Il existe une page de en recherche pour cela : http://search.cpan.org/.

Tapez des mots clés en fonction de votre recherche (MySQL par exemple si vous recherchez un module en rapport à mysql, cisco pour les routeurs, …).

Sur la page de recherche du CPAN, il existe différentes catégories qui permettent de classer les modules. Une fois votre bonheur trouvé, lisez bien la documentation, et installez le module pour le tester.

Avant de vous lancer dans la création de script, voici les points à vérifier (Tous les exemples se baseront sur l’OS Linux est en particulier Ubuntu, même si PERL fonctionne sous Windows celui-ci ne sera pas abordé ici) :

Vérifier si PERL est installé sur votre distribution, lancer le terminal et taper la commande suivante :

#perl -v

Vous voyez ici la version de PERL, V5.10.1, par défaut dans les distributions Ubuntu, PERL est installé, donc pas de souci.

Ensuite lancer la commande cpan dans le terminal pour le paramétrer correctement. Voici la procédure :

Saisir yes, puis valider par Entrée.

Votre Cpan est maintenant actif.

Si les paramètres automatiques ne vous conviennent pas (comme l’ajout d’un proxy par exemple), vous pouvez relancer la procédure en tapant la commande suivante dans CPAN :

#cpan[1] > o conf init

Cette commande vous demandera de valider chaque paramètre ou de le modifier le cas échéant.

Utilisation du script PerlMod.

Nous allons voir un script PERL, PerlMod, qui va nous aider à gérer nos modules et effectuer quelques manipulations bien pratique. (Tout d’abord télécharger l’archive en fin de tutoriel).

Une fois décompressée dans un dossier vous devriez avoir ceci :

Vous devez toujours utiliser le script avec les droits administrateur.

#sudo ./perlmod

Dans un premier temps nous allons voir 2 fonctions très utiles :

Lister tous les modules installés sur votre machine

Désinstaller un module CPAN

Voici la commande à utiliser pour lister tous les modules présents sur votre machine :

#sudo ./perlmod -l

Nous voyons ici que le Module DBI est en version 1.611 et que la version de PERL est la 5.10.1.

Voici la commande pour désinstaller un module CPAN :

#sudo ./perlmod -d (nom du module)

Saisissez y et le module sera complètement effacé. Pratique non. Nous verrons plus en détail ce script en fin de tutoriel.

Nous allons maintenant voir comment installer des modules CPAN. Pour cela nous allons installer le module DBI ainsi que le module DBI::DBD. Une petite explication s’impose :

Module DBI : Le module DBI, autorise vos scripts perl à se connecter à la plus part des SGBD du marché. Il faudra, simplement, par la suite, installer le pilote DBD spécifique à votre SGBD, ici nous ferons un test avec une base MySQL donc le module à installé est DBD::mysql .

Il existe 3 méthodes d’installation :

Manuellement

La première chose à faire est de vous rendre sur le site du CPAN pour rechercher le module qui vous intéresse.

Prenons pour exemple le module DBI

Si vous cliquez sur le lien DBI, je vous conseil la lecture du README, qui vous renseignera sur les commandes spéciales à taper ou les modules à installer avant.

Pour lire le README, cliquer sur le lien DBI-1.611.

Voici un exemple très instructif de fichier Readme pour le module MySQL-Backup

1 : Liste des commandes pour une installation manuelle

Liste des commandes pour une installation manuelle 2 : Liste des dépendances (modules nécessaire au bon fonctionnement)

Ensuite télécharger le module (en console via « wget » par exemple) et procéder à son installation.

Astuce: Vous allez utiliser l’utilitaire wget pour télécharger les modules CPAN, vous devez passer en paramètre le chemin exacte de téléchargement du fichier, pour cela un clic droit sur le lien Download puis sélectionner Copier l’adresse du lien, ce qui vous permettra d’éviter une longue et laborieuse saisie.

Aller maintenant dans une console et taper la ligne suivante :

#wget http://search.cpan.org/CPAN/authors/id/T/TI/TIMB/DBI-1.611.tar.gz

Une fois le fichier téléchargé, saisissez les commandes suivantes dans une console (généralement les même pour chaque module) :

#tar xvzf DBI-1.611.tar.gz #cd DBI-1.611 #perl Makefile.PL #make #make test #sudo make install

La compilation doit s’effectuer sans problème.

Via l’utilitaire CPAN

Sur votre console, tapez sudo cpan. Si c’est la première fois, il vous posera des questions auxquelles il n’est pas difficile de répondre.

Une fois votre CPAN configuré, vous pouvez installer un module en tapant :

#install MonModule ou perl -MCPAN -e 'install MonModule'

Prenons un exemple avec le module DBI (vous prenez le nom du module à installer sur le site search.cpan.org (http://search.cpan.org/).

Via le script Perlmod

Pour ma part je n’utilise plus que ce script qui regroupe tout ce que j’ai besoin gour gérer mes scripts. Perlmod est vraiment une PERLE pour gérer vos modules CPAN. Vous pouvez télécharger ce script en fin de tutoriel.

Après avoir téléchargé PerlMod, vous devez décompresser l’archive et copier le répertoire dans le repertoire /temp/perlmod (par exemple).

Ensuite à l’aide de la console vous devez rendre exécutable le script perlmod grâce à la commande suivante :

#chmod u+x perlmod



Ensuite pour vérifier que votre script fonctionne correctement, utiliser la commande suivante dans une console.



# ./perlmod -v

Si tout fonctionne correctement, vous devriez avoir ce message (voir copie d’écran ci-dessus).

Maintenant que PerlMod est installé, voyons ensemble un exemple d’installation de modules CPAN, pour notre exemple nous allons installer le module DBD. Dans une console taper la ligne suivante :

#sudo ./perlmod -i DBD

L’installation doit se dérouler sans problème (voici quelques captures de l’installation d’un module) :

Maintenant pour connaître toutes les options de ce script, taper la commande suivante :

#. /perlmod

Voilà c’est la fin de ce long tutoriel sur CPAN, ce tutoriel nous servira pour développer nos scripts et sondes pour Centreon/Nagios. Alors un conseil si vous voulez suivre les prochains tutoriels, familiariser vous bien avec CPAN.

Vous pouvez télécharger le fichier PerlMod en cliquant sur ce lien : PerlMod

That’s All.