Gestion Parc Informatique Client UNIX Rémy Chaumard – BTSIRIS2 – projet GPI client UNIX – revue n3.

Slides:



Advertisements
Présentations similaires
Utilisation avancée de linux
Advertisements

Gestion Parc Informatique Client UNIX Rémy Chaumard – BTSIRIS2 – projet GPI client UNIX – revue n1.
Outil Système Complet d'Assistance Réseau CRDP de l'académie de Lyon Documentation librement inspirée de la présentation.
Ghost (Création d'image Système)‏ C.R.I.P.T Informatique (BOYER Jérôme)‏
Logiciel Assistant Gestion d’Événement Rémi Papillié (Chef d’équipe) Maxime Brodeur Xavier Pajani Gabriel Rolland David St-Jean.
Système de gestion d'entrées pour un cinéma Scanvion Michel – Etudiant 4.
LES FONCTIONS D'UN SYSTEME D'EXPLOITATION ● Le système d'exploitation contrôle entièrement les ressources matérielles locales. ● Il est responsable de.
Commande déportée d'une chaîne de production ● Présentation générale du projet ● Présentation du Testeur ● Programmation.
1- Introduction 1ère partie Le langage SQL 2- Connexion 3- Structure & Contenu 4- Requêtes.
1 Réseaux Communication socket sous Windows. 2 Communication socket sous Windows Communication entre 2 applications sur 2 machines distantes Adresse IP.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Fonctions ● Namespace ● Tests ● Boucles ● Pointeurs, références.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Types et opérations fondamentales ● Tests ● Boucles ● Pointeurs, références.
Gestion Parc Informatique Client UNIX Rémy Chaumard – BTSIRIS2 – projet GPI client UNIX – revue n2.
1 Observer le paramétrage d’un réseau. 2 Dans notre réseau téléphonique habituel, les postes, reliés à un auto-commutateur... …peuvent dialoguer, car.
Présentation du programme
Pour plus de modèles : Modèles Powerpoint PPT gratuitsModèles Powerpoint PPT gratuits Page 1 Free Powerpoint Templates Client service architecteur réseaux.
Module 13 : Implémentation de la protection contre les sinistres.
AMUE – SIFAC Intégration Fichier Mouvements BDF
Outils (MailIntegration et autres)
1.2 Programmes et données Les programmes comme les données sont stockés dans les mémoires (centrales et périphériques) des ordinateurs Informatique.
Eric b, emmanuel l, damien t
Mise en place d’un système de partage de fichiers
Outil Système Complet d'Assistance Réseau
Qu’est-ce un serveur de messagerie?
Centrale de Communication
Mettre à jour les données
Atelier Microfer Lille
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Visite guidée - session 3 Les postes de charge et les gammes
Sécurité - ASA8.x - Import du Plug-in RDP pour utilisation dans WebVPN
Qu'est-ce que POSIX? Une librairie en langage C
Sécurité - VPN - Configurer la mise à jour du client
Wifi sécurisé et Windows
Algorithmique et programmation de modèles numériques
Configuration BGP de base
Installer linux sur VMware
11ième Classe (Mardi, 18 novembre) CSI2572
Centralisation de logs
Unix Raymond Ripp.
Wireshark Capture et analyse de trames IP
Réalisation d’une application web sous le thème: «Mon vétérinaire » par : Benzineb Asmaa et Meftahi Oualid Présentation à Université Saad Dahlab Blida.
Installation des OS par réseaux (PXE)
Présentation OCS-Inventory au LAPP
Programmation système
Codage Indenter le code Limiter la portée des variables Traiter les erreurs en premier Utiliser le switch au delà de 3 tests en cascades Ne jamais utiliser.
Documentation technique (Linux)
Windows Server 2012 Objectifs
Programmation en C++ C++ de base
Système d’exploitation
Plus de 4000 langages....
Mise en place d'un Serveur Radius pour la sécurité d'un réseau Wireless sous Windows Serveur Présenter par le Stagiaire : Etienne Mamadou Guilavogui.
Système d’exploitation UNIX
Prélude CS Mode client-serveur
1 PROJET D’INFORMATIQUE les composants de l'ordinateur Gammoudi Rayéne 7 B 2.
logiciel de communication de protocole GIEGLAN
BIOS- OS Environnement logiciel PC / Traitement numérique / Contrôle.
Module 15 : Implémentation de clients Windows 2000
Les exceptions Le mécanisme des exceptions est destiné à permettre aux fonctions profondes d'une bibliothèque de notifier la survenue d'une erreur aux.
Info Bases de données avancées
Système d’exploitation: Principe IFT6800 – E 2008 Pierre Poulin.
Modern Drivers/BIOS Management Joël Surget Octobre 2018
Unix Raymond Ripp.
YII Yes It Is !.
Bases de données Singleton pour la connexion
TP N°4 Développement d’ une application
THEME : LE BIOS ET LES REGISTRES. INTRODUCTION : Le fonctionnement de l’ordinateur dépend de plusieurs programmes et matériel tel que les BIOS et registres.
LES RESEAUX. Besoin de communication LES RESEAUX Pour communiquer via un réseau informatique Support de transmission Carte réseau Éléments de réseau.
Les Commandes de base Linux. 1 L’aide sur les commandes Linux ◦ help : obtenir de l’aide pour une commande interne du shell. Elle permet aussi d'afficher.
Transcription de la présentation:

Gestion Parc Informatique Client UNIX Rémy Chaumard – BTSIRIS2 – projet GPI client UNIX – revue n3

2 Sommaire: Analyse: Scénario Diagramme de cas d'utilisations général Diagramme de cas d'utilisations Diagramme de séquence acteur / système Diagramme de séquence poste client / serveur Diagramme d'activité Diagramme de classe Programmation: Installation Algorithmes codés Résultat Conclusion Présentation du projet: Présentation générale Présentation de la partie client Rémy Chaumard – BTSIRIS2 – projet GPI client UNIX – revue n3

3 Présentation générale Description: Il s'agit de développer un système d'inventaire automatise en temps réel A la mise en service d'un poste sur le réseau pédagogique de l'établissement, celui ci devra être reconnu par le système suivant le paramétrage et récupérera dans une base de données les informations matérielles et logicielles du matériel connecte. Ce projet se divise en 3 parties: - Serveur: Détecter la connexion d'un poste Recevoir le relevé d'informations du poste Mettre a jour la base de données ( un utilisateur autorisé pourra configurer le service) - Base de donnes: Récupérer la BdD Extraire des informations de la BdD Exécuter des requêtes pré-programmées sur la base de données -Client: Récupérer les informations du poste Traiter les données mises a jour Envoyer les informations au serveur d'inventaire Rémy Chaumard – BTSIRIS2 – projet GPI client UNIX – revue n3

4 Présentation générale Rémy Chaumard – BTSIRIS2 – projet GPI client UNIX – revue n3

5 Présentation de la partie client Utilisateur lambdaPoste clientPoste serveur Envoie la base de données automatiquement Démarrage du poste Un utilisateur lambda démarre son poste. Au lancement de l'ordinateur, le poste client exécute un script pour effectuer un inventaire matériel et logiciel. Il appelle ensuite un programme qui effectue une comparaison entre les fichiers d'inventaires, et envoie le fichier au serveur s'ils sont différents. L'ensemble des opérations est compris dans le chargement du systeme d'exploitation et est complètement transparent pour l'utilisateur. Rémy Chaumard – BTSIRIS2 – projet GPI client UNIX – revue n3

6 Scénario L'utilisateur allume son poste ( système d'exploitation UNIX ). A la fin du démarrage, le script (shell) est lancé automatiquement par le systeme d'exploitation. L'utilisateur peut ensuite ouvrir une session Xwindow (l'ouverture peut se faire automatiquement),. Rémy Chaumard – BTSIRIS2 – projet GPI client UNIX – revue n3 Une fois que le programme a fini de s'executer, l'utilisateur prends la main, il pourra utiliser l'ordinateur comme bon lui semble une fois le chargement de Xwindow terminé. (Possibilité de lancement lors de l'ouverture de Xwindow au lieu du chargement du Systeme d'exploitation.) Le script effectue dans un premier temps la rotation des fichiers log.txt en log.txt.old (s'ils existent déjà, sinon il les crée ainsi que tous les fichiers necessaires au relevé). Il procède ensuite au relevé d'informations, et fait appel au programme en C++.

7 Scénario Le script effectue un inventaire ordonné des informations a récupérer et les stocke dans log.txt dans l'ordre suivant: 1-Table MATERIEL #Processeur – Vendeur #Proceseur – Modele #Carte son #Carte graphique #Processeur – cadence #Date 2-Table HDD #Nom du HDD #Taille totale 3-Table ETHERNET #Nom de la CR #Adresse MAC 4-Table OS #Nom du OS 5-Table LOGICIELS #Nom du logiciel Rémy Chaumard – BTSIRIS2 – projet GPI client UNIX – revue n3 Le script appelle ensuite le programme GPI.exe (C++). Le programme compare les deux fichiers d'inventaire, s'ils sont différents, il établie une connexion avec le serveur et envoie le fichier d'inventaire le plus récent L'intégralité du processus est complètement transparente pour l'utilisateur.

8 Diagramme de cas d'utilisations générale Rémy Chaumard – BTSIRIS2 – projet GPI client UNIX – revue n3

9 Diagramme de cas d'utilisations Rémy Chaumard – BTSIRIS2 – projet GPI client UNIX – revue n3

10 Diagramme de séquence acteur / système Rémy Chaumard – BTSIRIS2 – projet GPI client UNIX – revue n3

11 Diagramme de séquence client / serveur Rémy Chaumard – BTSIRIS2 – projet GPI client UNIX – revue n3

12 Diagramme d'activité [BDD non a jour] Rémy Chaumard – BTSIRIS2 – projet GPI client UNIX – revue n3

13 Diagramme de classes Rémy Chaumard – BTSIRIS2 – projet GPI client UNIX – revue n3

14 Installation Rémy Chaumard – BTSIRIS2 – projet GPI client UNIX – revue n3 Extrait du fichier MANUEL #Programme d'inventaire - client UNIX - Remy Chaumard BTSIRIS2 Lurcat Martigues #Manuel d'utilisation - beta v0.1 ## 1 ## Configurer l'adresse serveur dans $pwd/GPI.conf #PAR DEFAUT Linux, Windows. ## 2 ## Executer la commande: make ## 3 ## Executer la commande: sh INSTALL.sh ## 4 ## Entrer le (nouveau) nom du poste. ## 5 ## Redemarrer pour effectuer l'inventaire. #Recupere le niveau d'execution du systeme actuel: INIT=`cat /etc/inittab | grep ^id\: | cut -b 4` #Creation d'un lien symbolique pour l'execution au demarrage cd /etc/init.d/rc$INIT.d/ if test -e /etc/init.d/rc$INIT.d/S99bootgpi then echo -e "/etc/init.d/rc$INIT.d/S99bootgpi existe deja, il ne sera pas remplace." else ln -s../bootGPI.sh /etc/init.d/rc$INIT.d/S99bootgpi fi touch /etc/X11/xinit/xinitrc.d/GPI/ID_MAT Loop= while [ "$Loop" != "o" ] do echo -e "Ancien nom du poste: `cat /etc/X11/xinit/xinitrc.d/GPI/ID_MAT`" echo -e -n "Entrer le (nouveau) nom du poste: " read ID_MAT echo -e -n "Etes vous sur (o/n) ? " read Loop done echo -e $ID_MAT > /etc/X11/xinit/xinitrc.d/GPI/ID_MAT unset $Loop #!/bin/sh #Programme d'inventaire - client UNIX - Remy Chaumard BTSIRIS2 Lurcat Martigues #Fichier d'installation automatique if cp bootGPI.sh /etc/init.d then chmod a+x /etc/init.d/bootGPI.sh echo -e "\"bootGPI.sh\" copie avec succes" fi if mv GPI.exe /etc/X11/xinit/xinitrc.d/GPI/ then chmod a+x /etc/X11/xinit/xinitrc.d/GPI/GPI.exe echo -e "\"GPI.exe\" deplace avec succes" fi GPI.exe: GPI.o lib.o GPI.conf bootGPI.sh g++ GPI.o lib.o -o GPI.exe rm -f *.o GPI.o: GPI.cpp lib.h g++ -c GPI.cpp lib.o: lib.cpp lib.h GPI.conf g++ -c lib.cpp Extrait du fichier makefile Extrait du fichier INSTALL

15 Logique de boot Rémy Chaumard – BTSIRIS2 – projet GPI client UNIX – revue n3 #!/bin/sh #Programme d'inventaire - client UNIX - Remy Chaumard BTSIRIS2 Lurcat Martigues ### BEGIN INIT INFO # Provides: Script d'Inventaire GPI # Required-Start: $ALL # X-UnitedLinux-Should-Start: $network $local_fs $remote_fs $syslog $named $netdaemons $time $portmap # Required-Stop: # Default-Start: 3 5 # Default-Stop: 0 # Description: Effectue un inventaire automatise de la machine. Projet GPI lycee Jean Lurcat. ### END INIT INFO ### SCRIPT D'INVENTAIRE ### test -s /etc/rc.status &&. /etc/rc.status && rc_reset case "$1" in start) echo -n "Starting bootGPI Service --- projet GPI" Extrait du fichier bootGPI.sh

16 // Fermeture Fichiers File.close(); OldFile.close(); return 0; } Algorithmes Algorithme de comparaison des fichiers int c_Client::Comp () { string Word; string OldWord; bool Id = true; // Ouverture Fichiers ifstream File( Path_File ); ifstream OldFile( Path_OldFile ); c_FileAcces Verification; Verification.Verif(); // Traitement Fichiers for ( unsigned i = 0; !OldFile.eof() && Id; ) { File >> Word; OldFile >> OldWord; if ( Word == "," ) ++i; //La septieme virgule represente la date, sauter cette etape revient a exclure la date de la comparaison pour eviter d'envoyer le fichier a chaque fois. if ( (Word != OldWord) && ( i != 7 ) ) { Id = false; File.close(); c_NetworkCommunication Envoi; Envoi.SendToServer(); } Rémy Chaumard – BTSIRIS2 – projet GPI client UNIX – revue n3 Extrait du fichier lib.cpp

17 Algorithme de vérification d'accès Algorithmes Rémy Chaumard – BTSIRIS2 – projet GPI client UNIX – revue n3 int c_FileAcces::Verif () { //Creation des flux de lecture ifstream File( Path_File ); ifstream OldFile( Path_OldFile ); //Verification de l'ouverture des fichier if ( File.bad() ) { //cerr << "Ouverture de \"log.txt\" echouee" << endl; c_Erreur Erreur; t_Erreur Report = "Acces aux fichiers"; Erreur.Throw_Error ( Report ); return -1; } [...] return 0; } Extrait du fichier lib.cpp

18 Exemple de mise en forme via script Shell: element non- redondant Algorithmes ### TABLE MATERIEL ### echo -n INSERT INTO MATERIEL VALUES \(\"$ID_MAT\", \" >> /etc/X11/xinit/xinitrc.d/log.txt #Date (Sautee lors de la comparaison - format aaaa/mm/jj) echo -n `date +%Y`/`date +%m`/`date +%d` >> /etc/X11/xinit/xinitrc.d/log.txt echo -e \"\)\;'\n' >> /etc/X11/xinit/xinitrc.d/log.txt #echo -e '\r'[##########################______________________]'\c' #Carte graphique echo -n `/sbin/lspci -v | grep VGA\ compatible\ controller` >> /etc/X11/xinit/xinitrc.d/log.txt echo -n \", \" >> /etc/X11/xinit/xinitrc.d/log.txt #echo -e '\r'[####################____________________________]'\c' #Processeur - Cadence (en Mhz xxxx.xxx) echo -n `more /proc/cpuinfo | grep cpu\ MHz | cut -b 12-22` >> /etc/X11/xinit/xinitrc.d/log.txt echo -n \", \" >> /etc/X11/xinit/xinitrc.d/log.txt #echo -e '\r'[#######################_________________________]'\c' Rémy Chaumard – BTSIRIS2 – projet GPI client UNIX – revue n3 Extrait du fichier bootGPI.sh

19 Exemple de mise en forme via script Shell: element redondant Algorithmes ### TABLE ETHERNET ### ETH_lst="`/sbin/ifconfig | grep eth | cut -b 4-5`" for ETH_id in $ETH_lst do done echo -n INSERT INTO ETHERNET VALUES \(0, \"$ID_MAT\", \" >> /etc/X11/xinit/xinitrc.d/log.txt MAC_addr="`/sbin/ifconfig | grep HWaddr | grep eth$ETH_id | tail --bytes=20 | cut -b 0-17 | tr [A- Z] [a-z]`" if test -e /etc/sysconfig/network/ifcfg-eth-id-$MAC_addr then echo -e -n `cat /etc/sysconfig/network/ifcfg-eth-id-$MAC_addr | grep NAME | cut -b 7-`\",\ >> /etc/X11/xinit/xinitrc.d/log.txt elif test -e /etc/sysconfig/network/ifcfg-wlan-id-$MAC_addr then echo -e -n `cat /etc/sysconfig/network/ifcfg-wlan-id-$MAC_addr | grep NAME | cut -b 7-`\",\ >> /etc/X11/xinit/xinitrc.d/log.txt else echo -e -n no name\",\ >> /etc/X11/xinit/xinitrc.d/log.txt fi echo -e \"$MAC_addr\"\)\;'\n' >> /etc/X11/xinit/xinitrc.d/log.txt Rémy Chaumard – BTSIRIS2 – projet GPI client UNIX – revue n3 Extrait du fichier bootGPI.sh

20 Algorithmes int main ( int argc, char* argv[] ) { int Res; try { c_Client Comm; Res = Comm.Comp(); } catch ( t_Erreur RcvdError ) { c_Erreur Erreur; Erreur.Log_Error ( RcvdError ); return -1; } return Res; } Une erreur apparait dans le bloc try.. int c_NetworkCommunication::SendBuffer ( int Sock, const char* BufToSend ) { //Envoi if ( send( Sock, BufToSend, strlen ( BufToSend ), 0 ) < 0 ) { //cerr << "Impossible d'envoyer " << "BufToSend" << " au serveur"" << endl; c_Erreur Erreur; t_Erreur Report = "Envoi"; Erreur.Throw_Error ( Report ); return -1; } return 0; L'envoi echoue, la fonction apelle Throw_Error avec une erreur contenant le libelle "Envoi" Extrait des fichier lib.cpp et GPI.cpp void c_Erreur::Throw_Error( t_Erreur Type_Error ) {throw Type_Error; } int main ( int argc, char* argv[] ) { int Res; try { c_Client Comm; Res = Comm.Comp(); } catch ( t_Erreur RcvdError ) { c_Erreur Erreur; Erreur.Log_Error ( RcvdError ); return -1; } return Res; } L'erreur est interceptee par le bloc catch void c_Erreur::Log_Error ( t_Erreur Type_Error ) { cerr << "Une erreur est survenue. Verifiez le fichier " << Path_GPILOG << " pour plus d'informations." << endl; ofstream Error ( Path_GPILOG ); //Recuperation de la date actuelle time_t TimeBuffer; time(&TimeBuffer); Error << "Erreur : " << Type_Error << " est survenue a la date " << ctime(&TimeBuffer) << "." <<endl; } Rémy Chaumard – BTSIRIS2 – projet GPI client UNIX – revue n3

21 Résultats Extrait du fichier log.txt INSERT INTO MATERIEL VALUES ("ID_07001", "GenuineIntel", "Intel(R) Pentium(R) M processor 1500MHz", "503", "00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 03)", "01:00.0 VGA compatible controller: ATI Technologies Inc M9+ 5C61 [Radeon Mobility 9200 (AGP)] (rev 01) (prog-if 00 [VGA])", " ", "2007/05/21"); Rémy Chaumard – BTSIRIS2 – projet GPI client UNIX – revue n3 INSERT INTO LOGICIELS VALUES (0, "ID_07001", "NetworkManager "); INSERT INTO LOGICIELS VALUES (0, "ID_07001", "OpenEXR "); INSERT INTO LOGICIELS VALUES (0, "ID_07001", "PolicyKit-0.2_git "); INSERT INTO LOGICIELS VALUES (0, "ID_07001", "RealPlayer "); INSERT INTO OS VALUES (0, "ID_07001", "Linux default"); INSERT INTO ETHERNET VALUES (0, "ID_07001", "Sony 82801DB PRO/100 VE (MOB) Ethernet Controller'", "08:00:46:da:9c:03"); INSERT INTO ETHERNET VALUES (0, "ID_07001", "Intel PRO/Wireless 2200BG Network Connection'", "00:0e:35:16:f7:14"); INSERT INTO HDD VALUES (0, "ID_07001", "IC25N060ATMR04-0, ATA DISK drive", 55");

22 Conclusion Le travail a été réalisé: Rémy Chaumard – BTSIRIS2 – projet GPI client UNIX – revue n3 L'exécution automatique du script au démarrage fonctionne. La mise en forme pour insertion automatique dans la BDD fonctionne. Le traitement des erreurs fonctionne. Le transfert du relevé fonctionne. Le relevé d'informations ordonné fonctionne. L'algorithme de comparaison fonctionne. Les normes de communications ont été établies avec l'équipe Serveur. On utilisera le protocole TCP/IP via une communication Socket (port 60000)