OCS-NG 1.3.2 : déployer des paquetages sur de multiples serveurs

Remarque

Cette documentation est extraite d’une doc opérationnelle. Le serveur OCS s’appelle ici SVOCS.

1. Pré-requis

Il faut que le serveur OCS-NG ait été configuré pour gérer le déploiement de paquetages sur les postes. Voir à ce sujet les documentations ad-hoc.

Il faut également que le client OCS ait été déployé en mode « service », et que la clé publique du serveur (fichier cacert.pem) ait été également déployée (cf. également la doc correspondante).

1.1 Serveur Web

Le serveur web doit être configuré pour accepter de gros fichiers en téléchargement. Pour cela, éditer le fichier /etc/php.ini, et modifier la valeur suivante :

upload_max_filesize = 250M

2. Principe général

Un fichier zip va être diffusé, qui va contenir l’ensemble des programmes nécessaires à l’installation du logiciel. Ce fichier zip va également contenir, à sa racine, un fichier .bat qui permettra de lancer les commandes d’installation.

Ce fichier va être transmis par morceaux (configurables) au poste de travail. Une fois tous les morceaux reçus, ils sont assemblés, puis le fichier est décompressé. Le programme va alors exécuter les commandes spécifiées (en principe dans un fichier .bat).

Une fois que toutes les opérations sont achevées, les fichiers téléchargés sont supprimés, puis le serveur est informé de la bonne fin de l’opération.

Lorsque l’on veut déployer un paquetage sur un ensemble d’ordinateurs, il est fortement conseillé de travailler par étapes :

-

tester son installation sur une ou deux machines

-

déployer sur un petit nombre de machines, pour voir si tout se passe correctement

-

déployer ensuite sur le reste des machines.

Il faut garder à l’esprit qu’il y aura toujours des cas où le déploiement échouera, et pour les opérations longues, il faut les programmer à un moment qui gênera le moins possible les utilisateurs.

3. Préparation du paquetage

3.1 Préparation du fichier zip

Créer un fichier zip dans lequel on intègre l’ensemble de l’application à installer (application décompressée le cas échéant – nécessaire pour openOffice par exemple). Ne pas utiliser directement les programmes d’installation qui commencent par se décompresser dans un fichier particulier.

3.2 Préparation du fichier .bat

Ecrire un fichier .bat (install.bat), qui contiendra la commande d’installation. Par exemple, pour déployer openOffice, on indiquera dans ce fichier :

msiexec /i openofficeorg30.msi /passive /norestart

Dans cet exemple, le fichier openofficeorg30.msi est à la racine du fichier .zip, au même niveau que le fichier install.bat.

D’autres options peuvent être utilisées : on lancera alors la commande msiexec pour visualiser l’ensemble des options disponibles.

Ce fichier doit être placé dans le fichier .zip, à sa racine.

3.3 Précaution à prendre

Attention à la taille du fichier ! Si on transmet un fichier de 100 Mo, il faut prévoir :

-

100 Mo pour le stockage des morceaux téléchargés

-

100 Mo pour la reconstitution du fichier initial

-

150 Mo (estimation) pour la décompression du fichier zip transmis

l’espace nécessaire pour l’installation sur le poste de travail...

soit au minimum 500 Mo...

Si on souhaite diffuser plusieurs mises à jour, il vaut donc mieux faire plusieurs paquetages qu’un seul volumineux...

4. Création du paquetage dans OCS

4.1 Préparation du paquetage

Choisir le menu Télédéploiement > Création

-

Nom : nom du programme à installer (en précisant la version) : c’est le libellé qui sera affiché partout.

-

Priorité : ne pas utiliser la priorité 0. Ensuite, si on a plusieurs paquetages à déployer, gérer la priorité avec ce numéro. Les paquetages avec la priorité 1 sont déployés avant ceux qui ont la priorité 2, et ainsi de suite...

-

Fichier : sélectionner le fichier à déployer sur les clients

-

Action : 3 actions sont possibles.

-

stocker : les fichiers déployés seront recopiés dans le chemin indiqué

-

Exécuter : OCS exécutera la commande système indiquée

-

Lancer : OCS exécutera le fichier, livré dans le paquetage, qu’on indiquera dans la zone « Nom du fichier ». Si on a préparé un fichier install.bat, c’est cette option que l’on utilisera.

-

Prévenir l’utilisateur : choisir OUI, et renseigner les zones suivantes :

-

Texte : c’est le texte que l’utilisateur visualisera à l’écran, avec un bouton OK.

-

Compte à rebours : par défaut, mettre 0. On peut également indiquer le nombre de secondes qui s’écoulera avant que l’installation ne démarre de façon automatique.

-

L’utilisateur peut annuler : sauf cas particulier, NON

-

L’utilisateur peut remettre à plus tard : OUI, sauf urgence

-

La fin de l’installation nécessite une intervention utilisateur : OUI, et renseigner la zone suivante :

-

Texte : le libellé qui sera affiché (en général, fin de l’installation, merci de votre patience).

Cliquer ensuite sur [Envoyer].

4.2 Fabrication du paquet de télé-déploiement

Après téléchargement sur le serveur, le programme propose de découper le fichier en fragments.

A l’aide de l’ascenseur, créer des paquets de l’ordre de 5 à 10 Mo, puis cliquer sur [Envoyer].

5. Activation des paquets

5.1 Activation du paquetage initial pour un serveur unique

Menu Télédéploiement > activation. Cliquer ensuite sur l’icône figurant dans la colonne « Activer » pour le paquetage considéré.

