Télédéploiement d’application avec UpdatEngine

1.Installation D’UpdatEngine

Ce dont nous allons avoir besoin :
Debian 8 serveur
Serveur LAMP : Linux Apache MySQL PHP
Python
Un environnement virtuel  »UE-environment »
Ouverture du port 1979
Chiffrement SSL
Django

1.1 Installation de l’environnement et des dépendances nécessaires

Installez tout d’abord les différentes dépendances nécessaires:

exécuter en mode  »root » :

root@updatengine:~# apt-get install apache2 libapache2-mod-wsgi python-virtualenv python-pip libxml2-dev libxslt-dev python-dev libmysqlclient-dev git-core mysql-server

Créez maintenant l’environnement virtuel qui hébergera le serveur UpdatEngine. Nous le créerons
directement sous /var/www dans un répertoire nommé UE-environment (veillez à respecter le nom
de ce répertoire pour pouvoir profiter du fichier de configuration apache mis à disposition dans cet
documentation)

root@updatengine:~# virtualenv –distribute –no-site-packages /var/www/UE-environment
root@updatengine:~# cd /var/www/UE-environment/
root@updatengine:~# git clone https://github.com/updatengine/updatengine-server.git

L’ensemble des fichiers du serveur UpdatEngine sont alors disponibles sous
/var/www/UE-environment/updatengine-server
Installons maintenant les dépendances nécessaires à UpdatEngine.

1.2 Installation des dépendances dans l’environnement virtuel UE-environment

Les différentes dépendances sont détaillées dans le fichier pip-packages.txt.
Installez les avec l’utilitaire /var/www/UE-environment/bin/pip install
ce qui permettra de n’installer les dépendances que dans votre environnement virtuel et dans les versions spécifiées.

root@updatengine:~# /var/www/UE-environment/bin/pip install –upgrade distribute
root@updatengine:~# /var/www/UE-environment/bin/pip install –upgrade setuptools
root@updatengine:~# /var/www/UE-environment/bin/pip install -r /var/www/UE-environment/updatengine-server/requirements/pip-packages.txt

A l’issue de l’exécution de la commande, vous disposez de tout le nécessaire pour faire fonctionner l’application

1.3 Initialisation de la base de données MySQL

Créez tout d’abord une base de données dédiée à l’application (utilisez par exemple updatengine comme nom):

root@updatengine:~# mysqladmin -u root -p create updatengine

puis créez un utilisateur dédié à cette base de données (updatengineuser dans cet exemple avec comme mot de passe unmotdepasse):

root@updatengine:~# mysql -u root -p -e « GRANT ALL PRIVILEGES ON updatengine.* TO ‘updatengineuser’@’localhost’ IDENTIFIED by ‘unmotdepasse’ WITH GRANT OPTION; »

Enfin, chargez la table des fuseaux horaires :

root@updatengine:~# mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
root@updatengine:~# service mysql restart

Vous pouvez maintenant modifier le fichier de configuration
/var/www/UE-environment/updatengine-server/updatengine/settings.py pour y indiquer l’adresse de votre serveur et les paramètres de connexion à la base de données.
Copiez tout d’abord le fichier settings.py.model_mysql vers settings.py :

root@updatengine:~# cp /var/www/UE-environment/updatengine-server/updatengine/settings.py.model_mysql /var/www/UE-environment/updatengine-server/updatengine/settings.py

Ouvrez le fichier /var/www/UE-environment/updatengine-server/updatengine/settings.py
et renseignez la variable « PROJECT_URL » avec l’adresse et le port de votre serveur.
Par exemple, si l’adresse ip de votre serveur est 10.0.0.250, vous devez renseigner la ligne de cette façon:

PROJECT_URL = ‘http://10.0.0.250:1979’

exécuter donc la commande suivante :

root@updatengine:~# nano /var/www/UE-environment/updatengine-server/updatengine/settings.py

PROJECT_URL

Remarque: le port par défaut 1979 est définit dans le fichier de configuration apache-updatengine.
Renseignez maintenant les paramètres de connexion à la base de données dans le paragraphe suivant:
(vous trouverez un paragraphe de ce type non remplis dans le fichier de configuration)

DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.mysql’, # Add ‘postgresql_psycopg2’, ‘mysql’, ‘sqlite3’
‘NAME’ : ‘updatengine’,
‘USER’: ‘updatengineuser’,
# Not used with sqlite3.
‘PASSWORD’: ‘unmotdepasse’,
# Not used with sqlite3.
‘HOST’:  »,
# Set to empty string for localhost. Not used with sqlite3.
‘PORT’:  »,
# Set to empty string for default. Not used with sqlite3.
}
}

Après avoir fait ces modifications, sauvegardez et fermez ce fichier.
Remarque:

ces informations correspondent à l’exemple pris ci-dessus lors de la création de la base de données et de son utilisateur. Il faudra donc l’adapter à votre contexte.
Avant de redémarrer le service apache2, copiez le fichier de configuration standard puis activez ce nouveau site:

root@updatengine:~# cp /var/www/UE-environment/updatengine-server/requirements/apache-updatengine.conf /etc/apache2/sites-available/apache-updatengine.conf
root@updatengine:~# a2ensite apache-updatengine

Activez également le mode wsgi si ce n’est pas déjà fait:

root@updatengine:~# a2enmod wsgi

Redémarrez maintenant le service apache2 pour prendre en compte la nouvelle configuration:

root@updatengine:~# service apache2 restart

Puis initialisez la base de données:

root@updatengine:~# /var/www/UE-environment/bin/python /var/www/UE-environment/updatengine-server/manage.py syncdb

L’installeur vous demande alors si vous souhaitez créer un nouvel utilisateur pour l’application:
Répondez yes à la question posée pour en créer un nouveau :
You just installed Django’s auth system, which means you don’t have any
superusers defined. Would you like to create one now? (yes/no): yes
Saisissez ensuite le nom de l’utilisateur et entrez son adresse email:
Username (leave blank to use ‘root’): admin
E-mail : address:admin@local.domain
Saisissez ensuite un mot de passe pour cet utilisateur, confirmez le et validez en appuyant sur la touche entrée pour terminer l’initialisation de la base de données:
Password:*****
Password (again):*****
La base de données est maintenant initialisée.
Pour terminer la configuration d’UpdatEngine, nous allons maintenant passer toutes les mises à jour effectuées
depuis le début de son développement avec la commande « migrate » :

root@updatengine:~# /var/www/UE-environment/bin/python /var/www/UE-environment/updatengine-server/manage.py migrate

Remarque:
le schéma de base de données est géré avec le module python South pour faciliter les évolutions et les migrations des bases de données entre versions.

Enfin chargez les données initiales de l’application (configuration par défaut):

root@updatengine:~# /var/www/UE-environment/bin/python /var/www/UE-environment/updatengine-server/manage.py loaddata /var/www/UE-environment/updatengine-server/initial_data/configuration_initial_data.yaml

root@updatengine:~# /var/www/UE-environment/bin/python /var/www/UE-environment/updatengine-server/manage.py loaddata /var/www/UE-environment/updatengine-server/initial_data/groups_initial_data.yaml

L’installation de l’application et l’initialisation de la base de données est maintenant terminée. Il ne reste plus qu’à rendre l’utilisateur www-data propriétaire des deux répertoires static et media:

root@updatengine:~# chown -R www-data:www-data /var/www/UE-environment/updatengine-server/updatengine/static/

root@updatengine:~# chown -R www-data:www-data /var/www/UE-environment/updatengine-server/updatengine/media/

root@updatengine:~# chown -R www-data:www-data /var/www/UE-environment/updatengine-server/updatengine/media/

1.4 Patch de Django 1.6.2

Afin de corriger un bug Django pouvant (dans certain cas) conduire à l’enregistrement de mauvais enregistrements, veuillez passer le patch nommé patch-django_1.6.2_17118.patch :

root@updatengine:~# patch -p1 /var/www/UE-environment/local/lib/python2.7/site-packages/django/forms/models.py /var/www/UE-environment/updatengine-server/requirements/patchs/patch-django_1.6.2_17118.patch

1.5 Fin de configuration

