OCSInventory NG : Agent unifié Unix sous Mac OS X



Documents pareils
[ GLPI et OCS pour Gentoo 2006] ArtisanMicro. Alexandre BALMES

L installation a quelque peu changée depuis les derniers tutos, voici une actualisation.

Tutoriel compte-rendu Mission 1

Projet Administration Réseaux

Direction des Systèmes d'information

Ocs Inventory et GLPI s appuie sur un serveur LAMP. Je vais donc commencer par installer les paquets nécessaires.

GLPI OCS Inventory. 1. Prérequis Installer un serveur LAMP : apt-get install apache2 php5 libapache2-mod-php5 apt-get install mysql-server php5-mysql

Service Informatique et Télématique (SITEL), Emile-Argand 11, 2009 Neuchâtel, Tél ,

PRO CED U RE D I N STALLATI O N

sshgate Patrick Guiran Chef de projet support

Notes pour l'installation d'une version de Eprints sur une machine CentOS4.2 Stéphanie Lanthier Le jeudi 17 février 2006

Tuto 2 : Configuration Virtual box, Configuration et installation du serveur XiBO

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

Installation UpdatEngine serveur (CentOs apache2 / MySQL)

Vanilla : Virtual Box

Client windows Nagios Event Log

Table des matières. 1. Installation de VMware ESXI Pré-requis Installation... 3

Tutoriel Création d une source Cydia et compilation des packages sous Linux

TP LINUX : LINUX-SAMBA SERVEUR DE FICHIERS POUR UTILISATEURS WINDOWS

Note : Ce tutoriel a été réalisé sur GNU/Linux (Ubuntu) avec un serveur LAMP installé en local.

Présentation, mise en place, et administration d'ocs Inventory et de GLPI

Les différentes méthodes pour se connecter

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

Installation de Zabbix

Oracle WebLogic Server (WLS) 11gR1 ( et ) Installation sur Oracle Linux 5 et 6 Hypothèses Installation Oracle Linux 5 (OL5)

Procédure d Installation et de mise à jour du client CAN-8 32 bits

VoD ( Video on Demand ) avec VLC

Oracle Learning Library Tutoriel Database 12c Installer le logiciel Oracle Database et créer une Database

Classe et groupe : 1P 3 SEN TRI. Ubuntu : serveur Contrôleur de Domaine (PDC) avec SAMBA

Installation et configuration d OCS/GLPI sur un Serveur Debian

POVERELLO KASONGO Lucien SIO 2, SISR SITUATION PROFESSIONNELLE OCS INVENTORY NG ET GLPI

Guide d'installation de la base de données ORACLE 10g ( ) pour linux FEDORA CORE 4.

Sauvegarde sous MAC avec serveur Samba

Installation des outils OCS et GLPI

Installation d'un serveur sftp avec connexion par login et clé rsa.

Guide Installation Serveur Extensive Testing

Guide Installation Serveur Extensive Testing

Installation d' OCS inventory et de GLPI

Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux

Afin d'éviter un message d'erreur au démarrage du service Apache du type :

FreeNAS Shere. Par THOREZ Nicolas

INSTALLATION ET CONFIGURATION D'UN SERVEUR WEB SUR MAC OS X

StreamServe Persuasion SP4

AFTEC SIO 2. Christophe BOUTHIER Page 1

Installation d'une galerie photos Piwigo sous Microsoft Windows.

Titre: Version: Dernière modification: Auteur: Statut: Licence:

ftp & sftp : transférer des fichiers

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server

CONFIGURATION DU SERVEUR DE MAILS EXIM. par. G.Haberer, A.Peuch, P.Saade

Micro-ordinateurs, informations, idées, trucs et astuces utiliser le Bureau à distance

Installation et configuration de Vulture Lundi 2 février 2009

Installer un domaine DNS

TP LINUX : MISE EN PLACE DU SERVEUR DE MESSAGERIE QMAIL

TP n 2 : Installation et administration du serveur ProFTP. Partie 1 : Fonctionnement du protocole FTP (pas plus de 15min)


Etudiant Ella Fitzgerald

Application de lecture de carte SESAM-Vitale Jeebop

DIASER Pôle Assistance Rectorat

Table des matières Hakim Benameurlaine 1

Installation d ORACLE 10g sous Debian Etch

1 Configuration des Fichiers Hosts, Hostname, Resolv.conf

Installation de la plate-forme Liberacces 2.0 «Intégrale» avec LiberInstall

Pharmed. gestion de pharmacie hospitalière. Installation / déploiement

Panda Managed Office Protection. Guide d'installation pour les clients de WebAdmin

PPe jaune. Domingues Almeida Nicolas Collin Leo Ferdioui Lamia Sannier Vincent [PPE PROJET FTP]

(1) Network Camera

Support de cours. Administrer Linux avec Webmin. 2003, Sébastien Namèche - 1

WDpStats Procédure d installation

Gestion d'un parc informatique avec OCS INVENTORY et GLPI

Imprimantes et partage réseau sous Samba avec authentification Active Directory

PPE GESTION PARC INFORMATIQUE

1 / Introduction. 2 / Gestion des comptes cpanel. Guide débuter avec WHM. 2.1Créer un package. 2.2Créer un compte cpanel

Installation d'un TSE (Terminal Serveur Edition)

INSTALLATION NG V2.1 D OCS INVENTORY. Procédure d utilisation. Auteur : GALLEGO Cédric 23/10/2014 N version : v1

Oracle Database SQL Developer Guide D'Installation Release 4.0 E

OCS Inventory & GLPI V.2


Architecture de la plateforme SBC

LINUX REMPLAÇANT WINDOWS NT

TUTORIEL D INSTALLATION D ORACLE ET DE SQL DEVELOPPER TUTORIEL D INSTALLATION D ORACLE...1 ET DE SQL DEVELOPPER...1

COMMENT INSTALLER LE SERVEUR QIPAIE

Serveur Acronis Backup & Recovery 10 pour Linux. Update 5. Guide d'installation

04/02/2014 Tutoriel. Lubuntu & glpi. thomas [NOM DE LA SOCIETE]

Installation Oracle 10g : Installation sur Solaris 10 x86

Dispositions relatives à l'installation :

Axel Remote Management

«Astrophysique et instrumentations associées» Cours UNIX Benoît Semelin

CASE-LINUX MAIL - ROUNDCUBE


Tutoriel de formation SurveyMonkey

Déploiement de SAS Foundation

PROXY SQUID-SQARD. procédure

VXPERT SYSTEMES. CITRIX NETSCALER 10.1 et SMS PASSCODE 6.2. Guide d installation et de configuration pour Xenapp 6.5 avec SMS PASSCODE 6.

Introduction à Linux (pour le HPC) «Linux 101» Présentation :

Guide de l'agent de notification

Procédure d utilisation et de paramétrage (filtrage) avec IPFIRE

équipement radio Procédure

Transcription:

OCSInventory NG : Agent unifié Unix sous Mac OS X NOTE : Il semblerait que les versions 1.0 et 1.0.1 de l'agent unifié aient un bug sous Mac OS X et soient instables : l'agent fonctionne normalement mais s'arrête après avoir effectué sa première remontée vers le serveur (bug signalé à Goneri notamment). Toutefois, le tutoriel ci-dessous fonctionne avec les versions 0.0.9.2, 1.0 et 1.0.1 de l'agent unifié. Personnellement, j'utilise la version 0.0.9.2 pour sa stabilité. Le but de ce tutoriel est de créer un agent Mac OS X (10.3.9 minimum) basé sur l'agent unifié unix et son package d'installation pour simplifier son déploiement. Je me suis basé sur les informations données par Wes Young (saxjazman@gmail.com) qui se trouve essentiellement dans le repertoire tools/macosx des sources de l'agent unifié unix. Sommaire : 1. Pré-requis 2. Préparation Perl 3. Compilation 4. Création d'un installeur adapté à votre environnement 5. Création d'un installeur "universel" 6. Désinstallation propre de l'agent OCSNG pour Mac OS X 1. Pré-requis Ce qu'il vous faut : - XCode 3 (à installer depuis le DVD d'installation de Mac OS X ou à télécharger librement - enregistrement requis - sur http://developer.apple.com/technology/xcode.html) - l'agent unifié Unix (à télécharger sur http://nana.rulezlan.org/~goneri/ocsinventory-agent) - une connexion internet active pour le téléchargement et l'installation des modules Perl avant compilation. A titre d'information, XCode intègre une version de Perl suffisante pour l'agent. NOTE : Un package d'installation et une archive qui contient tout ce qui est nécessaire à la création d'un package «universel» sont téléchargeables à l'adresse suivante : http://www.ocsinventory-ng.org/index.php?page=1-02 Si vous voulez préparer un package adapté à votre environnement, continuez ce tutoriel. 2. Préparation Perl L'agent est développé en Perl et Wes Young a préféré intégrer dans l'agent les dépendances Perl nécessaires à son fonctionnement plutôt que de demander à l'utilisateur d'installer manuellement ces modules à chaque installation. Du coup, il est nécessaire à la création de l'exécutable Mac d'installer ces dépendances au moins une fois. Pour ce faire, il faut lancer cpan dans un Terminal : $ perl MCPAN e shell Installer ensuite les modules suivants avec la commande install. Exemple : cpan> install Digest::MD5 Liste des modules à installer : Digest::MD5 XML::Simple Net::IP LWP Mac::SysProfile Modules optionnels (voir le README à la racine de l'agent unifié pour de plus amples informations) : Proc::Daemon Proc::PID::File ipmitoolif

Compress::Zlib Une fois ces modules installés, il faut changer une configuration de cpan pour pouvoir créer la librairie nécessaire à l'agent. Toujours dans cpan, lancez la commande suivante : cpan> o conf makepl_arg 'LIB=~/darwin perl lib PREFIX= perl only' cpan> o conf commit cpan> quit Décompressez les sources de l'agent unifié : $ tar xvzf Ocsinventory Agent x.x.x.tar.gz (remplacez x.x.x par la version de l'agent) Rendez-vous ensuite dans le répertoire des sources de votre agent réservé à la partie Mac OS X : $ cd Ocsinventory Agent x.x.x/tools/macosx/scripts Lancez le script de création des dépendances Perl pour l'agent : $ perl./create darwin perl lib_fromcpan.pl Ce script va créer un répertoire darwin-perl-lib à la racine de votre répertoire personnel. NE DEPLACEZ PAS CE REPERTOIRE! Il est nécessaire à la compilation de l'agent de la prochaine étape. Une fois le script exécuté, retournez dans cpan et remettez les options modifiées précédemment d'aplomb : $ perl MCPAN e shell cpan> o conf makepl_arg '' cpan> o conf commit cpan> quit 3. Compilation Rendez-vous dans le répertoire macosx des sources de l'agent : $ cd.. (si vous étiez précédemment dans le répertoire scripts) Lancez le script de compilation de l'agent : $ sh./buildme.sh Le script va s'exécuter et vous demandera à un moment donné de rentrer votre mot de passe d'utilisateur (présence d'une commande sudo dans le script). Voilà, vous avez maintenant plusieurs fichiers/répertoires nouvellement créés dans le répertoire courant (normalement ~/Ocsinventory-Agent-x.x.x/tools/macosx) et notamment un fichier unified_unix_agent-macosx.zip qui contient tout ce qui est nécessaire pour votre travail de création de package de déploiement. Copiez ce fichier dans votre répertoire personnel et dezippez-le. Vous devez alors avoir un répertoire ~/unified_unix_agent-macosx/. On va maintenant travailler là dedans. 4. Création d'un installeur adapté à votre environnement Lorsque je parle d'un installeur «adapté à votre environnement», je veux dire qu'il est directement configuré pour fonctionner dans votre environnement (il dispose déjà de son adresse de serveur et de son certificat). Rendez-vous dans le répertoire de l'agent nouvellement créé :

$ cd ~/unified_unix_agent macosx Ce répertoire contient normalement les fichiers/répertoires suivants : $ ls la total 104 drwxr xr x 13 test test 442 16 avr 13:36. drwx r x@ 67 test test 2278 16 avr 13:43.. rw r r 1 test test 2860 16 avr 13:36 INSTALL drwxr xr x 3 test test 102 16 avr 13:36 OCSNG.pkg rw r r 1 test test 2500 16 avr 13:36 README rw r r 1 test test 51 16 avr 13:36 cacert.pem drwxr xr x 4 test test 136 16 avr 13:36 launchfiles rw r r 1 test test 434 16 avr 13:36 modules.conf rw r r 1 test test 966 16 avr 13:36 multicritere.php MacOSX.patch rwxr xr x 1 test test 22708 16 avr 13:36 ocsinventory agent rw r r 1 test test 89 16 avr 13:36 ocsinventory agent.cfg drwxr xr x 13 test test 442 16 avr 13:36 scripts rw r r 1 test test 1645 16 avr 13:36 tele_package.php MacOSX.patch A partir d'ici, je vous livre ma méthode personnelle. A l'origine, Wes Young a créé un multitude de petits scripts qui permettent d'automatiser toutes les tâches suivantes. Toutefois, comme j'ai modifié la manière de lancer l'agent (en tant que root et non en tant qu'utilisateur _ocsng nouvellement créé pour l'occasion), je n'utilise plus ses scripts. Si vous voulez utiliser la méthode de Wes Young, lisez le fichier INSTALL. Attention : Wes n'utilise pas PackageMaker livré avec XCode mais Iceberg (http://s.sudre.free.fr/software/iceberg.html). Il nous faut rajouter ici l'application OCSNG.app qui se trouve dans Ocsinventory-Agent-x.x.x/tools/macosx. Si le répertoire Ocsinventory-Agent-x.x.x se trouve dans votre répertoire home, vous pouvez le faire par la commande suivante : $ cp R../Ocsinventory Agent x.x.x/tools/macosx/ocsng.app./ Du coup, vous devez avoir un répertoire unified_unix_agent-macosx qui contient les éléments suivants : $ ls la total 104 drwxr xr x 15 test test 510 16 avr 14:49. drwx r x@ 67 test test 2278 16 avr 13:43.. rw r r 1 test test 2860 16 avr 13:36 INSTALL drwxr xr x 3 test test 102 16 avr 14:49 OCSNG.app drwxr xr x 3 test test 102 16 avr 13:36 OCSNG.pkg drwxr xr x 3 test test 102 16 avr 14:43 OCSNG_Installer.pmdoc rw r r 1 test test 2500 16 avr 13:36 README rw r r 1 test test 51 16 avr 13:36 cacert.pem drwxr xr x 4 test test 136 16 avr 13:36 launchfiles rw r r 1 test test 434 16 avr 13:36 modules.conf rw r r 1 test test 966 16 avr 13:36 multicritere.php MacOSX.patch rwxr xr x 1 test test 22708 16 avr 13:36 ocsinventory agent rw r r 1 test test 89 16 avr 13:36 ocsinventory agent.cfg drwxr xr x 13 test test 442 16 avr 13:36 scripts rw r r 1 test test 1645 16 avr 13:36 tele_package.php MacOSX.patch Ouvrez dans un éditeur texte (personnellement, j'utilise Smultron - http://smultron.sourceforge.net) le fichier ocsinventory-agent.cfg. Modifiez la première ligne server=... pour y mettre votre propre nom de serveur. Exemple : server=http://ocsinventoryserveur.mondomaine.com/ocsinventory Vous pouvez aussi mettre simplement le nom du serveur ou son adresse IP, cela fonctionne. Exemple : server=ocsinventoryserveur.mondomaine.com ou

server=10.1.1.1 Vous pouvez aussi enregistrer ici des informations de TAG par exemple (tag=xxxxx). Sauvez et fermez. Ouvrez ensuite launchfiles/org.ocsng.agent.plist avec Property List Editor (intégré dans XCode) et modifiez la valeur de la clef UserName de '_ocsng' en 'root'. Sauvez et fermez. Ouvrez ensuite launchfiles/10_3_9-startup/ocsinventory/ocsinventory avec un éditeur de texte. Modifiez '_ocsng' en 'root' à la ligne 22 et effacez "sudo -u _ocsng" de la ligne 24 (il ne doit rester que '/Applications/OCSNG.app/Contents/ MacOS/OCSNG'). Sauvez et fermez. Remplacez ensuite le fichier cacert.pem par votre propre certificat (nécessaire pour le déploiement d'applications/fichiers par l'agent). Ensuite, copiez les éléments suivants dans le répertoire Contents/Resources de l'appication OCSNG.app (dans un Terminal) : $ cp modules.conf./ocsng.app/contents/resources $ cp ocsinventory agent.cfg./ocsng.app.contents/resources $ cp cacert.pem./ocsng.app/contents/resources $ cp R launchfiles/10_3_9 startup./ocsng.app/contents/resources $ cp launchfiles/org.ocsng.agent.plist./ocsng.app/contents/resources Créez un nouveau fichier avec un éditeur de texte, que vous nommerez post_script.sh et que vous enregistrerez dans ~/unified_unix_agent-macosx. Copiez/collez le script suivant : #!/bin/sh echo 'determining OS Version' OSVER=`uname r` echo "OS: $OSVER" sudo chown R root:wheel /Applications/OCSNG.app sudo chmod R 711 /Applications/OCSNG.app PREFIX="/Applications/OCSNG.app/Contents/Resources" TPATH="/etc/ocsinventory agent" sudo mkdir $TPATH/ sudo chown root:admin $TPATH/ sudo chmod 770 $TPATH/ sudo cp $PREFIX/ocsinventory agent.cfg $TPATH/ sudo cp $PREFIX/modules.conf $TPATH/ sudo chmod R 770 $TPATH/ TPATH="/var/lib/ocsinventory agent" sudo mkdir p $TPATH sudo mkdir p $TPATH/http: VOTRESERVEUR_ocsinventory sudo cp $PREFIX/cacert.pem $TPATH/http: VOTRESERVEUR_ocsinventory/ sudo chown R root:admin $TPATH TPATH="/var/log/ocsng.log" sudo touch $TPATH sudo chown root:admin $TPATH sudo chmod 660 $TPATH if [ "$OSVER" == "7.9.0" ]; then echo "Found Jaguar OS, using 10.3 StartupItems setup" TPATH="/Library/StartupItems"

sudo cp R $PREFIX/10_3_9 startup/ocsinventory $TPATH/ sudo chown R root:wheel $TPATH/OCSInventory sudo chmod 755 $TPATH/OCSInventory sudo chmod 644 $TPATH/OCSInventory/StartupParameters.plist sudo chmod 755 $TPATH/OCSInventory/OCSInventory echo 'Starting Service using Sudo' sudo /Library/StartupItems/OCSInventory/OCSInventory start else echo "Found Tiger or newer OS, using LaunchAgent plists" TPATH="/Library/LaunchDaemons" sudo cp $PREFIX/org.ocsng.agent.plist $TPATH/ sudo chown root:wheel $TPATH/org.ocsng.agent.plist sudo chmod 644 $TPATH/org.ocsng.agent.plist fi echo 'Loading Service' sudo launchctl load $TPATH/org.ocsng.agent.plist echo 'done' Pensez à modifier dans le script le nom VOTRESERVEUR par le nom de votre serveur dans les lignes qui traite du répertoire /var/lib/ocsinventory-agent (lignes 21 et 22 normalement). Sauvez et fermez. Ouvrez PackageMaker (dans /Developer/Applications/Utilities). Nommez votre organisation et choisissez Mac Os X v10.3 Panther comme Minimum Target. Sauvez immédiatement votre fichier dans le répertoire ~/unified_unix_agent-macosx sous le nom que vous voulez (OCSNG_Installer.pmdoc par exemple). Rentrez un titre dans la zone Title : OCSNG Mac OS X Agent par exemple. Décochez 'Volume selected by user' et cochez 'System Volume' dans la zone Install Destination. Vérifiez que User Sees est sur 'Easy and Custom Install'. Faites ensuite glisser l'application OCSNG vers la zone Contents de votre fenêtre PackageMaker. Dans l'onglet Configuration, décochez la case 'Allow custom location', vérifiez que la Destination est bien /Applications et cliquez sur le petit menu déroulant à droite de la ligne Install pour cocher l'option 'Relative to project' (cette option vous permettra ensuite de pouvoir déplacer comme vous le voulez votre répertoire source sans affecter le fichier.pmdoc). 'Restart Action' doit être sur 'None' et la case 'Require admin authentification' doit être cochée. Dans l'onglet Components, décochez la case 'Allow Relocation'. Dans l'onglet Scripts, allez sur la ligne Postflight, cliquez sur le petit menu déroulant à droite de la ligne pour cocher l'option 'Relative to project' et tapez ensuite 'post_script.sh' dans la ligne. Vous pouvez maintenant cliquer sur Build pour créer votre package. Il aura normalement le même nom que votre Title (OCSNG Mac OS X Agent.mpkg dans mon exemple). Si aucune erreur ne survient pendant la création, votre package est disponible pour un déploiement manuel. Attention, ce package n'est utilisable que dans votre environnement. 5. Création d'un installeur "universel" Lorsque je parle d'un installeur "universel", je veux dire que c'est un installeur de l'agent qui demande en fin d'installation de préciser le nom du serveur OCSNG et d'indiquer le certificat à utiliser. Ce certificat, s'il ne s'appelle pas cacert.pem, sera correctement renommé. Remarque : Cet installeur est disponible au téléchargement à l'adresse : http://www.ocsinventory-ng.org/index.php? page=1-02 Vous trouverez aussi à cette adresse une archive qui contient déjà les différents éléments nécessaires à la création de ce

type de package, de façon à pouvoir directement l'adpater sans passer par la partie compilation (partie 2 et 3 de ce tuto). Rendez-vous dans le répertoire de l'agent nouvellement créé : $ cd ~/unified_unix_agent macosx Ce répertoire contient normalement les fichiers/répertoires suivants : $ ls la total 104 drwxr xr x 13 test test 442 16 avr 13:36. drwx r x@ 67 test test 2278 16 avr 13:43.. rw r r 1 test test 2860 16 avr 13:36 INSTALL drwxr xr x 3 test test 102 16 avr 13:36 OCSNG.pkg rw r r 1 test test 2500 16 avr 13:36 README rw r r 1 test test 51 16 avr 13:36 cacert.pem drwxr xr x 4 test test 136 16 avr 13:36 launchfiles rw r r 1 test test 434 16 avr 13:36 modules.conf rw r r 1 test test 966 16 avr 13:36 multicritere.php MacOSX.patch rwxr xr x 1 test test 22708 16 avr 13:36 ocsinventory agent rw r r 1 test test 89 16 avr 13:36 ocsinventory agent.cfg drwxr xr x 13 test test 442 16 avr 13:36 scripts rw r r 1 test test 1645 16 avr 13:36 tele_package.php MacOSX.patch Il nous faut rajouter ici l'application OCSNG.app qui se trouve dans Ocsinventory-Agent-x.x.x/tools/macosx. Si le répertoire Ocsinventory-Agent-x.x.x se trouve dans votre répertoire home, vous pouvez le faire par la commande suivante : $ cp R../Ocsinventory Agent x.x.x/tools/macosx/ocsng.app./ Du coup, vous devez avoir un répertoire unified_unix_agent-macosx qui contient les éléments suivants : $ ls la total 104 drwxr xr x 15 test test 510 16 avr 14:49. drwx r x@ 67 test test 2278 16 avr 13:43.. rw r r 1 test test 2860 16 avr 13:36 INSTALL drwxr xr x 3 test test 102 16 avr 14:49 OCSNG.app drwxr xr x 3 test test 102 16 avr 13:36 OCSNG.pkg drwxr xr x 3 test test 102 16 avr 14:43 OCSNG_Installer.pmdoc rw r r 1 test test 2500 16 avr 13:36 README rw r r 1 test test 51 16 avr 13:36 cacert.pem drwxr xr x 4 test test 136 16 avr 13:36 launchfiles rw r r 1 test test 434 16 avr 13:36 modules.conf rw r r 1 test test 966 16 avr 13:36 multicritere.php MacOSX.patch rwxr xr x 1 test test 22708 16 avr 13:36 ocsinventory agent rw r r 1 test test 89 16 avr 13:36 ocsinventory agent.cfg drwxr xr x 13 test test 442 16 avr 13:36 scripts rw r r 1 test test 1645 16 avr 13:36 tele_package.php MacOSX.patch Ouvrez dans un éditeur texte (personnellement, j'utilise Smultron - http://smultron.sourceforge.net) le fichier ocsinventory-agent.cfg. Supprimez la ligne 'server=...' Sauvez et fermez. Ouvrez ensuite launchfiles/org.ocsng.agent.plist avec Property List Editor (intégré dans XCode) et modifiez la valeur de la clef UserName de '_ocsng' en 'root'. Sauvez et fermez. Ouvrez ensuite launchfiles/10_3_9-startup/ocsinventory/ocsinventory avec un éditeur de texte. Modifiez '_ocsng' en 'root' à la ligne 22 et effacez "sudo -u _ocsng" de la ligne 24 (il ne doit rester que '/Applications/OCSNG.app/Contents/ MacOS/OCSNG'). Sauvez et fermez.

Ouvrez Editeur de Script (dans /Applications/AppleScript). Copiez/Collez l'applescript suivant : (* This script collects server addresse, tag reference and certificat file for the OCSNG agent *) Get the server name display dialog "What is your OCSNG Server addresse?" & return & "(format : server.domain.ext ; exemple : ocsinventory.mydomain.com)" default answer "" buttons {"OK"} default button 1 set the server_addresse to the text returned of the result is it the good name? display dialog "Check your server addresse :" & return & return & server_addresse & return & return & "Is it right?" buttons {"Yes", "No"} default button 2 set the validation to the button returned of the result if the validation is not "Yes" then display dialog "What is the good addresse :" & return & "(format : server.domain.ext ; exemple : ocsinventory.mydomain.com)" & return & "BE CAREFUL : if you don't write the good addresse, you must install again the agent." default answer "" buttons {"OK"} default button 1 set the server_addresse to the text returned of the result end if récupération du TAG display dialog "What TAG would you like for this computer?" & return default answer "" buttons {"OK"} default button 1 set the computer_tag to the text returned of the result correct file /etc/ocsinventory agent.cfg do shell script "echo 'server=" & server_addresse & "' >> /etc/ocsinventoryagent/ocsinventory agent.cfg" with administrator privileges do shell script "echo 'tag=" & computer_tag & "' >> /etc/ocsinventoryagent/ocsinventory agent.cfg" with administrator privileges do shell script "date >> /var/log/install.log" do shell script "echo 'serveur : " & server_addresse & "' >> /var/log/install.log" change directory name /var/lib/ocsinventory agent/http: server_ocsinventory do shell script "mv /var/lib/ocsinventory agent/http: server_ocsinventory /var/ lib/ocsinventory agent/http: " & server_addresse & "_ocsinventory" with administrator privileges do shell script "date >> /var/log/install.log" do shell script "ls la /var/lib/ocsinventory agent >> /var/log/install.log" do shell script "echo 'Renommage OK' >> /var/log/install.log" get certificat set certificat to choose file with prompt "Where is your certificat file" default location ((path to desktop folder)) without multiple selections allowed and invisibles do shell script "cp " & (POSIX path of (certificat as string)) & " /var/lib/ocsinventory agent/http: " & server_addresse & "_ocsinventory" with administrator privileges do shell script "date >> /var/log/install.log" do shell script "ls la /var/lib/ocsinventory agent/http: " & server_addresse & "_ocsinventory >> /var/log/install.log" do shell script "echo 'Certificat OK' >> /var/log/install.log" right section do shell script "chown R root:admin /var/lib/ocsinventory agent" with administrator privileges do shell script "date >> /var/log/install.log" do shell script "ls la /var/lib/ocsinventory agent >> /var/log/install.log" do shell script "echo 'chown OK' >> /var/log/install.log"

do shell script "chmod R 755 /var/lib/ocsinventory agent" with administrator privileges do shell script "date >> /var/log/install.log" do shell script "ls la /var/lib/ocsinventory agent >> /var/log/install.log" do shell script "echo 'chmod OK' >> /var/log/install.log" do shell script "sh /Applications/OCSNG.app/Contents/Resources/post_post_script.sh" with administrator privileges Enregistrez-le en tant qu'application sous le nom 'validat_adr_server' dans le répertoire ~/unified_unix_agent-macosx. Fermez Editeur de script. NOTE : à ce niveau-là, mes compétences en développement étant minime, je tiens à signaler que l'applescript ci-dessus est largement optimisable, notamment en ce qui concerne la partie "validation du nom du serveur". En effet, je fais afficher une fenêtre qui indique le nom entré précédemment et qui demande de confirmer ou de recommencer mais seulement une fois. On ne peut pas recommencer plusieurs fois en cas d'erreur répétée. Je pense que c'est surtout ce point qu'il faut revoir! Créez un nouveau fichier avec un éditeur de texte, que vous nommerez post_post_script.sh et que vous enregistrerez dans ~/unified_unix_agent-macosx. Copiez/collez le script suivant : #!/bin/sh echo 'determining OS Version' OSVER=`uname r` echo "OS: $OSVER" PREFIX="/Applications/OCSNG.app/Contents/Resources" if [ "$OSVER" == "7.9.0" ]; then echo "Found Jaguar OS, using 10.3 StartupItems setup" TPATH="/Library/StartupItems" sudo cp R $PREFIX/10_3_9 startup/ocsinventory $TPATH/ sudo chown R root:wheel $TPATH/OCSInventory sudo chmod 755 $TPATH/OCSInventory sudo chmod 644 $TPATH/OCSInventory/StartupParameters.plist sudo chmod 755 $TPATH/OCSInventory/OCSInventory echo 'Starting Service using Sudo' sudo /System/Library/StartupItems/OCSInventory/OCSInventory start else echo "Found Tiger or newer OS, using LaunchAgent plists" TPATH="/Library/LaunchDaemons/" sudo cp $PREFIX/org.ocsng.agent.plist $TPATH sudo chown root:wheel $TPATH/org.ocsng.agent.plist sudo chmod 644 $TPATH/org.ocsng.agent.plist echo 'Loading Service' sudo launchctl load $TPATH/org.ocsng.agent.plist fi sudo chown R root:root /Applications/OCSNG.app sudo chmod R 711 /Applications/OCSNG.app echo 'done' Ensuite, copiez les éléments suivants dans le répertoire Contents/Resources de l'appication OCSNG.app (dans un Terminal) :

$ cp modules.conf./ocsng.app/contents/resources $ cp ocsinventory agent.cfg./ocsng.app.contents/resources $ cp R launchfiles/10_3_9 startup./ocsng.app/contents/resources $ cp launchfiles/org.ocsng.agent.plist./ocsng.app/contents/resources $ cp post_post_script.sh./ocsng.app/contents/resources $ cp validat_adr_serveur.app./ocsng.app/contents/resources Créez un nouveau fichier avec un éditeur de texte, que vous nommerez post_script.sh et que vous enregistrerez dans ~/unified_unix_agent-macosx. Copiez/collez le script suivant : #!/bin/sh echo 'determining OS Version' OSVER=`uname r` echo "OS: $OSVER" sudo chown R root:wheel /Applications/OCSNG.app sudo chmod R 711 /Applications/OCSNG.app PREFIX="/Applications/OCSNG.app/Contents/Resources" TPATH="/etc/ocsinventory agent" sudo mkdir $TPATH/ sudo chown root:admin $TPATH/ sudo chmod 770 $TPATH/ sudo cp $PREFIX/ocsinventory agent.cfg $TPATH/ sudo cp $PREFIX/modules.conf $TPATH/ sudo chmod R 770 $TPATH/ TPATH="/var/lib/ocsinventory agent" sudo mkdir p $TPATH sudo mkdir p $TPATH/http: serveur_ocsinventory sudo chown R root:admin $TPATH TPATH="/var/log/ocsng.log" sudo touch $TPATH sudo chown root:admin $TPATH sudo chmod 660 $TPATH exec $PREFIX/validat_adr_server.app echo 'done' Sauvez et fermez. Ouvrez PackageMaker (dans /Developer/Applications/Utilities). Nommez votre organisation et choisissez Mac Os X v10.3 Panther comme Minimum Target. Sauvez immédiatement votre fichier dans le répertoire ~/unified_unix_agent-macosx sous le nom que vous voulez (OCSNG_Installer.pmdoc par exemple). Rentrez un titre dans la zone Title : OCSNG Mac OS X Agent par exemple. Décochez 'Volume selected by user' et cochez 'System Volume' dans la zone Install Destination. Vérifiez que User Sees est sur 'Easy and Custom Install'. Faites ensuite glisser l'application OCSNG vers la zone Contents de votre fenêtre PackageMaker. Dans l'onglet Configuration, décochez la case 'Allow custom location', vérifiez que la Destination est bien /Applications et cliquez sur le petit menu déroulant à droite de la ligne Install pour cocher l'option 'Relative to project' (cette option vous permettra ensuite de pouvoir déplacer comme vous le voulez votre répertoire source sans affecter le fichier.pmdoc). 'Restart Action' doit être sur 'None' et la case 'Require admin authentification' doit être cochée. Dans l'onglet Components, décochez la case 'Allow Relocation'. Dans l'onglet Scripts, allez sur la ligne Postflight, cliquez sur le petit menu déroulant à droite de la ligne pour cocher l'option 'Relative to project' et tapez ensuite

'post_script.sh' dans la ligne. Vous pouvez maintenant cliquer sur Build pour créer votre package. Il aura normalement le même nom que votre Title (OCSNG Mac OS X Agent.mpkg dans mon exemple). Si aucune erreur ne survient pendant la création, votre package est disponible pour un déploiement manuel. Ce package est utilisable n'importe où : en fin d'installation, une petite fenêtre s'ouvre pour vous demander le nom du serveur puis une autre vous demande de spécifier le chemin du certificat à utiliser. 6. Désinstallation propre de l'agent OCSNG pour Mac OS X : Voici un script shell qui permet la désinstallation propre de l'agent : #!/bin/bash OSVER=`uname r` echo "OSVer is $OSVER" TPID=`ps ax grep /Applications/OCSNG.app/Contents grep v grep awk '{print $1}'` if [ "$TPID"!= "" ]; then echo "killing process: $TPID" sudo kill $TPID fi FILES="/Library/Receipts/OCSNG.pkg/ /etc/ocsinventory agent/ /var/lib/ocsinventory agent/ /Applications/OCSNG.app /var/log/ocsng.log" if [ "$OSVER" == "7.9.0" ]; then FILES="$FILES /Library/StartupItems/OCSInventory" else FILES="$FILES /Library/LaunchDaemons/org.ocsng.agent.plist" fi echo 'Stopping and unloading service' launchctl stop org.ocsng.agent launchctl unload /Library/LaunchDaemons/org.ocsng.agent.plist for FILE in $FILES; do echo 'removing '.$FILE rm Rf $FILE done