Renseigner alors les deux champs suivants :

-

serveur https: svocs.local.draf-aquitaine.agri/download

-

Serveur de fichiers : svocs.local.draf-aquitaine.agri/download

Cliquer sur [Envoyer]

5.2 Utilisation de serveurs de redistribution pour déployer le paquetage

Pour limiter l’utilisation de la bande passante, notamment lors de la distribution de logiciels volumineux, il est possible de recopier les fichiers du paquetage sur des serveurs web distants, et de créer des télé-déploiements spécifiques pour chaque site.

5.2.1 Recopie du paquetage sur l’ensemble des serveurs de redistribution

Pour réaliser l’opération, il faut récupérer le timestamp du paquetage initial, dans l’écran OCS Télédéploiement > Activés.

Réaliser ensuite les opérations suivantes :

-

se connecter en ssh sur svlrs

-

taper les commandes suivantes :

at 18:00 <Entrée>
>/root/scripts/ocsDownloadDeploy/newCopyTimestamp.sh --timestamp=numero_du_timestamp --fichier=/root/scripts/ocsDownloadDeploy/listeServeursDownload.txt  <Entrée>
<Ctrl D>

Le script se lancera à 18:00, à un moment ou la bande passante est à peu près disponible... La recopie s’exécute en parallèle sur l’ensemble des serveurs (un processus par serveur), par l’intermédiaire de scp.

Le résultat de l’exécution du script peut être consulté dans le fichier /var/log/copyTimestamp.log.

5.2.2 Activer le paquet pour qu’il soit géré par l’ensemble des serveurs de redistribution

-

Dans le menu Télédéploiement > Activation, cliquer sur l’icône Activer.

-

Choisir l’activation automatique,et sélectionner le groupe de serveurs DRAAF. Renseigner la zone serveur HTTPS avec svocs/download

La liste des paquetages activés comprend maintenant une ligne pour chaque serveur (colonne Serveurs de fichiers).

6. Déploiement du paquetage sur une machine

Utiliser de préférence la fonction « Recherche multicritères ». Il est préférable de ne pas déployer vers les serveurs Windows les paquets concernant les logiciels bureautiques. Il est possible d’utiliser le champ TAG s’il a été renseigné. Les tests peuvent être réalisés en sélectionnant les machines dont le TAG contient ALPHA.

6.1 Déploiement d’un paquet sur une ou plusieurs machines

Une fois la liste des machines établie, sous la liste, cliquer sur le lien Traitement par lot : Télédéployer.

Il faut ensuite sélectionner quel type de paquets sont recherchés : soit ceux configurés sur une seule machine, soit ceux déployés sur un groupe de serveurs.

Dans l’écran suivant, la liste des paquets est affichée. Dans la colonne « Affecter », cliquer sur l’icône correspondant à la ligne du paquetage considéré.

Tous les ordinateurs de la sélection seront alors programmés pour recevoir le paquetage sélectionné. Le déploiement est réalisé une fois par jour (variable dans un fichier de configuration du service sur le poste de travail, qui sert de « compte à rebours ».

Si le paquet à déployer est prévu pour un groupe de serveurs, il faudra ensuite indiquer la règle d’attribution à utiliser. Actuellement, une seule règle existe : Même sous-réseau. Cela veut dire que la distribution sera réalisée sur le serveur dont le sous-réseau est identique à la machine considérée.

Si certaines machines ne répondent pas au critère énoncé, elles ne sont pas affectées, et leur identifiant OCS est affiché ; malheureusement, le lien n’est pas créé pour accéder directement à la machine. Le plus simple est de modifier la recherche des machines pour chercher celles qui n’ont pas eu le paquet affecté... Par exemple :

-

Tag ressemble à vo

-

télédéploiement n’ayant pas nom_du_paquet dans l’état indifférent.

6.1.1 Forcer l’exécution immédiate du déploiement

Il est possible, notamment en phase de test, de forcer l’exécution du déploiement.

-

Sur le poste de travail, arrêter le service OCS. Editer ensuite le fichier c :\program files\OCS Inventory Agent\service.ini.

-

Modifier la valeur TTO_WAIT à 10 (valeur d’attente en secondes).

-

Redémarrer le service : 10 secondes plus tard, le déploiement va commencer.

On peut suivre l’avancement du téléchargement, dans le dossier OCS Inventory Agent : le fichier download.log contient la liste de toutes les opérations de déploiement effectuées

le dossier download reçoit tous les téléchargements : on peut ainsi voir si des opérations sont en cours.

7. Statistiques sur le déploiement

Il est possible d’avoir un résultat du déploiement sur un ensemble de machines. Dans OCS, choisir le menu Télédéploiement > Activation, puis cliquer sur l’icône Stats.

Un certain nombre d’opérations sont possibles (cf. la doc pour le détail si nécessaire). Il est également possible de visualiser la liste des machines concernées en cliquant sur le nombre correspondant à chaque état.

8. Suppression des paquetages sur les serveurs relais

Une fois que les paquetages sont obsolètes, il faut penser à les supprimer sur les serveurs relais. Pour ce faire :

-

se connecter en ssh sur svlrs

-

lancer les commandes :

cd /root/scripts/ocsDownloadDeploy
./deleteTimestamp.sh -t numerotimestamp -f listeServeursDownload.txt
Supprimer ensuite les paquetages dans OCS-NG (menu Télédéploiement > Activation et Télédéploiement > activés).