Vous pouvez maintenant relancer le service apache2 :

root@updatengine:~# service apache2 restart

Enfin, connectez-vous à l’application avec un navigateur web en saisissant comme adresse celle que
vous avez renseigné pour la variable PROJECT_URL (http://10.0.0.250:1979 dans l’exemple).
Vous arrivez alors sur la boîte de connexion. Connectez-vous avec le login et le mot de passe renseigné précédemment (à la configuration de Django).

Page de connection

2.Migration vers une version stable

Cette procédure a pour but de migrer un serveur UpdatEngine dans la toute nouvelle version 2.1.1 stable à ne pas faire si c’est déjà le cas.

2.1 Sauvegarde de l’application

Comme pour toute application à mettre à jour, commencez par faire une sauvegarde de la base de données et des fichiers de l’application (de façon à préserver vos paquets).
Vous pouvez également sauvegarder le répertoire contenant les paquets de déploiement situés dans le répertoire /var/www/UE-environment/updatengine-server/updatengine/media/package-file/

2.2 Procédure de mise à jour

2.2.1 Mise à jour et bascule sur la branche stable (nommée master)

Placez-vous dans le répertoire updatengine-server et assurez-vous tout d’abord de bien être en version stable (master)


root@updatengine:~# cd /var/www/UE-environment/updatengine-server/
root@updatengine:~# git checkout master

Lancez ensuite la commande git pull qui permettra de synchroniser votre installation avec les sources hébergées en ligne:
root@updatengine:~# git pull

2.2.2 Mise à jour des modules

Commencez par mettre à jour les dépendances nécessaires à l’application :


root@updatengine:~# cd /var/www/UE-environment/
root@updatengine:~# /var/www/UE-environment/bin/pip install –upgrade distribute
root@updatengine:~# /var/www/UE-environment/bin/pip install –upgrade setuptools
root@updatengine:~# /var/www/UE-environment/bin/pip install -r /var/www/UE-environment/updatengine-server/requirements/pip-packages.txt

Puis, chargez la table des fuseaux horaires :
root@updatengine:~# mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
root@updatengine:~# service mysql restart

2.2.3 Mise à jour de la base

Vérifiez tout d’abord que les noms des entités de votre base sont différentes car un critère d’unicité sur leurs noms est maintenant positionné.
Vous pouvez maintenant procéder à la mise à jour de la base de données:


root@updatengine:~# /var/www/UE-environment/bin/python /var/www/UE-environment/updatengine-server/manage.py syncdb

puis

root@updatengine:~# /var/www/UE-environment/bin/python /var/www/UE-environment/updatengine-server/manage.py migrate

2.2.4 Adaptation du fichier settings.py

Ouvrez le fichier settings.py

root@updatengine:~# nano /var/www/UE-environment/updatengine-server/updatengine/settings.py

Ajoutez la ligne : SHOW_PERM_CONFIG_AUTH = False
après l’option LANGUAGE_CODE = ‘fr’

2.2.5 Chargement des groupes par défaut

Afin de charger les nouveaux groupes mis à disposition avec cette version, lancez la comande

suivante :

root@updatengine:~# /var/www/UE-environment/bin/python /var/www/UE-environment/updatengine-server/manage.py loaddata /var/www/UE-environment/updatengine-server/initial_data/groups_initial_data.yaml

2.2.6 Patch de Django 1.6.2

Afin de corriger un bug Django pouvant (dans certain cas) conduire à l’enregistrement de mauvais enregistrements, veuillez passer le patch nommé patch-django_1.6.2_17118.patch :
root@updatengine:~# patch -p1 /var/www/UE-environment/local/lib/python2.7/site-packages/django/forms/models.py /var/www/UE-environment/updatengine-server/requirements/patchs/patch-django_1.6.2_17118.patch

Pour finir la mise à jour il faut redémarrer le service apache2 :

root@updatengine:~# service apache2 restart

Vous pouvez maintenant vous connecter à l’application. Après la connexion, vous devriez avoir une interface de ce type :

Page d'acceuil

3. Création du certificat SSL pour l’HTTPs

Commencez par créer une clef dédiée à l’application UpdatEngine:

root@updatengine:~# openssl genrsa -out /etc/ssl/private/updatengine.key 1024

Puis générez un certificat à partir de cette clef et répondez aux questions posées

root@updatengine:~# openssl req -new -x509 -days 3650 -key /etc/ssl/private/updatengine.key -out /etc/ssl/certs/updatengine.crt

explication de la commande :

* -x509 : génération d’un certificat autosigné, et non d’une simple requête
* -days 365 : le certificat est valable 365 jours
* -key server.key : la clé publique est extraite de la bi-clé précédente
* -out server.crt : le certificat est copié

Répondez aux question posé pour la génération du certificat.
A noter qu’il faut faire attention au champ Common Name (eg, YOUR name) : Il faut mettre le même nom que le serveur, pour mon cas EnvironementTest.com. Sinon, nous aurons un message comme quoi le nom du propriétaire du certificat et du site ne correspond pas.
Pour l’instant nous avons un certificat et un serveur web pourtant quand j’essaye de me connecter au serveur j’ai une erreur (« Page Web Inaccessible ») et c’est normal, en effet on doit intégrer le certificat dans le fichier de configuration de notre site.

3.1 Configuration du site Web

Il nous faut donc éditer le fichier de configuration de notre serveur Web et activer le module SSL.

activation du module SSL :

root@updatengine:~# a2enmod ssl

Éditer le fichier de configuration de votre site Web en décommentant 3 lignes :

root@updatengine:~# nano /etc/apache2/sites-enabled/apache-updatengine.conf

et décommenter les lignes suivantes :

SSLEngine on
SSLCertificateFile    /etc/ssl/certs/updatengine.crt
SSLCertificateKeyFile /etc/ssl/private/updatengine.key

c’est a dire celle qui sont encadré en rouge dans l’image suivante :

decommligne fichierconf site

Avant de redémarrer le service apache2, modifiez le fichier de configuration de l’application en ouvrant le fichier suivant :

/var/www/UE-environment/updatengine-server/updatengine/settings.py


root@updatengine:~# /var/www/UE-environment/updatengine-server/updatengine/settings.py

et en remplaçant dans la valeur de la variable PROJECT_URL: http:// par https:// comme ici :

settings.py ssll

il faut maintenant redémarrer Apache :

root@updatengine:~# /etc/init.d/apache2 restart

pour accéder a UpdatEngine il faut entrer https://ip_serveur:1979/ on a cette page :
pagessl

Cliquez sur « je comprends les risques » puis sur « ajouter une exception… » et « Confirmez l’exception de sécurité » et vous voici sur la page d’accueil sécurisé :

Page d'acceuil_secure

4. Configuration des clients

Avant de configurer les clients, commencez par récupérer le certificat de sécurité SSL.
Vous devez pour cela transformer le certificat updatengine.crt au format pem par la commande suivante:
root@updatengine:~# openssl x509 -in /etc/apache2/ssl/apache.crt -out /tmp/cacert.pem -text

personnellement pour amener le certificat sous windows je me suis connecter en SSH avec WinSCP sur le serveur.
Je vous conseil de le mettre dans un répertoire inaccessible au utilisateurs
personnellement je l’ai déposé dans le répertoire « UpdatEngine client » (répertoire dans lequel serra installé le client qui est lui même dans « C:\Program Files (x86)\ »)
Vous pouvez maintenant récupérer le certificat cacert.pem généré sous /tmp pour le copier par la suite dans les répertoires de configuration des clients UpdatEngine.
Vous pouvez maintenant configurer les clients:
Récupérez tout d’abord l’agent Windows (http://download.updatengine.com/updatengine-client-setup.exe)
Une fois téléchargé, exécutez le. Une première fenêtre vous demande de choisir la langue de l’installeur puis vous présente la version de l’agent que vous allez installer. Cliquez sur Suivant pour poursuivre:

capture-client-2.4.3

L’installeur affiche alors la licence d’utilisation du logiciel (GPL V2). Prenez en connaissance puis acceptez les termes de la licence et validez votre choix en cliquant sur Suivant :

installCliet2

Renseignez ces deux champs puis validez ces choix en cliquant sur Suivant, Attention au délais entre les inventaires :

installCliet3

Attention : à cette étape veillez à bien respecter le protocole (http ou https) ainsi que l’adresse et le port de fonctionnement de votre serveur UpdatEngine. Cliquer ensuite deux fois sur suivant. Vous pouvez maintenant sélectionner un certificat de sécurité SSL si vous fonctionnez en HTTPS. Pour cela cliquez sur le bouton Parcourir et choisissez le certificat de sécurité SSL issu du serveur hébergeant votre serveur UpdatEngine. Cliquez ensuite sur Suivant pour valider votre choix.

installCliet4

Une fois votre client installé, la connexion entre l’agent et le serveur sera sécurisée.Vous pouvez retrouver votre machine dans l’onglet Inventaires > Machines , le serveur a récupéré la liste des logiciels le nom de la machines, …

ici ma machine ou j’ai installé le client :

machine inventorié

5. Les paquets de déploiement

5.1 Les conditions de déploiements

Les conditions de déploiement servent à savoir si le logiciel est installable sur la machine ou quel version est actuellement installé sur cette dernière ce qui peut être très pratique quand on démarre avec une solution de déploiement au début car notre parc comprend des machines utilisant différentes versions d’un même logiciel donc certaine seront concerné par le paquet de déploiement et d’autre non. Pour créer une condition de déploiement aller dans l’onglet Déploiements puis Conditions d’installations. Nous pouvons voir ici que j’en ai déjà créé :

Conditions d'installations

btn ajout condition

Il nous faut maintenant remplir 4 champs : le nom, la condition, le nom du logiciel et sa version.

Champs Conditions vide

Exemple : Nous voulons mettre à jour Libre Office sur 41 poste dont certains on déjà la dernière version (5.0.1) nous allons donc remplir les champs comme suis :
Nom de la condition : Libre Office 5.0.1
Condition à vérifier : Logiciel non installé ou version inférieure à :
Nom : Libre Office
Version : 5.0.1
Puis cliquer sur Enregistrer en bas a droite

Champs Conditions remplis

Pour connaître la bonne orthographe du nom du logiciel et la version je vous conseille de l’installer sur une machine puis de lancer l’inventaire. Prenons le cas de mozilla firefox, comment l’orthographier ? Mozilla Firefox, MOZILLA FIREFOX, … ? pour savoir cela installer le sur votre poste puis faite une remonté d’inventaire (commande à exécuter dans l’invite de commande: « C:\Program Files (x86)\UpdatEngine client\updatengine-client.exe » -i -s https://10.0.0.250:1979 -o « C:\Program Files (x86)\UpdatEngine client\updatengine-client.log »).

Puis aller dans « Inventaires/Machines » et cliquez sur le nom de la machine sur lequel le logiciel est installé (vérifier l’heure pour être sur que l’inventaire ai bien eu lieu), descendez jusqu’à la partie « Logiciels » et chercher (dans ce cas) Mozilla Firefox. Ensuite copiez la première colonnes dans la partie nom et la seconde dans la partie version :

nom-versionpourcondition

pour tester l’architecture il est plus simple d’indiquer juste le nom de la condition et dans le champ « Condition à vérifier » sélectionner « Poste Windows 64 bits » .

exemple :

condition 64bits

5.2 Comment faire un paquet de déploiement

Nous savons donc maintenant faire une condition de déploiement maintenant nous allons créer un paquet de déploiement :

Allez dans Déploiements > Paquets de déploiements puis cliquez sur « Ajouter paquet de déploiement »
Nous devons remplir 7 champs :
Dans Général :

Le Nom : le nom du paquet
La Description : logiciel qu’il installe, version

Dans « Édition de paquet »

Les Conditions : sous quelle conditions est-il installable
La commande pour lancer l’installation : Diffère en fonction des logiciels (/s, …)
Le fichier (.zip, .exe, .msi, …) : Fichier contenant l’installeur
Paquet public :basculer à oui, les clients updatengine pourront télécharger et installer le paquet directement
Ignorer les horaires de télédéploiement : permet de déployer en dehors des horaires définit

Exemple : continuons sur notre exemple de Libre Office, voici ce que l’on remplit
Dans Général :

Le Nom : Libre office
La Description : Installation silencieuse de libre Office 5.0.1

Dans « Édition de paquet »

Les Conditions : Libre Office 5.0.1
La commande pour lancer l’installation : msiexec /i LibreOffice_5.0.1_Win_x86.msi /quiet /passive /norestart
Le fichier : LibreOffice_5.0.1_Win_x86.msi
Paquet public : non
Ignorer les horaires de télédéploiement : oui

ce qui nous donne :

Paquet de déploiement

 

cliquez ensuite en bas a droite sur « Enregistrer ».
A noter que la commande change pour chaque exécutable, même si certaine sont standardisé (/s, /i, /norestart). Je conseille de toujours tester sont paquet de déploiement sur un poste à part puis de le lancer sur le parc.
Attention si votre logiciel à installer comprend plusieurs fichier compressez les entre eux et non leur répertoire (voir http://www.updatengine.com/deployer-executable-zip/ )
on peut noter également que via un paquet de déploiement nous pouvons également exécuter des scripts

5.3 Comment déployer

Il existe deux moyens pour déployer des logiciels au cas par cas ou sur une entité (groupe) vous pouvez suivre un déploiement en cour en allant dans « Déploiements/Historique des déploiements ».

5.3.1 Déploiement au cas par cas

Ce premier type de déploiement permet d’installer à distance un logiciel, l’installation ce fait lors du prochain inventaire pour cela suivez ces étapes :
Allez dans le menu « Inventaires » puis sur « Machines »
choisissez la machine qui vous intéresse (voir colonne nom qui indique le nom Net Bios)
cliquez sur la date et l’heure de la dernière sauvegarde
descendez jusqu’à atteindre le champ « paquet a installer statiquement »
dans la colonne de gauche double cliquez sur les paquets de déploiements que vous voulez exécuter (ils se mettront dans la colonnes de droite)

deploycasparcas

5.3.2 Déploiement par Entités

5.3.2.1 Les entités

Une entité pour UpdatEngine est un groupe de machine, nous allons les utiliser pour déployer nos paquets.
Tout d’abord allez dans « Inventaires> Entités » et cliquez sur « Ajouter entité »

btn ajout entité

remplissez les champs comme suis :

Nom : Conservatoire
Description : PC du conservatoire
Forcer l’application du profil ? Non
Forcer l’application de la période de déploiement? Non

ce qui donne :

Entité_Conservatoire

5.3.2.2 Le déploiement

Le déploiement par entité est un tout petit peu plus complexe, allez dans « Inventaire » puis « Machines »               faite une recherche par entité en cliquant sur « Filtre » et au niveau d’Entité sélectionnez celle qui vous intéresse (ici conservatoire)

recherche par entité

ils nous reste ainsi que les machines faisant partit de l’entité « Conservatoire », sélectionnez toutes les machines en cliquant dans la case ne correspondant à aucune machine

checkbox

puis dans le menu déroulant du bas sélectionnez « Mass Update »

MassUpdate

dans le menu des machines cliquez dans la case « mettre à jour au niveau de « Paquets à installer statiquement » puis sélectionnez les paquets à déployer et enfin cliquez sur « Mettre à jour ».
Ici je lance le paquet « Audacity » :

Déploiement multiposte

5.4 Importer et exporter ses paquets

Importer ou exporter un paquet permet de récupérer les paquets du serveur et de les sauvegarder cette tache est laborieuse sous UpdatEngine car on ne peut faire qu’un paquet a la fois.
Allez dans l’onglet « Déploiements » puis dans « imports/exports »
Cliquez sur « Ajouter Import/Export »

btn importexport

vous devez ensuite lui donner un nom, une description , et si c’est un import choisir le fichier .zip d’un paquet exporté ou si c’est pour exporté choisissez un paquet dans le menu déroulant.

Exemple d’export :

CréaPaquetExport

enfin cliquez sur « Enregistrer », vous serez renvoyé à l’accueil d’import/export.
Cliquez sur « Export » au niveau de votre objet d’import/Export :

objetexport

Pour importer un paquet l’opération est assez similaire :
Allez dans l’onglet « Déploiements » puis dans « imports/exports »
Cliquez sur « Ajouter Import/Export »
vous devez ensuite lui donner un nom, une description , choisir le fichier .zip

CréaPaquetImport

Cliquez sur « Enregistrer » en bas a droite.

En vous rendant maintenant sur la page des paquets de déploiement, vous pouvez voir qu’une nouvelle ligne montrant le paquet est disponible

PaquetImporté

De même une condition déjà associée au paquet a été créée. De cette façon, vous pouvez en une seule opération importer le paquet de déploiement et les conditions associées.

Vous pouvez maintenarrrrrrnt déployer ce paquet comme tout autre paquet sur les machines de votre parc informatique.

5.5 Désinstallation à distance

UpdatEngine permet la désinstallation via un paquet de déploiement des logiciels installé.

Pour cela créez un nouveau paquet de déploiement avec les paramètres suivant :

Nom : Nom du paquet à désinstaller suivi de « -uninstall » pour le repérer plus facilement
Description : description du paquet
condition : le logiciel est installé
commande : commande de désinstallation fourni par UpdatEngine
Paquet public : non
Ignorer les horaires de télédéploiement : oui

pour récupérer la commande de désinstallation aller dans « Inventaires/Logiciels » puis rechercher le logiciel que vous voulez désinstaller, cliquer sur sont nom et copier la commande du champ « Désinstalleur » et rajouter /s , ou /quiet /passive

désinstallation logiciel

desinstalleur

exemple :

exempledésinstall

6.Modification du déclenchement de l’inventaire

Introduction :

Dans certains cas la fonction Wake-On-Lan n’est pas possible et le déploiement ne peut se faire qu’à deux moment : au démarrage ou à l’extinction du PC mais UpdatEngine n’est pas prévu pour cela de base, en effet il fait une remonté d’inventaire régulière et peut donc tenter d’installer un logiciel alors que ce n’est pas possible car il est en fonctionnement. J’ai donc décidé d’exécuter UpdatEngine uniquement à l’arrêt du système. Pour cela j’ai donc désactivé les taches liées à UpdatEngine sur le client, Puis j’ai crée une GPO qui exécute un script pour faire une remonté d’inventaire à l’arrêt. Puis, j’ai adapté les commandes pour que la fenêtre de l’installeur ne soit pas visible au moment de l’installation. Pour certain paquet comme adobe il faut refaire le paquet de déploiement.

6.1 Désactiver les Tâches d’UpdatEngine

Allez dans démarrer et taper « planificateur de taches » et appuyez sur la touche entrer :

desactacheue1

Une fois ouvert rechercher une tâche UpdatEngine en cour d’exécution dans l’encadré en bas de page et double cliquer dessus :

desactacheue2

Sélectionnez les deux tâches UpdatEngine (Updatengine et Updatengine-monitor ) puis faite un clic droit et cliquez sur « Désactiver » :

desactacheue3

6.2 Mise en place d’une GPO

Nous allons mettre en place une GPO réalisant 2 actions :

  • Autoriser l’exécution des scripts de plus de 15 minutes
  • Lancer les scripts de remonté d’inventaire à l’extinction de l’ordinateur

pour créer la GPO sur windows server 2008 r2 suivez les étapes suivantes :

ouvrez le menu démarrer > Outils d’administration > Gestion des stratégies de groupe

CreerGPOetape1

faite un clic droit sur votre nom de domaine (ou dans l’UO contenant les PC concernés )et cliquez sur « Créer un objet GPO dans ce domaine, et le lier ici… »

CreerGPOetape2

indiquer le nom de la GPO dans l’onglet qui apparaît

CreerGPOetape3

elle apparaît sous le nom de domaine et dans le dossier « Objet de stratégie de groupe » pour l’éditer faite un clic droit puis cliquer sur « Modifier… »

6.2.1 Exécution d’un script en fermeture de session

Faite un clic droit sur la GPO nouvellement créée et cliquez sur « Modifier … » puis cliquez dans cette ordre : Configuration ordinateur/Stratégies/Paramètres Windows/Scripts (démarrage/arrêt)/arrêt du système.

Cliquer sur « ajouter » puis sélectionner le script « Starter » dans le netlogon du serveur (\\<ip du serveur>\netlogon\starter.bat enfin cliquez sur « Ouvrir » puis sur « ok » et enfin « appliquer » et sur « ok ».

CreerGPOetape4

 

Nous verrons plus tard quel script faire pour lancer UpdatEngine

6.2.2 GPO autoriser les scripts long à l’arrêt

Faites un clic droit sur la GPO nouvellement créé et cliquez sur « Modifier … » puis cliquez dans cette ordre : Configuration ordinateur/Stratégies/Modèles administration/Système/Options d’arrêt

double cliquez sur « Désactiver l’arrêt automatique des applications qui bloquent ou annulent l’arrêt de l’ordinateur » passer l’option sur « Activé » ensuite cliquez sur « Appliquer » puis « ok »

CreerGPOetape5

6.2.3 Activer une GPO

Faites un clique droit sur le nom de votre GPO sous le nom de domaine et cliquez sur « Appliqué » à ce moment là un cadenas apparaît à coter de la GPO elle est activé, elle serra réellement appliquée dans 90 minutes ou au prochain démarrage ou encore en entrant « gpupdate /force » dans l’invite de commande.

CreerGPOetape6

6.3 Création des Scripts

Il me fallait deux script en Batch : un de présentation et l’autre exécutant la commande d’inventaire

6.3.1 Script de présentation

C’est le script exécuté par la GPO (rem = commentaire (remarque)):

@echo off
rem nettoyage de la console avec cls
cls
rem message d'attente
echo.
echo.
echo 	############################################
echo 	#                                          #
echo 	#                                          #
echo 	#  V‚rification des mises … jour           #
echo 	#  l'ordinateur s'‚teindra automatiquement #
echo 	#  Si des fenˆtres apparaissent veuillez   #
echo 	#       	ne pas les fermer	   #
echo 	#                                          #
echo 	#                                          #
echo 	############################################
echo. 
echo.
call \\10.0.0.245\netlogon\launchUpdatEngine.bat>nul

le call appelle le second script par le réseau

6.3.2 Script de remonté d’inventaire

Ce script est juste la commande de remonté d’inventaire :

"C:\Program Files (x86)\UpdatEngine client\updatengine-client.exe" -i  -s https://10.0.0.250:1979 -o "C:\Program Files (x86)\UpdatEngine client\updatengine-client.log"

6.4 Adaptation des commandes

Si dans votre paquet de déploiement vous utilisez un .exe ou un .bat rajoutez « >nul » a la fin de la commande.
exemple : « install.bat>nul » ou « FirefoxSetup38.5.2esr.exe /s /norestart >nul »
si c’est un .MSI assuré vous que le /quiet et le /passive sont présent (même si en temps normal il le sont)

6.5 Création du paquet de déploiement d’adobe Reader

Téléchargez tout d’abord 7zip, une fois installer exécuter le (7zip file manager) et placer vous dans le répertoire contenant le .exe d’Adobe reader. Faite un clique droit sur ce dernier et choisissez « ouvrir a l’intérieur » vous arrivez sur ça :

adobeCréaMSI1

sélectionnez tout et cliquez sur le bouton « extraire » , il faut extraire tout le contenu dans un dossier puis ouvrez le dossier, et créez un fichier « install.bat » dans lequel vous aller entrer la commande d’exécution du .msi
dans mon cas je met : msiexec /i AcroRead.msi /quiet /passive /norestart
enregistrez et quittez l’editeur du .bat, selectionner tous les fichier extrait du .exe plus le .bat puis faite un clic droit> envoyer vers> dossier compressé
vous obtenez un zip que vous pouvez renommer comme bon vous semble.
Pour finir créez le paquet de déploiement :

Nom :Adobe reader
Description : Adobe reader Déploiement
Conditions :Adobe reader DC
Commande : install.bat>nul
Fichier : le fichier zip que vous avez crée
Paquet public : non
Ignorer les horaires de déploiement : oui

ce qui donne :

adobescripté

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *