Documentation:Teledeploy/fr

From OCS Inventory NG
Jump to: navigation, search

Déployer des paquets ou exécuter des commandes sur les clients

OCS Inventory NG inclut la fonctionnalité de déploiement de paquet sur les ordinateurs clients. Depuis le serveur central de gestion, vous pouvez téléverser les paquets qui seront téléchargés au moyen d'HTTP/HTTPS et lancés par l'agent sur l'ordinateur client.

N.B. : Cette fonctionnalité a été testé seulement avec l'Agent de Service OCS Inventory NG pour Windows.
Comme l'installation du logiciel requiert les privilèges d'Administrateur, l'agent lancé au moyen d'un 
script d'ouverture de session ou par raccourci dans le menu de démarrage sous le compte de l'utilisateur 
qui ne peut être capable de lancer l'installation du logiciel.
Ainsi, le téléchargement en arrière plan du paquet peut prendre beaucoup de temps, et peut bloquer le 
script d'ouverture de session. Nous ne recommandons pas l'utilisation de la fonctionnalité de déploiement
de paquet en utilisant un script d'ouverture de session d'inventaire.

Comment cela fonctionne-t-il ?

Un paquet a 4 composants principaux :

  • une priorité
  • une action
  • optionnellement un fichier ZIP ou TAR.GZ incluant les fichiers ou répertoires que vous désirez
  • et optionnellement une commande à lancer

Il y a 11 niveaux de priorité, niveau 0 à 10. Le niveau 0 est la plus haute priorité et le niveau 10 la plus basse. Un paquet ayant une priorité de niveau 0 sera déployé avant un paquet de niveau 1. Un paquet ayant une priorité de niveau 1 sera déployé avant un paquet de niveau 2 ...

L'action est associé avec le fichier à déployer ou la commande à lancer'. Ce triplet peut être un des suivants :

  • Action de lancement : pour déployer un fichier ZIP ou TAR.GZ et lancer avec ou sans paramètre un fichier exécutable incluant un fichier ZIP ou TAR.GZ.
    Le fichier ZIP ou TAR.GZ sera décompressé dans un répertoire temporaire, et la commmande associée (le nom du fichier exécutable sans le chemin !) sera lancée dans le répertoire temporaire.
    Cette action permettra la réception du code de résultat de la commande lancée.
N.B. : Actuellement il reste encore quelques limitations dans la récupération du code de résultat ; cela devrait être amélioré dans les versions ultérieures.
  • Action d'exécution : pour déployer un fichier ZIP ou TAR.GZ (optionnellement), et lancer avec ou sans paramètre un fichier exécutable incluant ou non un fichier ZIP ou TAR.GZ.
    Si l'exécutable n'est pas inclut dans le fichier ZIP ou TAR.GZ, il doit être une partie de logiciel toujours installé dans l'ordinateur client. Typiquement, cela peut être une commande Windows standard tel qu'un appel de l'installeur Windows, commande RPM, DPKG ou TAR.GZ sur Linux.
    Le fichier ZIP ou TAR.GZ sera décompressé dans un répertoire temporaire, et la commande associée (le nom du fichier exécutable avec le chemin ou les paramètres si besoin) sera lancée dans le répertoire temporaire.
    Cette action ne permettra pas la réception du code de résultat de la commande lancée. Toutefois, cette action vous permettra de faire fonctionner la commande sur chaque ordinateur client, sans déployer aucun fichier. Par exemple, vous pouvez l'utiliser pour faire fonctionner une commande spécifique de configuration du système d'exploitation.
  • Action d'enregistrement' : pour déployer un fichier ZIP ou TAR.GZ et enregistrer seulement son contenu dans un enregistrement de son ordinateur client.
    Ceci n'est pas une commande associée avec une action, seulement un chemin à spécifier où enregistrer les fichiers extraits.
N.B. : Tous les paquets que vous voulez déployer doivent être compressés en ZIP pour l'agent Windows et en TAR.GZ pour les ordinateurs Linux.
Si vous voulez construire votre propre installeur, vous pouvez regarder vers l'Installeur Système NullSoft (http://nsis.sourceforge.net/) ou
l'Installeur Inno (http://www.jrsoftware.org/). 
Ces outils sont des installeurs GPL pour Windows capables de créer un fichier installeur auto-extractible.

Par exemple, cette fonctionnalité vous permet de créer un paquet ZIP incluant l'exécutable Media Player Classic, un sous-répertoire incluant quelques fichiers MP3 et une playlist pour le Media Player Classic référençant ces MP3 dans le sous-répertoire. La commande associée appellera le Media Player Classic avec l'argument de lignes de commande pour lancer la playlist. Une fois les paquets téléchargés sur les clients Windows, les utilisateurs auront le Media Player Classic lancé et jouant les MP3 depuis la playlist. Merveilleux, n'est-ce pas ? ;-)

Vous créez au moyen de la console d'administration votre paquet à déployer. Il est automatiquement décrit par :

  • Une référence dans la base de données, utilisée par le serveur de communication pour demander à l'agent de télécharger le paquet.
  • Un fichier d'information, nommé "info". C'est un fichier XML décrivant le paquet et l'action de l'agent à lancer.
  • 0 ou plusieurs fragments de fichier de données. Le fichier que vous téléversez (si cela est) sera découpé en plusieurs petites parties pour permettre à l'agent de le télécharger partie par partie, et alors de reprendre facilement un téléchargement échoué. Si le téléchargement de fragment échoue, seul ce fragment sera téléchargé une autre fois, et non pas tout le paquet. Il vous sera possible de choisir la taille des fragments en relation avec les capacités de votre réseau.
 N.B. : Tout comme vous aurez téléversé votre paquet au moyen de la console d'administration, vous pourrez configurer
 PHP et Apache pour permettre le téléversement de gros fichiers. 
 Voir § la section intitulée Taille du téléversement pour le déploiement des paquets pour savoir comment le configurer.

Une fois le paquet construit, vous devez l'activer. Cela indique où est localisé le serveur Web SSL (cf déploiement des serveurs) où l'agent sera capable de télécharger le fichier d'information et les fragments de fichiers.

Finalement, vous devez sélectionner sur quel ordinateur vous déploierez le paquet.

Maintenant, l'agent sera capable de déployer le paquet.

Quand l'agent envoie un inventaire au serveur de communication, le serveur de communication dit à l'agent s'il a un ou plusieurs paquets à déployer, avec le niveau de priorité pour chaque paquet, et où il peut trouver les fichiers d'information.

L'agent démarre alors une période de téléchargement. Une période est composée de cycles, définie par l'option de configuration "DOWNLOAD_PERIOD_LENGTH". Par défaut, une période contient une dizaine de cycles.

À chaque cycle, il calcule "le nombre de cycle modulo la priorité des paquets". Si cela est égale à 0, il télécharge les fichiers de fragments de paquets. Après chaque fragment, il attend une période "DOWNLOAD_FRAG_LATENCY" (option de configuration paramétrée à 10 par défaut) avant de télécharger le prochain fragment.

Quand tous les fragments du paquet sont téléchargés, il lance la commande de paquet et attend selon l'option "DOWNLOAD_CYCLE_LATENCY" (option de configuration paramétrée à 60 par défaut) avant de commencer un nouveau cycle et d'incrémenter le nombre de cycle.

Quand tous les cycles de la période ont été exécutés, il attend selon l'option "DOWNLOAD_PERIOD_LATENCY" (option de configuration paramétrée à 0 par défaut).

Si tous les paquets ont été téléchargés et installés avec succès, il s'arrête. Si cela n'est pas le cas, il commence une nouvelle période de cycles.

 ATTENTION : Un niveau de priorité à 0 est un niveau spécial. Tous les paquets avec une priorité à 0 sont téléchargés 
 avant tous les autres paquets avec la plus grande priorité au commencement de chaque cycle. Si le téléchargement échoue, 
 l'agent essaiera de télécharger les paquets à priorité 0 échoués, sans vérifier les autres paquets. 
 Cela peut complètement stopper le déploiement. UTILISER LE NIVEAU DE PRIORITÉ À 0 AVEC PRÉCAUTION !

Vous pouvez utiliser ces paramètres pour personnaliser l'usage de la bande passante de votre réseau. En réduisant les options de latence, vous pouvez réduire le temps de téléchargement des fragments et réduire l'usage de votre réseau.

En réduisant l'option de la longueur de période, vous pouvez mettre en sursis de nouveaux téléchargements de paquets échoués, mais aussi, en réduisant la longueur de la période sur une valeur plus basse que 10, vous pouvez stopper le téléchargement de paquets avec un niveau de priorité plus haute que cette valeur.

Schéma simplifié

SCHEMA TELEDEPLOY simple.jpg

Schéma détaillé

SCHEMA TELEDEPLOY detail.jpg

Requis

Le serveur de déploiement enregistrant les fichiers d'information doit avoir SSL d'activé, car le téléchargement des fichiers d'information de déploiement est très critique. Ce fichier d'information contient la description du paquet et la commande à lancer. Ainsi, si quelqu'un peut usurper votre serveur de déploiement, il peut lancer n'importe quelle commande sur votre ordinateur. C'est pourquoi le serveur de déploiement doit utiliser SSL pour permettre aux agents de s'authentifier au serveur et de s'assurer que c'est le véritable serveur de déploiement.

L'agent doit avoir un certificat pour valider l'authentification au serveur de déploiement. Ce certificat doit être enregistré dans un fichier "cacert.pem" dans le répertoire de l'agent OCS Inventory NG sous Windows et dans le répertoire "/etc/ocsinventory-client" sous Linux.

Sous Windows, vous pouvez utiliser le Packager OCS Inventory NG (voir § la section intitulée Téléverser l'Agent pour le déploiement au moyen du lanceur "OcsLogon.exe") pour créer un installeur de l'agent qui inclut le certificat, ou vous pouvez utiliser le script d'ouverture de session suivant pour copier le fichier du certificat dans le répertoire de l'agent (assurez-vous que l'agent soit installé dans le répertoire "C:\Program Files\OCS Inventory Agent" et que le fichier de certificat est disponible dans la partage "MON_PARTAGE" sur le serveur "MON_SERVEUR").

@echo off
REM Check if CA file exists
if exist “C:\Documents and Settings\All Users\Application Data\OCS Inventory NG\Agent\cacert.pem” goto CA_END
REM CA file does not exists, install it
Copy \\MON_SERVEUR\MON_PARTAGE\cacert.pem “C:\Documents and Settings\All Users\Application Data\OCS Inventory NG\Agent\cacert.pem”
:CA_END

Si vous avez une infrastructure à clé publique, vous devez créer un certificat de serveur valide pour votre serveur de déploiement et copier votre fichier de certificat d'autorité dans le fichier "cacert.pem".

Si vous n'avez pas une infrastructure à clé publique, vous pouvez utiliser votre propre certificat signé pour votre serveur de déploiement, et copier le certificat du serveur dans le fichier "cacert.pem".

Référez-vous à § la section intitulée Utiliser les certificats SSL dans le déploiement des paquets, pour plus d'informations.

Créer les paquets

En tout premier, vous devez créer les paquets.

Teledeploy1.jpg

Pointez votre souris sur le menu "Télédéploiement", et sélectionnez "Création".

Teledeploy2.jpg

Entrez un nom pour votre paquet.

Sélectionnez le système d'exploitation pour votre paquet. Vous pouvez choisir entre Windows et Linux.

Sélectionnez le protocole de téléchargement pour ce paquet. Pour l'instant, seul le protocol HTTP est disponible.

Sélectionnez la priorité du paquet. Vous pouvez choisir un niveau de priorité allant de 0 à 10. Les paquets ayant un niveau de priorité bas seront téléchargés avant ceux ayant un niveau de priorité plus grand, sauf si le téléchargement échoue. (cf § la section intitulée Déploiement des statistiques et validation des succès).

Vous pouvez aussi choisir d'avertir l'utilisateur que quelque chose est entrain de fonctionner sur l'ordinateur. Paramétrez la liste défilante "Prévenir utilisateur" sur "OUI", remplissez le champ "Texte" par le nom de l'utilisateur, combien de temps sera affiché le texte avant que l'installation du paquet s'auto-valide (paramétrez à 0 pour attendre indéfiniment), si l'utilisateur peut annuler le déploiement ou le retarder jusqu'au prochain inventaire.

Vous pouvez aussi spécifier si le déploiement du paquet a besoin de l'interaction utilisateur en paramétrant la liste déroulante "La fin de l'installation nécessite une intervention utilisateur :" sur "OUI", pour par exemple, si l'installeur a besoin que l'utilisateur remplisse des informations avant de terminer.

Enfin, vous pouvez sélectionner une action dans la liste déroulante "Action". Ci-dessous est décrit comment vous pouvez utilisez tout cela.


Déployer les paquets au moyen de l'action "Lancer"

Le paquet que vous désirez déployer a un ou plusieurs fichiers, avec au minimum un fichier exécutable pour lancer l'installation du paquet. Compressez ces fichiers en utilisant un outil ZIP si le paquet est à destination d'ordinateurs sous Windows, ou en utilisant tar et gzip si le paquet est à destination d'ordinateurs sous Linux.

Choisissez l'action Lancer puis cliquez sur le bouton [ Parcourir ] pour sélectionner votre fichier ZIP ou TAR.GZ.

Dans le champ "Nom du fichier :", remplissez simplement le nom du fichier sans son chemin, mais avec, en option, des arguments. Cette commande sera lancée sur l'ordinateur client une fois que le paquet sera téléchargé et décompressé dans un répertoire temporaire.

Dans notre exemple, nous déployons une nouvelle version de l'agent OCS Inventory Agent pour Windows, en utilisant l'installation silencieuse, en spécifiant l'adresse du serveur de Communication "mon_serveur_communication_ocs", en désactivant l'usage des paramètres du proxy d'Internet Explorer et en utilisant le mode de déboguage. Ainsi, le fichier ZIP inclue le fichier "OcsAgentSetup.exe" et contient les informations du champ nommé "Nom de fichier" :

  • OcsAgentSetup.exe /S /SERVER:mon_serveur_communication_ocs /NP /DEBUG
Teledeploy2.jpg

Cliquez sur le bouton [ Envoyer ] pour téléverser le paquet dans la console d'Administration.

Maintenant, vous devez spécifier la taille de chaque fragment du paquet pour permettre à l'agent de télécharger le paquet par petits morceaux. Ceci permet le téléchargement par résumé. Si le téléchargement d'un fragment échoue, seul ce fragment sera téléchargé une autre fois, et non l'ensemble du paquet. Ainsi choisir la taille des fragments permet d'activer cette fonctionnalité réseau.

Teledeploy3.jpg

La console d'administration découpera alors le paquet en fragments et les enregistrera avec le nom du paquet daté dans le répertoire "download" à la racine du répertoire du serveur web Apache. Il créera aussi dans le même répertoire le fichier d'information nommé "info" relatif au paquet, dans un fichier XML décrivant le paquet et l'action de l'agent à lancer.

Teledeploy list.jpg

Déployer les paquets au moyen de l'action "Exécuter"

Le paquet que vous désirez déployer a un ou plusieurs fichiers, avec au minimum un fichier exécutable pour lancer l'installation du paquet. Compressez ces fichiers en utilisant un outil ZIP si le paquet est à destination d'ordinateurs sous Windows, ou en utilisant tar et gzip si le paquet est à destination d'ordinateurs sous Linux.

Choisissez l'action Exécuter puis cliquez sur le bouton [ Parcourir ] pour sélectionner votre fichier ZIP ou TAR.GZ.

Dans le champ "Commande", remplissez le nom du chemin du fichier de l'exécutable à lancer avec ces arguments (le nom complet du chemin n'est pas requis tant que l'application exécutable est listé dans le système, ou est inclu dans le paquet). Cette commande sera lancé sur l'ordinateur client une fois que le paquet sera téléchargé.

Note: Les variables d'environnement sont ajoutables dans la "Commande". Il est permis d'utiliser des variables telles que %SystemDrive%, %SystemRoot%, %windir%, %ProgramFiles%, %CommonProgramFiles%, etc...


Dans notre exemple, nous déployons le logiciel en utilisant l'installation silencieuse de Windows Installer. Ainsi, le fichier ZIP inclue le fichier "software.msi" et le champ de "Commande" :

  • msiexec.exe /i software.msi /quiet
Fr teledeploy4.jpg

Cliquez sur le bouton [ Envoyer ] pour téléverser le paquet dans la console d'Administration.

Maintenant, vous devez spécifier la taille de chaque fragment du paquet pour permettre à l'agent de télécharger le paquet par petits morceaux. Ceci permet le téléchargement par résumé. Si le téléchargement d'un fragment échoue, seul ce fragment sera téléchargé une autre fois, et non l'ensemble du paquet. Ainsi choisir la taille des fragments permet d'activer cette fonctionnalité réseau.

Fr teledeploy5.jpg

La console d'administration découpera alors le paquet en fragments et les enregistrera avec le nom du paquet daté dans le répertoire "download" à la racine du répertoire du serveur web Apache. Il créera aussi dans le même répertoire le fichier d'information nommé "info" relatif au paquet, dans un fichier XML décrivant le paquet et l'action de l'agent à lancer.

Fr teledeploy list2.jpg

Paquets enregistrés au moyen de l'action "Stocker"

Le paquet que vous désirez déployer a un ou plusieurs fichiers, pour être enregistré dans un répertoire spécifique sur les ordinateurs clients. Compressez ces fichiers en utilisant un outil ZIP si le paquet est à destination d'ordinateurs sous Windows, ou en utilisant tar et gzip si le paquet est à destination d'ordinateurs sous Linux.

Choisissez l'action Stocker et cliquez sur le bouton [ Parcourir ] pour sélectionner votre fichier ZIP ou TAR.GZ.

Dans le champ "Chemin", remplissez le nom du chemin où l'agent extraira les fichiers une fois que le paquet sera téléchargé.

Note: Les variables d'environnement sont ajoutables dans la "Commande". Il est permis d'utiliser des variables telles que

%SystemDrive%, %SystemRoot%, %windir%, %ProgramFiles%, %CommonProgramFiles%, etc... Ainsi, si le répertoire requis n'existe pas, il sera récursivement créé.


Dans notre exemple, nous déployons un fichier à enregistrer dans le répertoire "C:\MyFolder".

Fr teledeploy7.jpg

Cliquez sur le bouton [ Envoyer ] pour téléverser le paquet dans la console d'administration.

Maintenant, vous devez spécifier la taille de chaque fragment du paquet pour permettre à l'agent de télécharger le paquet par petits morceaux. Ceci permet le téléchargement par résumé. Si le téléchargement d'un fragment échoue, seul ce fragment sera téléchargé une autre fois, et non l'ensemble du paquet. Ainsi choisir la taille des fragments permet d'activer cette fonctionnalité réseau.

La console d'administration découpera alors le paquet en fragments et les enregistrera avec le nom du paquet daté dans le répertoire "download" à la racine du répertoire du serveur web Apache. Il créera aussi dans le même répertoire le fichier d'information nommé "info" relatif au paquet, dans un fichier XML décrivant le paquet et l'action de l'agent à lancer.

Fr teledeploy list.jpg

Activer les paquets

Une fois que le paquet a été créé, vous devez spécifier où l'agent peut le télécharger.

L'agent en premier téléchargera le fichier d'information. Comme ce fichier est d'une importance très critique, ce téléchargement doit être fait en utilisant HTTPS afin de s'assurer que l'agent s'authentifie auprès du serveur de déploiement. Puis, le téléchargement des fragments de paquet décrits dans le fichier d'information sera fait en utilisant le standard HTTP.

 N.B. : Si vous ne voulez pas utiliser le serveur d'administration comme serveur de déploiement, vous devez copier en premier le répertoire
 "download/paquet_daté" depuis la racine du serveur web Apache de votre serveur d'administration vers un autre serveur. 
 Vous devriez utiliser un utilitaire de synchronisation tel que rsync (http://samba.anu.edu.au/rsync) pour automatiser cette tâche, autrement il vous faudra le faire manuellement.
 
 Vous devriez choisir aussi le fichier d'information hôte sur le serveur web différent de celui qui a les fichiers de fragments. 
 Par exemple, si vous avez de multiple sites géographiques avec un seul serveur de communication central, vous devriez avoir les fichiers 
 d'information hôte sur le serveur de communication, et les fichiers de fragments sur chacun des serveurs web sur chaque site.
 Pour cela, vous avez besoin d'activer un paquet par site, et pour chaque paquet, le fichier d'information sera hébergé sur le serveur de 
 communication et les fragments de fichiers sur les serveurs web par site. 
 Ceci diminuera dramatiquement la bande passante entre vos réseaux.
Teledeploy1.jpg

Pointez votre souris sur le menu "Télédéploiement" et sélectionnez "Activation". Vous verrez ici tous les paquets construits, et aussi TOUS les paquets activés.

Vous pouvez cliquer sur la croix rouge pour supprimer un paquet construit. Ceci supprimera toute référence au paquet dans la base de donnée et effacera aussi les fichiers d'informations et de fragments dans le répertoire de téléchargement de la console d'administration. Ainsi, les paquets supprimés seront indisponibles à l'activation, tous les paquets activés utilisant ce paquet seront supprimés, et aussi les non affectés à des ordinateurs.

Fr teledeploy active1.jpg

Cliquez sur le bouton [ Activer ] de la ligne correspondante au paquet que vous voulez activer.
Dans le champ "Url HTTPS", entrez l'URL HTTPS du fichier d'information de paquet.
Dans le champ "Url HTTP", entrez l'URL HHTP des fichiers de fragments de paquet.

 N.B. :  Ne pas entrer 'localhost' comme URL ! Souvenez-vous que ces URLS sont fournis par les agents.
 Si votre serveur de déploiement HTTP ou HTTPS fonctionne sur des ports non standards, vous devez spécifier le port
 en utilisant la notation standard "adresse_serveur:port_serveur/repertoire".
 Par exemple, votre serveur de déploiement fonctionne sur le port HTTP 8080 et sur le port HTTPS 4343 
 sur le serveur 192.168.1.1, les paquets sont localisés dans le répertoire /download. 
 Vous devez remplir ainsi :
 https url: 192.168.1.1:4343/download
 http url: 192.168.1.1:8080/download

Dans notre cas, nous avons choisi d'utiliser le serveur d'administration comme serveur de déploiement pour les deux fichiers d'information et fichiers de fragments de paquet.

Ainsi, nous avons rempli dans les deux champs quelque chose comme "ocs.domain.local/download".

Fr teledeploy active2.jpg

Cliquez sur le bouton [ Envoyer ]. La console d'administration s'assurera alors que les deux fichiers d'information et de fragments de paquets sont disponibles aux adresses URLs spécifiées.

La colonne "Non notifié" vous montre le nombre d'ordinateurs qui n'ont pas été notifiés qu'ils ont un paquet à télécharger.

La colonne "Succès" vous montre le nombre d'ordinateurs qui ont déployé avec succès le paquet correspondant.

La colonne "Erreurs" vous montre le nombre d'ordinateurs qui ont rencontré une erreur dans le déploiement du paquet correspondant.

L'icône "Stat" vous permet de voir le pourcentage d'ordinateurs qui sont en attente de notification, ceux qui ont été notifiés (le serveur leur demande de déployer le paquet) et ceux qui ont fini le déploiement avec un code de résultat (SUCCESS ou ERROR).

Affecter les paquets aux ordinateurs

Vous pouvez affecter les paquets à l'ordinateur, un par un, en affichant les propriétés de l'ordinateur, en cliquant sur l'icône "Personnalisation" et en ajoutant le paquet. Toutefois, ce n'est vraiment pas la meilleure façon si vous voulez affecter des paquets à plusieurs ordinateurs.

La meilleure façon est d'utiliser la "recherche multicritères" pour rechercher les ordinateurs que vous désirez, et d'affecter les paquets à tous ces ordinateurs en une seule fois.

Dans l'exemple suivant, nous affectons les paquets que nous avons créés à tous les ordinateurs MS Windows XP.

En premier, nous recherchons les ordinateurs MS Windows.

Fr teledeploy active3.jpg

La recherche nous retourne les ordinateurs sur répondant à ce critère.

Fr teledeploy active4.jpg

Deux possibilités sont alors possibles :

  1. Sélectionnez à l'aide des bouton radio à droite du tableau les ordinateurs sur lesquels vous voulez déployer le paquet
  2. Ne sélectionnez rien et cliquez sur l'icône "Déployer"

Une fenêtre s'ouvre, vous laissant donc le choix d'attribuer le paquet uniquement à la sélection effectuée avec les boutons radio, ou attribuer le paquet à toutes les machines répondant aux critères de la recherche.

Fr teledeploy active5.jpg

Cliquez sur l'icône "SELECT" sur la ligne du paquet pour affecter ce paquet à tous les ordinateurs.

Les agents sur les ordinateurs seront notifiés au prochain contact avec le serveur de communication qu'ils ont tel paquet à déployer. Ainsi, tant que l'agent ne contacte pas le serveur de communication, l'ordinateur apparaîtra dans la console d'administration avec le statut "EN ATTENTE DE NOTIFICATION". Une fois que l'agent aura contacté le serveur de communication, le statut deviendra "NOTIFIÉ".

Désactiver les paquets

Teledeploy1.jpg

Pointez votre souris sur le menu "Télédéploiement" et sélectionnez "Activés". Vous verrez ici tous les paquets disponibles pour le déploiement sur les ordinateurs.

Fr teledeploy active1.jpg

L'icône en forme de croix rouge désaffectera le paquet pour tous les ordinateurs, et désactivera le paquet. Ainsi le paquet est toujours référencé dans la base de donnée, les fichiers d'information et de fragments sont encore disponibles dans le répertoire de téléchargement du serveur d'administration. Toutefois, ils ont le même statut tout comme si vous veniez juste de les construire et en attente d'être activés.

Statistiques des déploiements et validation des succès

Comme les paquets ont été activés puis désactivés, les statistiques de déploiement sont visibles depuis le menu "Activation".

Vous pouvez voir les statistiques de déploiement en cliquant sur l'icône "Stats" pour chaque paquet.

Dès que vous avez affecté le paquet à au moins un ordinateur, vous avez une statistique graphique montrant le statut de notification de déploiement.

Fr teledeploy active6.jpg

Le statut peut être un des suivants :

Tableau des différents codes de statut de notification
Code de statut Énoncé
WAITING NOTIFICATION
EN ATTENTE DE NOTIFICATION
Le serveur attend la communication avec l'agent pour notifier celui-ci qu'il a quelque chose à télécharger.
NOTIFIED
NOTIFIÉ
L'agent a été notifié qu'il a quelque chose à télécharger. Maintenant le serveur est en attente du code de résultat.
SUCCESS
SUCCÈS
L'agent a téléchargé avec succès le paquet et la commande associée d'exécution ou d'enregistrement des données s'est terminée sans erreur (code retour 0).
ERR_EXIT_CODE_xxx L'agent a téléchargé avec succès le paquet, MAIS la commande associée d'exécution ou d'enregistrement des données s'est terminée en erreur (code retour xxx).
ERR_ALREADY_SETUP Le paquet a déjà été installé avec succès sur l'ordinateur, et l'agent ne l'a pas ré-installé.
ERR_BAD_ID L'agent est incapable de télécharger le paquet parce qu'il ne peut trouver l'ID(entifiant) du paquet sur le serveur de déploiement.
ERR_BAD_DIGEST La signature du paquet téléchargé est incorrecte, l'agent n'a pas exécuté la commande associée.
ERR_DOWNLOAD_INFO L'agent n'a pas pu télécharger le fichier INFO de méta-données du paquet.
ERR_DOWNLOAD_PACK L'agent n'a pas pu télécharger un des fragments du paquet.
ERR_BUILD L'agent n'a pas pu reconstruire le ZIP ou le TAR.GZ à partir des fragments de paquet.
ERR_UNZIP L'agent n'a pas pu décompresser le ZIP ou le TAR.GZ du paquet.
ERR_OUT_OK_SPACE Il n'y a pas assez d'espace disque disponible pour décompresser et exécuter le ZIP ou le TAR.GZ du paquet (il faut au moins 3 fois la taille du ZIP ou du TAR.GZ).
ERR_BAD_PARAM Un paramètre du fichier INFO de méta-données du paquet est incorrect.
ERR_EXECUTE_PACK Aucune commande d'exécution n'est indiquée dans le fichier INFO de méta-données du paquet.
ERR_EXECUTE L'agent n'a pas pu exécuter la commande indiquée dans le fichier INFO de méta-données du paquet.
ERR_CLEAN L'agent n'a pas pu nettoyer le paquet téléchargé (supprimer les fichiers temporaires), mais la commande d'installation a été exécutée avec succès.
ERR_DONE_FAILED L'agent n'a pas pu récupérer le résultat d'exécution mis en cache du paquet (le cache sert à stocker le résultat au cas où le serveur ne répondrait pas ou ne serait pas disponible au moment de fin d'exécution du paquet).
ERR_TIMEOUT L'agent n'a pas pu télécharger le paquet durant le nombre de jours permis.
ERR_ABORTED L'utilisateur a arrêté la commande d'exécution du paquet. (Vous aviez choisi de permettre à l'utilisateur d'interrompre l'exécution du paquet).

"Valider Succès" effacera les statistiques des ordinateurs qui ont déployé avec succès les paquets.

"Désaffecter les non notifiés" désaffectera les paquets pour les ordinateurs qui n'ont pas été contactés par le serveur depuis que vous avez affecté les paquets aux ordinateurs. Le paquet ne sera pas supprimé, seulement les ordinateurs qui n'ont pas maintenant reçu cet ordre de déployer le paquet auront l'ordre d'abandonner.

"Tout valider" effacera toutes les statistiques, et désaffectera le paquet pour les ordinateurs non notifiés. Ceci est identique à "Valider Succès " + "Désaffecter les non notifiés".

 N.B. : Vous DEVEZ valider le statut de déploiement une fois que le déploiement est terminé pour nettoyer la base de donnée 
 du statut de déploiement sur les ordinateurs. Autrement, la base de données grossira et diminuera en puissance !

Vous pouvez cliquer sur le numéro de ligne de chaque statut pour afficher les ordinateurs qui ont un statut de déploiement.

 N.B. : En cas d'indisponibilité du serveur de communication au moment de la remontée de l'état, l'agent réessayera à nouveau ultérieurement.

Utiliser les certificats SSL dans le déploiement des paquets

L'infrastructure de déploiement de paquet est beaucoup trop puissante, ainsi elle requiert l'accès SSL pour s'authentifier au serveur avant d'essayer à télécharger quelque chose depuis celui-ci. Nous avons ainsi besoin de certificats SSL à utiliser avec votre serveur de déploiement.

La définition de certificat est lisible sur http://fr.wikipedia.org/wiki/Certificat_%C3%A9lectronique :

Un certificat électronique est une carte d'identité numérique dont l'objet est d'identifier une entité physique ou non-physique. Le certificat numérique ou électronique est un lien entre l'entité physique et l'entité numérique (Virtuel). L'autorité de certification fait foi de tiers de confiance et atteste du lien entre l'identité physique et l'entité numérique. (...).

(voir aussi http://fr.wikipedia.org/wiki/Public_Key_Infrastructure)

Vous pouvez utiliser un rapide, manière facile mais limitée, certificat auto-signé ou un outil plus sécurisé et fiable, une clé PKI avec Autorité de Certification.

Le serveur web Apache est fourni avec les bibliothèques de cryptage OpenSSL, qui permet de créer et gérer les certificats.

Utiliser vos propres certificats

 N.B. : Veuillez faire attention à la période de validité des certificats, comme le serveur web signe lui-même les certificats
 à installer sur chaque ordinateur qui fait fonctionner l'agent. Quand le certificat expire, vous devrez générer et déployer
 de nouveaux certificats sur chaque ordinateur !

Avec un serveur OCS Inventory NG sous Linux

Habituellement, les paquets Apache et mod_ssl s'installent avec des exemples de scripts pour générer les certificats, et spécifiquement des certificats de tests.

Toutefois, nous vous fournissons ci-dessous un exemple de script utilisant OpenSSL pour générer soi-même un certificat à utiliser avec Apache, que vous nommerez 'apache_generate_cert.sh' :

<script>
#!/bin/sh
#
# En premier, generer le certificat requis 
#
# Generer une clé RSA de 1024 bits, enregistrer la cle privee dans un
# fichier PEM de mot-de-passe non protege server.key, en utilisant
# le fichier de configuration par defaut d'openssl
#
echo
echo Generation de la cle privee du serveur Apache...
echo
openssl genrsa -out server.key 1024
#
# Maintenant, signez le certificat du serveur Apache avec 
# la cle du serveur Apache
#
# Signez avec le certificat PEM server.crt, 
# en utilisant le fichier PEM server.key pour cle privee du server, 
# en utilisant le fichier de configuration par defaut d'openssl.
#
# Le certificat produit sera valide durant 1825 jours (soit 5 ans).
#
echo
echo Generation des certificats auto-signes du serveur Apache ...
echo
openssl req -outform PEM -new -key server.key -x509 -days 1825 -out server.crt
</script>

Ce script génère une clé privée RSA dans le fichier "server.key" et un certificat X.509 auto-signé dans le fichier "server.crt".

En premier, lancez ce script en utilisant cette commande :

  • sh apache_generate_cert.sh

Celui-ci génèrera la clé privée, et vous demandera les propriétés du certificat :

  • le code pays, habituellement requis
  • le nom de la province ou de l'état, habituellement requis
  • le nom de la ville, habituellement requis
  • le nom de votre organisation, habituellement requis
  • le nom de votre section d'organisation, habituellement requis
  • le nom commun (le nom DNS ou l'adresse ip de votre serveur), requis
  • une adresse email, habituellement optionnelle


Maintenant, vous devez copier le fichier du certificat du serveur "server.crt" et le fichier de la clé privée "server.key" dans les répertoires appropriés du serveur Apache et mettre-à-jour les fichiers de configuration d'Apache/mod_ssl pour utiliser ces fichiers.

Voici un exemple minimaliste de configuration d'Apache/mod_ssl pour utiliser SSL sous CentOS/Fedora/RedHat Linux. (Le certificat du serveur est enregistré dans le répertoire “/etc/httpd/conf/ssl.crt” et la clé du serveur est enregistrée dans le répertoire “/etc/httpd/conf/ssl.key”).

 N.B. : Généralement, la configuration Apache/mod_ssl est fournie par votre système. 
 Aussi, vous ne devez pas utiliser la configuration ci-dessous si votre système a toujours un fichier de configuration pour mod_ssl.
#
# This is the Apache server configuration file providing SSL support.
# It contains the configuration directives to instruct the server how to
# serve pages over an https connection. For detailing information about these
# directives see <URL:http://httpd.apache.org/docs-2.0/mod/mod_ssl.html>
#
# For the moment, see <URL:http://www.modssl.org/docs/> for this info.
# The documents are still being prepared from material donated by the
# modssl project.
#
# Do NOT simply read the instructions in here without understanding
# what they do. They're here only as hints or reminders. If you are unsure
# consult the online docs. You have been warned.
#
LoadModule ssl_module modules/mod_ssl.so
# Until documentation is completed, please check http://www.modssl.org/
# for additional config examples and module docmentation. Directives
# and features of mod_ssl are largely unchanged from the mod_ssl project
# for Apache 1.3.
#
# When we also provide SSL we have to listen to the
# standard HTTP port (see above) and to the HTTPS port
#
# To allow connections to IPv6 addresses add "Listen [::]:443"
#
Listen 0.0.0.0:443
#
# Some MIME-types for downloading Certificates and CRLs
#
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl
# Pass Phrase Dialog:
# Configure the pass phrase gathering process.
# The filtering dialog program (`builtin' is a internal
# terminal dialog) has to provide the pass phrase on stdout.
SSLPassPhraseDialog builtin
##
## SSL Virtual Host Context
##
<VirtualHost _default_:443>
# Use separate log files:
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
# SSL Engine Switch:
# Enable/Disable SSL for this virtual host.
SSLEngine on
# SSL Cipher Suite:
# List the ciphers that the client is permitted to negotiate.
# See the mod_ssl documentation for a complete list.
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
# Server Certificate:
# Point SSLCertificateFile at a PEM encoded certificate. If
# the certificate is encrypted, then you will be prompted for a
# pass phrase. Note that a kill -HUP will prompt again. A test
# certificate can be generated with `make certificate' under
# built time. Keep in mind that if you've both a RSA and a DSA
# certificate you can configure both in parallel (to also allow
# the use of DSA ciphers, etc.)
SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
#  Server Private Key:
#  If the key is not combined with the certificate, use this
#  directive to point at the key file. Keep in mind that if
#  you've both a RSA and a DSA private key you can configure
#  both in parallel (to also allow the use of DSA ciphers, etc.)
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key
# SSL Engine Options:
# StdEnvVars:
# This exports the standard SSL/TLS related `SSL_*' environment variables.
# Per default this exportation is switched off for performance reasons,
# because the extraction step is an expensive operation and is usually
# useless for serving static content. So one usually enables the
# exportation for CGI and SSI requests only.
SSLOptions +StdEnvVars
# SSL Protocol Adjustments:
# The safe and default but still SSL/TLS standard compliant shutdown
# approach is that mod_ssl sends the close notify alert but doesn't wait for
# the close notify alert from client. When you need a different shutdown
# approach you can use one of the following variables:
# o ssl-unclean-shutdown:
# This forces an unclean shutdown when the connection is closed, i.e. no
# SSL close notify alert is send or allowed to received. This violates
# the SSL/TLS standard but is needed for some brain-dead browsers. Use
# this when you receive I/O errors because of the standard approach where
# mod_ssl sends the close notify alert.
# o ssl-accurate-shutdown:
# This forces an accurate shutdown when the connection is closed, i.e. a
# SSL close notify alert is send and mod_ssl waits for the close notify
# alert of the client. This is 100% SSL/TLS standard compliant, but in
# practice often causes hanging connections with brain-dead browsers. Use
# this only for browsers where you know that their SSL implementation
# works correctly.
# Notice: Most problems of broken clients are also related to the HTTP
# keep-alive facility, so you usually additionally want to disable
# keep-alive for those clients, too. Use variable "nokeepalive" for this.
# Similarly, one has to force some clients to use HTTP/1.0 to workaround
# their broken HTTP/1.1 implementation. Use variables "downgrade-1.0" and
# "force-response-1.0" for this.
SetEnvIf User-Agent ".*MSIE.*" \
     nokeepalive ssl-unclean-shutdown \
     downgrade-1.0 force-response-1.0
# Per-Server Logging:
# The home of a custom SSL log file. Use this when you want a
# compact non-error SSL logfile on a virtual host basis.
CustomLog logs/ssl_request_log \
      "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>

Une fois que vous avez configuré votre serveur web Apache, n'oubliez pas de redémarrer le démon Apache pour que les changements prennent effets.

En dernier, vous devez installer le fichier du certificat du serveur "server.crt" sur chaque ordinateur client dans le répertoire d'installation de l'agent OCS Inventory NG, sous le nom de "cacert.pem". Une fois Apache configuré, ne pas oublier de redémarrer le démon afin que les modifications soient prises en compte.

Pour Debian Lenny/Squeeze:

apt-get install ssl-cert
a2ensite default-ssl
a2enmod ssl
make-ssl-cert generate-default-snakeoil --force-owerwrite
/etc/init.d/apache2 restart

Copier /etc/ssl/certs/ssl-cert-snakeoil.pem en cacert.pem et le distribuer

pour CentOS / Redhat:

La commande genkey crée un certificat public et sa clé privée : genkey -days 365 ocsinventory-ng Les fichiers suivants sont créés:

 * /etc/pki/tls/certs/ocsinventory-ng.cert 
 * /etc/pki/tls/private/ocsinventory-ng.key

Mettre à jour le fichier /etc/httpd/conf.d/ssl.conf.

Avec le serveur OCS Inventory NG pour Windows

La solution XAMPP Apache est fournie avec un script "makecert.bat" pour générer les certificats auto-signés. Ce script est localisé sous le répertoire "CHEMIN_INSTALL\xampp\apache" (où CHEMIN_INSTALL est le répertoire d'installation du serveur OCS Inventory NG).

 @echo off
 set OPENSSL_CONF=./bin/openssl.cnf
 if not exist .\conf\ssl.crt mkdir .\conf\ssl.crt
 if not exist .\conf\ssl.key mkdir .\conf\ssl.key
 bin\openssl req -new -out server.csr
 bin\openssl rsa -in privkey.pem -out server.key
 bin\openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 365
 set OPENSSL_CONF=
 del .rnd
 del privkey.pem
 del server.csr
 move /y server.crt .\conf\ssl.crt
 move /y server.key .\conf\ssl.key
 echo.
 echo -----
 echo Das Zertifikat wurde erstellt.
 echo The certificate was provided.
 echo.
 Pause


Le script génère un certificat auto-signé utilisable 365 jours. Si vous voulez augmenter la validité du certificat, vous devez modifier la directive "-days 365" pour spécifier en nombre de jours la nouvelle période de validité (1825 jours, soit 5 ans doit être une bonne valeur ;-) ... )

Faites fonctionner deux fois le script "makecert.bat". Ceci génèrera une clé privée RSA et vous demandera un mot-de-passe (au moins 4 caractères).

Tapez-le mot-de-passe et confirmez-le.


En suivant, vous devrez remplir certaines propriétés :

  • le code pays, habituellement requis
  • le nom de la province ou de l'état, habituellement requis
  • le nom de la ville, habituellement requis
  • le nom de votre organisation, habituellement requis
  • le nom de votre section d'organisation, habituellement requis
  • le nom commun (le nom DNS ou l'adresse ip de votre serveur), requis
  • une adresse email, habituellement optionnelle

Finalement, il vous sera demandé le mot-de-passe de la clé privée.

Maintenant, le certificat auto-signé est créé et installé. Redémarrez justement les services d'Apache2 pour que les changements prennent effets.

Utiliser PKI avec une Autorité de Certification

Nous supposons que vous utilisez un serveur PKI interne ou commercial tel que Verisign.

Toutefois, si vous n'en avez pas un en interne, et que vous ne souhaitez pas payer vos certificats, vous pouvez utiliser les services fournis par cacert.org (http://cacert.org), un fournisseur de services PKI, mondial et gratuit.

Utiliser les services du CAcert requiert que vous enregistriez votre email et votre nom de domaine DNS, avant d'être capable de demander le certificat serveur. Lire les manuels sur cacert.org.

Vous pouvez regarder l'excellent article de Pablo Iranzo Gómez (http://alufis35.uv.es/OCS-Inventory-Package-Deployment.html) pour de plus amples instructions à-propos de l'usage de certificat du cacert dans OCS Inventory NG.

Avec un serveur OCS Inventory NG pour Linux

Habituellement, les paquets Apache et mod_ssl sont fournis avec des exemples de scripts pour générer les certificats requis à soumettre à un fournisseur PKI.

Toutefois, nous vous fournissons ci-dessous un exemple de script utilisant OpenSSL pour générer un certificat requis à utiliser avec Apache.

Exemple de script apache_request_cert.sh
<script>
#!/bin/sh
#
# Generate server certificate request
#
# Generate 1024 bits RSA key, store private key in a
# no password protected PEM file server.key, store certificate
# request in a PEM file server.csr, using system default
# configuration file
#
# The produced key will be valid for 1825 days (5 years)
#
echo
echo Generating server private key and certificate request...
echo
openssl req -newkey rsa:1024 -outform PEM -out server.csr -keyout server.key -keyform PEM -days 1825 -nodes
</script>

Ce script génère une clé privée RSA dans le fichier "server.key" et un certificat requis dans le fichier "server.csr".

En premier, lancez le script par cette commande :

  • sh apache_request_cert.sh

Cela génèrera la clé privée et vous demandera des informations pour le certificat requis :

  • Code pays, habituellement requis
  • Nom de la province ou de l'Etat, habituellement requis
  • Nom de la ville, habituellement requis
  • Nom de votre organisation ou société, habituellement requis
  • Nom de votre section, habituellement optionnel
  • Nom commun (nom DNS ou adresse IP de votre serveur), requis
  • Une adresse courriel, requis pour recevoir le certificat généré par l'Autorité de Certification.
  • Un mot-de-passe en option
  • Un nom de société en option


Ensuite, vous devez transmettre notre certificat requis "server.csr" à votre Autorité de Certification PKI.

Une fois le certificat serveur de l'Autorité de Certification reçu, vous avez juste à copier le fichier "server.crt", le certificat serveur, et la clé privée du serveur "server.key" dans leur répertoire approprié, et de mettre-à-jour les fichiers de configuration d'Apache et mod_ssl pour utiliser ces fichiers.

Vous devez aussi recevoir le Certificat Racine de l'Autorité de Certification dans un fichier "ca_root.crt" à spécifier dans la configuration d'Apache.

Voici un exemple minimaliste de configuration Apache et mod_ssl pour utiliser SSL avec Linux CentOS/Fedora/Red Hat. (Le certificat serveur est enregistré dans le répertoire “/etc/httpd/conf/ssl.crt” et la clé du serveur sous “/etc/httpd/conf/ssl.key”).


 N.B. : Généralement, Apache pour Windows est fourni avec un fichier de configuration Apache et mod_ssl prédéfini. 
 Ainsi, n'utilisez pas la configuration suivante si votre système a déjà un fichier de configuration pour mod_ssl !
Exemple de fichier de configuration Apache/mod_ssl
<script>
#
# This is the Apache server configuration file providing SSL support.
# It contains the configuration directives to instruct the server how to
# serve pages over an https connection. For detailing information about these
# directives see <URL:http://httpd.apache.org/docs-2.0/mod/mod_ssl.html>
#
# For the moment, see <URL:http://www.modssl.org/docs/> for this info.
# The documents are still being prepared from material donated by the
# modssl project.
#
# Do NOT simply read the instructions in here without understanding
# what they do. They're here only as hints or reminders. If you are unsure
# consult the online docs. You have been warned.
#
LoadModule ssl_module modules/mod_ssl.so
#  Until documentation is completed, please check http://www.modssl.org/
#  for additional config examples and module docmentation. Directives
#  and features of mod_ssl are largely unchanged from the mod_ssl project
#  for Apache 1.3.
#
# When we also provide SSL we have to listen to the
# standard HTTP port (see above) and to the HTTPS port
#
# To allow connections to IPv6 addresses add "Listen [::]:443"
#
Listen 0.0.0.0:443
#
# Some MIME-types for downloading Certificates and CRLs
#
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl
# Pass Phrase Dialog:
# Configure the pass phrase gathering process.
# The filtering dialog program (`builtin' is a internal
# terminal dialog) has to provide the pass phrase on stdout.
SSLPassPhraseDialog builtin
##
## SSL Virtual Host Context
##
<VirtualHost _default_:443>
# Use separate log files:
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
# SSL Engine Switch:
# Enable/Disable SSL for this virtual host.
SSLEngine on
# SSL Cipher Suite:
# List the ciphers that the client is permitted to negotiate.
# See the mod_ssl documentation for a complete list.
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
#  Server Certificate:
#  Point SSLCertificateFile at a PEM encoded certificate. If
#  the certificate is encrypted, then you will be prompted for a
#  pass phrase. Note that a kill -HUP will prompt again. A test
#  certificate can be generated with `make certificate' under
#  built time. Keep in mind that if you've both a RSA and a DSA
#  certificate you can configure both in parallel (to also allow
#  the use of DSA ciphers, etc.)
SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
# Server Private Key:
# If the key is not combined with the certificate, use this
# directive to point at the key file. Keep in mind that if
# you've both a RSA and a DSA private key you can configure
# both in parallel (to also allow the use of DSA ciphers, etc.)
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key
# Certificate Authority (CA):
# Set the CA certificate verification path where to find CA
# certificates for client authentication or alternatively one
# huge file containing all of them (file must be PEM encoded)
# Note: Inside SSLCACertificatePath you need hash symlinks
#      to point to the certificate files. Use the provided
#      Makefile to update the hash symlinks after changes.
#SSLCACertificatePath /etc/httpd/conf/ssl.crt
SSLCACertificateFile /usr/share/ssl/certs/ca_root.crt
# SSL Engine Options:
# StdEnvVars:
# This exports the standard SSL/TLS related `SSL_*' environment variables.
# Per default this exportation is switched off for performance reasons,
# because the extraction step is an expensive operation and is usually
# useless for serving static content. So one usually enables the
# exportation for CGI and SSI requests only.
SSLOptions +StdEnvVars
# SSL Protocol Adjustments:
# The safe and default but still SSL/TLS standard compliant shutdown
# approach is that mod_ssl sends the close notify alert but doesn't wait for
# the close notify alert from client. When you need a different shutdown
# approach you can use one of the following variables:
# o ssl-unclean-shutdown:
# This forces an unclean shutdown when the connection is closed, i.e. no
# SSL close notify alert is send or allowed to received. This violates
# the SSL/TLS standard but is needed for some brain-dead browsers. Use
# this when you receive I/O errors because of the standard approach where
# mod_ssl sends the close notify alert.
# o ssl-accurate-shutdown:
# This forces an accurate shutdown when the connection is closed, i.e. a
# SSL close notify alert is send and mod_ssl waits for the close notify
# alert of the client. This is 100% SSL/TLS standard compliant, but in
# practice often causes hanging connections with brain-dead browsers. Use
# this only for browsers where you know that their SSL implementation
# works correctly.
# Notice: Most problems of broken clients are also related to the HTTP
# keep-alive facility, so you usually additionally want to disable
# keep-alive for those clients, too. Use variable "nokeepalive" for this.
# Similarly, one has to force some clients to use HTTP/1.0 to workaround
# their broken HTTP/1.1 implementation. Use variables "downgrade-1.0" and
# "force-response-1.0" for this.
SetEnvIf User-Agent ".*MSIE.*" \
     nokeepalive ssl-unclean-shutdown \
     downgrade-1.0 force-response-1.0
# Per-Server Logging:
# The home of a custom SSL log file. Use this when you want a
# compact non-error SSL logfile on a virtual host basis.
CustomLog logs/ssl_request_log \
      "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>
</script>

Une fois votre serveur web Apache configuré, n'oubliez pas de redémarrer le service Apache pour que les modifications prennent effet.

Dernièrement, vous devez installer le fichier certificat racine de l'Autorité de Certification "ca_root.crt" sur chaque ordinateur client dans le répertoire d'installation de l'agent OCS Inventory NG, sous le nom "cacert.pem".

Avec un serveur OCS Inventory NG pour Windows

Nous fournissons ci-dessous un exemple de script utilisant OpenSSL pour générer le certificat requis à utiliser dans XAMPP Apache.

Exemple de script apache_request_cert.sh
<script>
@echo off
REM
REM Generate server certificate request
REM
REM Generate 1024 bits RSA key, store private key in a
REM no password protected PEM file server.key, store certificate
REM request in a PEM file server.csr, using system default
REM configuration file
REM
REM The produced key will be valid for 1825 days (5 years)
REM
echo.
echo Generating server private key and certificate request...
echo.
set OPENSSL_CONF=./bin/openssl.cnf 
bin\openssl req -newkey rsa:1024 -outform PEM -out server.csr -keyout server.key -keyform PEM -days 1825 -nodes
</script>

Ce script génère une clé privée RSA dans le fichier "server.key" et un certificat requis dans le fichier "server.csr".

Premièrement, copiez ce script dans le répertoire “INSTALL_PATH\xampp\apache” (où INSTALL_PATH est le répertoire d'installation d'OCS Inventory NG) puis lancez-le.

Cela génèrera la clé privée et vous demandera certaines informations pour le certificat requis :

  • Code du pays, habituellement requis
  • Nom de la province ou de l'état, habituellement requis
  • Ville, habituellement requis
  • Nom de l'organisation ou société, habituellement requis
  • Nom de l'unité dans la société, habituellement optionnel
  • Nom commun (ceci est le nom DNS ou l'adresse IP), requis
  • Une adresse de courriel, requis pour recevoir le certificat généré par l'Autorité de Certification
  • Un mot-de-passe en option
  • Le nom de la société en option

Dans notre exemple, nous avons généré le certificat requis pour notre serveur "ocs.domain.tld".

Ensuite, vous devez transmettre votre certificat requis "server.csr" à votre Autorité de Certification PKI.

Une fois votre certificat serveur de l'Autorité de Certification reçu, vous avez juste à copier le fichier "server.crt" de certificat serveur dans le répertoire “INSTALL_PATH\xampp\apache\conf\ssl.crt” et le fichier de la clé privée du serveur "server.key" dans le répertoire “INSTALL_PATH\xampp\apache\conf\ssl.key”.

Vous devriez aussi recevoir le certificat racine de l'Autorité de Certification dans le fichier "ca_root.crt" pour le spécifier dans la configuration Apache. Enregistrez ce fichier dans le répertoire “INSTALL_PATH\xampp\apache\conf\ssl.crt” et nommez-le "ca-bundle.crt".

Mettez-à-jour la configuration Apache et mod_ssl en éditant le fichier “INSTALL_PATH\xampp\apache\conf\extra\httpd-ssl.conf” en décommentant la ligne 132 (supprimez le caractère '#' en début de ligne) comme suit :

Exemple de fichier de configuration Apache/mod_ssl
# Certificate Authority (CA):
# Set the CA certificate verification path where to find CA
# certificates for client authentication or alternatively one
# huge file containing all of them (file must be PEM encoded)
# Note: Inside SSLCACertificatePath you need hash symlinks
#     to point to the certificate files. Use the provided
#     Makefile to update the hash symlinks after changes.
#SSLCACertificatePath conf/ssl.crt
SSLCACertificateFile conf/ssl.crt/ca-bundle.crt

Une fois votre serveur web Apache configuré, n'oubliez pas de redémarrer les services d'Apache2 pour que les changements prennent effets.

Pour finir, vous devez installer le fichier de certificat racine de l'Autorité de Certification "ca_root.crt" sur chaque ordinateur client dans le répertoire d'installation de l'agent OCS Inventory NG, sous le nom "cacert.pem".

Exemple : Déployer de nouvelle version de l'Agent de Service Windows

Créez une archive ZIP "OCS-NG-Windows-Agent-2.0.zip" incluant le fichier "OCS-NG-Windows-Agent-Setup.exe".

En suivant, connectez-vous à la console d'Administration et allez au menu "Télédéploiement" > "Création".

  • Renseignez le nom du paquet, par exemple "OCS Agent Service 2.0",
  • Sélectionnez le système d'exploitation cible "Windows",
  • Sélectionnez le protocole "HTTP",
  • Sélectionnez la priorité "5",
  • Parcourez le système de fichier pour sélectionner l'archive Zip,
  • Sélectionnez l'action "Lancer",
  • et renseignez le nom du fichier avec les paramètres de ligne de commande d'installation de l'agent de service, par exemple "OcsAgentSetup.exe /S /NOSPLASH /UPGRADE /NP /DEBUG /SERVER:serveur_ocs.local.domain" (/S pour lancer l'installeur en mode silencieux, /NOSPLASH pour désactiver l'écran d'accueil de l'installeur, /UPGRADE pour indiquer que vous mettez-à-jour l'agent de service déjà installé, /NP pour désactiver l'usage des paramètres du proxy d'Internet Explorer, /DEBUG pour permettre la création des fichiers logs, /SERVER pour indiquer à l'agent de se connecter au serveur "serveur_ocs.local.domain").
 N.B. : Ne pas oublier le paramètre /UPGRADE pour permettre de mettre-à-jour un agent de service OCS Inventory NG déjà existant.
Fr teledeploy agentupgrade1.jpg

Puis, validez en cliquant sur le bouton [ Envoyer ].

En suivant, choisissez la taille des fragments de fichiers, par exemple 500 Kb, et cliquez sur le bouton [ Envoyer ].

Fr teledeploy agentupgrade2.jpg

Maintenant, le déploiement de paquet est créé. Vous pouvez l'activer.

Allez au menu "Télédéploiement" > "Activation".

Teledeploy1.jpg

Cliquez sur le lien "Activer" sur la ligne correspondante.

  • Renseignez l'url HTTPS où le fichier de métadonnées INFO peut être téléchargé par les agents utilisant HTTPS,
  • Renseignez l'url HTTP où les fragments de fichier peuvent être télécharchés par l'agent utilisant HTTP.

Et, cliquez sur le bouton [ Envoyer ].

Fr teledeploy active2.jpg

Maintenant, le paquet est prêt à être affecté aux ordinateurs.

Allez au menu "Recherche multicritères", recherchez les ordinateurs ayant le système d'exploitation "WINDOWS (tous)" puis cliquez sur le bouton [ Recherche ].

Fr teledeploy active3.jpg

Maintenant, cliquez sur le lien "Télédéployer" dans la ligne "Traitement par lots".

Fr teledeploy active4.jpg

Pour finir, cliquez sur le lien "SELECT" sur la ligne correspondante au paquet que vous désirez affecter.

Fr teledeploy active5.jpg

C'est tout !