1. Introduction

Fog Project est un logiciel sous Linux qui va vous permettre d’effectuer vos déploiements pour machines Windows, Linux, et Mac.

Le déploiement sur les clients se fera par le biais d’un serveur PXE fourni par Fog Project. Un client est également disponible pour déployer des applications sur des systèmes en cours d’exécution.

1-1. Qu’est-ce que le déploiement

Le déploiement consiste à effectuer des installations automatisées de machines ou installer ou mettre à jour automatiquement des logiciels sur des machines en production.

Pour effectuer des installations automatisées de systèmes d’exploitation, il vous faudra préparer au préalable un « Master ». Ce master sera cloné sur les machines de destination, avec des possibilités de personnalisation automatisée.

À cette fin, la machine cliente devant recevoir le déploiement (l’application du master sur celui-ci) démarrera via le réseau, le serveur de déploiement lui envoyant les éléments nécessaires.

La réalisation d’un master nécessitera des compétences sur le fonctionnement des systèmes d’exploitation concernés ainsi que de leurs outils. Un minimum de compétences en programmation de script sera également nécessaire.

1-2. Cadre des tests

Les tests ont été effectués depuis la version 1.5.9 de Fog Project installée sur une distribution Debian Stretch. Il est possible d’utiliser Fog Project sur d’autres distributions Linux, configurations non testées dans le cadre de ce tutoriel.

Les tests ont été effectués avec des machines virtuelles sous VirtualBox. Le démarrage réseau PXE en UEFI depuis VirtualBox ne fonctionne qu’en entrant dans le BIOS pour le sélectionner.

D’après le forum de Fog Project, la gestion du « Secure Boot » ne semble pas implémentée (non testé).

La partie Mac OS n’a pas été testée (pas de matériel à disposition).

2. installation

Le site Internet de Fog Project fournit une version .zip et .tar.gz. Il est possible d’effectuer l’installation depuis git, solution que j’ai utilisée.

 
Sélectionnez
apt-get install git
git clone https://github.com/FOGProject/fogproject.git

Il faudra ensuite lancer le script d’installation depuis le dossier bin.

 
Sélectionnez
cd  fogproject-1.5.9/bin
./installfog.sh

L’installation se déclenchera :

 
Sélectionnez
Installing LSB_Release as needed
 * Attempting to get release information.......................Done


   +------------------------------------------+
   |     ..#######:.    ..,#,..     .::##::.  |
   |.:######          .:;####:......;#;..     |
   |...##...        ...##;,;##::::.##...      |
   |   ,#          ...##.....##:::##     ..:: |
   |   ##    .::###,,##.   . ##.::#.:######::.|
   |...##:::###::....#. ..  .#...#. #...#:::. |
   |..:####:..    ..##......##::##  ..  #     |
   |    #  .      ...##:,;##;:::#: ... ##..   |
   |   .#  .       .:;####;::::.##:::;#:..    |
   |    #                     ..:;###..       |
   |                                          |
   +------------------------------------------+
   |      Free Computer Imaging Solution      |
   +------------------------------------------+
   |  Credits: http://fogproject.org/Credits  |
   |       http://fogproject.org/Credits      |
   |       Released under GPL Version 3       |
   +------------------------------------------+


   Version: 1.5.9 Installer/Updater

hostname: No address associated with hostname

Une première question vous sera posée concernant la distribution que vous utilisez (trouvée par défaut dans mon cas) :

 
Sélectionnez
What version of Linux would you like to run the installation for?

          1) Redhat Based Linux (Redhat, CentOS, Mageia)
          2) Debian Based Linux (Debian, Ubuntu, Kubuntu, Edubuntu)
          3) Arch Linux

  Choice: [2]

La question suivante concernera le type d’installation : serveur normal ou serveur de stockage :

 
Sélectionnez
Starting Debian based Installation


  FOG Server installation modes:
      * Normal Server: (Choice N)
          This is the typical installation type and
          will install all FOG components for you on this
          machine.  Pick this option if you are unsure what to pick.

      * Storage Node: (Choice S)
          This install mode will only install the software required
          to make this server act as a node in a storage group

  More information:
     http://www.fogproject.org/wiki/index.php?title=InstallationModes

  What type of installation would you like to do? [N/s (Normal/Storage)]

Nous ferons une installation de serveur normal (nous verrons l’installation d’un serveur de stockage au chapitre 9Installation d’un nœud de stockage (Storage node)).

Un serveur de stockage, comme son nom l’indique, ne servira qu’au stockage des images de déploiement. Celui-ci nécessitera d’être connecté à un serveur normal. Un ou plusieurs serveurs de stockage permettront un meilleur équilibrage de charge en cas de déploiements conséquents. Un seul serveur normal est utilisable.

Services installés sur un serveur normal :

  • serveur Web et base de données ;
  • serveur DHCP ;
  • serveur PXE ;
  • serveur NFS et FTP pour le stockage.

Sur un serveur de stockage, seuls les services NFS et FTP sont déployés.

Vous seront ensuite proposés les réglages réseaux (à laisser par défaut en cas de présence d’une seule carte réseau) :

 
Sélectionnez
  We found the following interfaces on your system:
      * enp0s3 - 192.168.1.200/24

  Would you like to change the default network interface from enp0s3?
  If you are not sure, select No. [y/N]

Les prochains réglages concerneront le réseau avec les réglages du serveur DHCP fourni par Fog Project :

 
Sélectionnez
Would you like to setup a router address for the DHCP server? [Y/n]
  What is the IP address to be used for the router on
      the DHCP server? [192.168.1.1]

  Would you like DHCP to handle DNS? [Y/n]
  What DNS address should DHCP allow? [192.168.1.1]

  Would you like to use the FOG server for DHCP service? [y/N]

Il semblerait que ne pas activer le serveur DHCP de Fog Project empêche le boot PXE.

Puis on règle l’internationalisation :

 
Sélectionnez
 This version of FOG has internationalization support, would
  you like to install the additional language packs? [y/N]

Pour avoir la possibilité de passer l’interface en français, il faudra répondre « yes »

Il vous faudra ensuite choisir le support HTTPS ou non :

 
Sélectionnez
  Using encrypted connections is state of the art on the web and we
  encourage you to enable this for your FOG server. But using HTTPS
  has some implications within FOG, PXE and fog-client and you want
  to read https://wiki.fogproject.org/HTTPS before you decide!
  Would you like to enable secure HTTPS on your FOG server? [y/N]

Utiliser le mode HTTPS fera que l’installation sera plus lente. Il faut être patient, le script d’installation semblant bloqué.

L’option d’accès à l’interface en mode https a été testé, pour les autres options que nous allons voir, celles-ci semblent ne pas fonctionner en mode HTTPS. Il est possible que le problème vienne des certificats autosignés.

Vous sera ensuite demandé le hostname à utiliser :

 
Sélectionnez
hostname: No address associated with hostname

  Which hostname would you like to use? Currently is:
  Note: This hostname will be in the certificate we generate for your
  FOG webserver. The hostname will only be used for this but won't be
  set as a local hostname on your server!
  Would you like to change it? If you are not sure, select No. [y/N] y
  Which hostname would you like to use? fogsrv

Vous aurez enfin une demande de confirmation regroupant vos choix :

 
Sélectionnez
######################################################################
   #     FOG now has everything it needs for this setup, but please     #
   #   understand that this script will overwrite any setting you may   #
   #   have setup for services like DHCP, apache, pxe, tftp, and NFS.   #
   ######################################################################
   # It is not recommended that you install this on a production system #
   #        as this script modifies many of your system settings.       #
   ######################################################################
   #             This script should be run by the root user.            #
   #      It will prepend the running with sudo if root is not set      #
   ######################################################################
   #            Please see our wiki for more information at:            #
   ######################################################################
   #             https://wiki.fogproject.org/wiki/index.php             #
   ######################################################################

 * Here are the settings FOG will use:
 * Base Linux: Debian
 * Detected Linux Distribution: Debian GNU/Linux
 * Interface: enp0s3
 * Server IP Address: 192.168.1.200
 * Server Subnet Mask: 255.255.255.0
 * Server Hostname: fogsrv
 * Installation Type: Normal Server
 * Internationalization: 0
 * Image Storage Location: /images
 * Using FOG DHCP: Yes
 * DHCP will NOT be setup but you must setup your
 | current DHCP server to use FOG for PXE services.

 * On a Linux DHCP server you must set: next-server and filename

 * On a Windows DHCP server you must set options 066 and 067

 * Option 066/next-server is the IP of the FOG Server: (e.g. 192.168.1.200)
 * Option 067/filename is the bootfile: (e.g. undionly.kpxe)


 * Are you sure you wish to continue (Y/N) Y

Une fois l’installation terminée, il vous faudra faire une première connexion sur l’interface Web de Fog Project pour installer la base de données, vous avez les indications pour vous connecter sur la console :

 
Sélectionnez
 * You still need to install/update your database schema.
 * This can be done 
by opening a web browser and going to:

   http://192.168.1.200/fog/management

* Press [Enter] key when database is updated/installed.
Image non disponible

Une fois l’opération terminée, vous aurez l’écran suivant :

Image non disponible

Vous pourrez alors appuyer sur la touche retour chariot dans la console d’installation, les services utilisés par Fog Project seront installés :

 
Sélectionnez
* Setting permissions on FOGMulticastManager.service script...OK
 * Enabling FOGMulticastManager.service Service................OK
 * Setting permissions on FOGImageReplicator.service script....OK
 * Enabling FOGImageReplicator.service Service.................OK
 * Setting permissions on FOGSnapinReplicator.service script...OK
 * Enabling FOGSnapinReplicator.service Service................OK
 * Setting permissions on FOGScheduler.service script..........OK
 * Enabling FOGScheduler.service Service.......................OK
 * Setting permissions on FOGPingHosts.service script..........OK
 * Enabling FOGPingHosts.service Service.......................OK
 * Setting permissions on FOGSnapinHash.service script.........OK
 * Enabling FOGSnapinHash.service Service......................OK
 * Setting permissions on FOGImageSize.service script..........OK
 * Enabling FOGImageSize.service Service.......................OK
 * Setting up FOG Services.....................................OK
 * Starting FOGMulticastManager.service Service................OK
 * Starting FOGImageReplicator.service Service.................OK
 * Starting FOGSnapinReplicator.service Service................OK
 * Starting FOGScheduler.service Service.......................OK
 * Starting FOGPingHosts.service Service.......................OK
 * Starting FOGSnapinHash.service Service......................OK
 * Starting FOGImageSize.service Service.......................OK
 * Setting up exports file.....................................OK
 * Setting up and starting RPCBind.............................OK
 * Setting up and starting NFS Server..........................OK
 * Linking FOG Logs to Linux Logs..............................OK
 * Linking FOG Service config /etc.............................OK
 * Ensuring node username and passwords match..................Done

 * Setup complete

   You can now login to the FOG Management Portal using
   the information listed below.  The login information
   is only if this is the first install.

   This can be done by opening a web browser and going to:

   http://192.168.1.200/fog/management

   Default User Information
   Username: fog
   Password: password

 * Changed configurations:

   The FOG installer changed configuration files and created the
   following backup files from your origional files:
   * /etc/dhcp/dhcpd.conf <=> /etc/dhcp/dhcpd.conf.1621875467
   * /etc/vsftpd.conf <=> /etc/vsftpd.conf.1621875467
* /etc/exports <=> /etc/exports.1621875467

À la fin de la phase de configuration, les informations de connexion, URL, login et mot de passe vous sont indiqués.

3. Premier accès à l’interface graphique

Lors de l’accès à l’URL de connexion, vous aurez l’écran d’authentification :

Image non disponible

À ce stade, choisir la langue française n’aura aucun effet, nous verrons un peu plus tard comment changer la langue.

Ci-dessous le tableau de bord s’affichant après connexion :

Image non disponible

La première étape sera de changer les identifiants de connexion :

Image non disponible

cliquer sur l’utilisateur fog permettra de le modifier :

Image non disponible

Vous pouvez voir sur l’écran ci-dessus que j’ai changé le nom d’utilisateur par « admin »

puis on change le mot de passe :

Image non disponible

Les données d’identification ayant été changées, revenons sur l’écran principal.

Toutes les fonctions principales sont accessibles depuis la barre de menu :

Image non disponible

Avec en fonction :

  • Image non disponible dashboard : affiché par défaut au démarrage ;
  • Image non disponible users : pour gérer les utilisateurs ;
  • Image non disponible hosts : pour gérer les machines ;
  • Image non disponible groups : pour gérer les groupes de machines ;
  • Image non disponible images : pour gérer les images de déploiements ;
  • Image non disponible storage : pour gérer les machines de stockage secondaires ;
  • Image non disponible snapin : pour gérer les actions de déploiement ;
  • Image non disponible printer : pour gérer un spooler d’impression depuis Fog ;
  • Image non disponible client setting : pour gérer les fonctions du client installées sur les machines gérées (exemple : activer/désactiver la gestion des snapins (que nous verrons plus tard), activer/désactiver la possibilité de reboot distant) ;
  • Image non disponible tasks : pour le suivi des tâches en cours ;
  • Image non disponible reports : permet de générer des rapports en CSV ou PDF ;
  • Image non disponible configuration : pour effectuer des réglages de FOGProject.

3-1. Configuration

Nous allons commencer par passer l’interface en français.

Après avoir cliqué sur l’icône « Fog configuration », il va falloir aller dans l’onglet « FOG Settings » (en descendant dans la liste à gauche) sur l’écran de configuration :

Image non disponible

Il faudra ensuite descendre dans la liste et cliquer sur « General Settings » pour dérouler les réglages. Vous pourrez ensuite sélectionner la langue en changeant la « default locale » :

Image non disponible

Après avoir validé en cliquant sur « update » et rafraîchi l’écran en cliquant sur l’icône « dashboard », vous verrez l’interface en français.

La traduction en français est partielle, certaines parties resteront en anglais.

Pour les autres aspects, depuis l’écran de configuration, vous pourrez :

  • affiner les réglages du serveur PXE ;
  • affiner les réglages du client ;
  • exporter la base de données pour effectuer une sauvegarde ;
  • importer la base de données sauvegardée.

Nous n’entrerons pas dans le détail de ces réglages.

La configuration de base est stockée dans le fichier /opt/fog/.fogsettings, les autres réglages sont stockés dans la base de données MySQL nommée fog.

Vous pourrez faire un import/export de la base de données en sélectionnant « configuration save » dans la liste des choix dans l’onglet configuration.

4. Intégration d’un poste existant dans Fog Project

Les écrans PXE ne seront qu’en anglais.

4-1. Windows

Nous démarrons un poste client sous Windows grâce à un boot réseau PXE :

Image non disponible

Nous aurons le menu suivant :

Image non disponible

Il y a deux options d’enregistrement :

  • Quick registration and inventory ;
  • Perform Full Host Registration and Inventory.

Nous utiliserons dans un premier temps la première option, les différences seront expliquées un peu plus bas.

Une fois « quick registration and inventory » (que l’on peut traduire par enregistrement et inventaire rapide) sélectionné, la machine démarrera sur le système fourni par FOG.

Image du boot en cours :

Image non disponible

Une fois l’enregistrement effectué, la machine apparaîtra dans la liste des hôtes avec comme nom son adresse MAC :

Image non disponible

Vous pourrez changer le nom de la machine en cliquant dessus :

Image non disponible

Le fait de changer le nom m’a fait passer l’icône de Windows à « Unknown » (problème lié au mode Quick Registration).

En allant dans l’onglet « inventory », vous aurez des informations sur le matériel :

Image non disponible

Image non disponible

4-2. Linux

Les écrans de boot seront identiques :

Image non disponible

info : vous pouvez voir que la machine est reconnue en tant que machine Windows (présence de l’icône Image non disponible)

4-3. Quick registration / Perform Full Host Registration and Inventory

Dans le cadre d’un enregistrement avec l’option « Perform Full Host Registration and Inventory », il vous sera demandé :

  • l’« image id » lié à la machine ;
  • le choix d’affectation à un groupe (Y/N) ;
  • l’association à un snapin (y/N) ;
  • l’association d’une product key (y/N) ;
  • la jonction à un domaine (y/N) ;
  • le nom de l’utilisateur principal sur l’ordinateur ;
  • le choix de déploiement d’une image.

Comme il s’agit ici de l’intégration d’une machine existante, nous répondons aux questions par la négative.

Une fois l’opération effectuée, la machine apparaîtra avec le nom saisi.

Image non disponible

4-4. Suppression d’un hôte

Pour supprimer un hôte, il faudra cliquer sur l’icône en bas de l’écran après avoir sélectionné l’hôte concerné (dans l’exemple : suppression de la machine nommée Debian) :

Image non disponible

Une fois cliqué sur « Delete selected host » en bas de page, vous aurez un second écran ou il faudra de nouveau cliquer sur « Effacer » :

Image non disponible

Il vous faudra ensuite entrer un identifiant ayant des droits administrateur :

Image non disponible

4-5. Gestion de groupes

Il va être intéressant de gérer des groupes de machines pour effectuer des déploiements (exemple : installer une application sur tous les postes ou pour les machines d’un service).

Pour créer un groupe, cela se passera dans la partie groupe :

Image non disponible
Image non disponible

Une fois le groupe créé, il faut y intégrer les machines. Pour cela, on sélectionne le groupe concerné depuis la liste des groupes :

Image non disponible

Une fois dans le groupe, il faudra aller sur l’onglet « membership » :

Image non disponible

Il faudra ensuite cocher « check to see what hosts can be added » :

Image non disponible

Vous pouvez voir ci-dessous la machine win10 disponible :

Image non disponible

5. installation du client sur un poste

5-1. Client Windows

Prérequis pour les versions antérieures à Windows 10 : .net framework 4.5.1

Pour installer le client sur le poste, il faudra aller sur la page Web de connexion à Fog Project, vous trouverez le lien du client en bas de page :

Image non disponible

page suivante :

Image non disponible

Une fois le client téléchargé, le seul point d’attention nécessaire lors de l’installation sera la page de configuration :

Image non disponible

Vous pouvez voir que l’adresse du serveur par défaut est « fogserver » : à remplacer par son adresse IP, à moins que vous ayez créé une entrée pour celui-ci dans vos DNS.

Pour le « web root », celui-ci sera à modifier si vous avez effectué des modifications sur le virtualhost créé pour Fog Project.

5-2. Client Linux

Fog Project dépend de Mono (l’implémentation libre de la plateforme .NET), qu’il faudra commencer par installer :

 
Sélectionnez
apt-get install mono-complete

Vous pourrez ensuite télécharger le client proprement dit :

 
Sélectionnez
wget http://[serveur fogproject]]/fog/client/download.php?smartinstaller

Ceci va créer un fichier nommé « download.php?smartinstaller », que l’on renommera en smartinstaller.exe

Mono est l’implémentation libre de l’environnement d’exécution .Net Framework. Celui-ci permet de faire du développement cross-platform, d’où le renommage en fichier .exe

Nous lancerons ensuite son installation par la commande mono smartinstaller.exe :

 
Sélectionnez
mono smartinstaller.exe


                     ..#######:.    ..,#,..     .::##::.
                .:######          .:;####:......;#;..
                ...##...        ...##;,;##::::.##...
                   ,#          ...##.....##:::##     ..::
                   ##    .::###,,##.   . ##.::#.:######::.
                ...##:::###::....#. ..  .#...#. #...#:::.
                ..:####:..    ..##......##::##  ..  #
                    #  .      ...##:,;##;:::#: ... ##..
                   .#  .       .:;####;::::.##:::;#:..
                    #                     ..:;###..

                ###########################################
                #     FOG                                 #
                #     Free Computer Imaging Solution      #
                #                                         #
                #     https://www.fogproject.org/         #
                #                                         #
                #     Credits:                            #
                #     https://fogproject.org/Credits      #
                #     GNU GPL Version 3                   #
                ###########################################
                #           FOG Service Installer         #

------------------------------------License-----------------------------------

FOG Service Copyright (C) 2014-2020 FOG Project
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it under certain
conditions. See your FOG server under 'FOG Configuration' -> 'License' for
further information.

----------------------------------Information---------------------------------

Version.................................................................0.12.0
OS.......................................................................Linux
Current Path............................................................./root
Install Location............................................../opt/fog-service
Systemd...................................................................True
Initd.....................................................................True

Vous seront ensuite posées les questions suivantes :

 
Sélectionnez
-----------------------------------Configure----------------------------------

FOG Server address [default: fogserver]: 192.168.1.200
Webroot [default: /fog] :
Enable tray icon? [Y/n] : n
Start FOG Service when done? [Y/n] : Y

À la question « enable tray icon », il faudra répondre non, la fonctionnalité n’étant pas disponible sous Linux

Ci-dessous les logs d’installation :

 
Sélectionnez
----------------------------------Installing----------------------------------

Getting things ready....................................................[Pass]
Installing files........................................................[Pass]
Saving Configuration.................................................... 06/07/2021 08:45:49 Installer Settings successfully saved in /opt/fog-service/settings.json
[Pass]
Applying Configuration..................................................[Pass]
Pinning FOG Project..................................................... 06/07/2021 08:45:49 Installer FOG Project CA successfully installed
[Pass]
Pinning Server.......................................................... 06/07/2021 08:45:49 Data::RSA ERROR: FOG Server CA NOT found in keystore - needs to be installed
 06/07/2021 08:45:49 Middleware::Communication Download: http://192.168.1.200/fog/management/other/ca.cert.der
 06/07/2021 08:45:50 Data::RSA Injecting root CA:
 06/07/2021 08:45:50 Installer Successfully pinned server CA cert to CN=FOG Server CA
[Pass]

Starting FOG Service....................................................[Pass]

-----------------------------------Finished-----------------------------------

See /root/SmartInstaller.log for more information.

6. Création d’un snapin

Un snapin correspond à une action de déploiement à effectuer sur les postes auxquels celui-ci sera affecté.

Le snapin sera applicable à une machine ou à un groupe de machines.

Pour fonctionner, le snapin devra être entièrement automatique, et donc n’avoir aucune interaction. Sous Windows, il sera exécuté sous le compte SYSTEM. Ceci limite les possibilités et oblige à travailler ses installations.

Les snapins seront par défaut stockés dans /opt/fog/snapins.

Un snapin sera applicable à une machine en production ou exécutable après déploiement.

Image non disponible

Première partie de l’écran de création de snapin :

Image non disponible

seconde partie :

Image non disponible

Le snapin se présentera sous les formes suivantes :

  • exécution d’un MSI ;
  • script batch (pour machines Windows) ;
  • script PowerShell pour Windows ou mono pour Linux ;
  • VB script ;
  • script Bash (pour machines Linux).

Qu’est-ce qu’un fichier MSI ? MSI pour Microsoft System Installer. Windows installer est le moteur d’installation, de mise à jour et de désinstallation de logiciels fournis avec Windows.

Beaucoup de logiciels sous Windows sont fournis sous forme de fichier .msi. Un MSI devra être conçu pour vous permettre une installation silencieuse avec fourniture des paramètres d’installation sur la ligne de commande.

Pour modifier les paramètres par défaut d’un fichier .msi, ou si celui-ci ne permet pas de lui passer les paramètres nécessaires, vous pouvez utiliser Orca, fourni avec le SDK de Microsoft pour modifier celui-ci.

La modification d’un msi peut être interdite ou soumise à condition par l’éditeur d’un produit.

Exemple : le déploiement d’Adobe Reader.

Pour packager une application à installer en fichier .msi, deux produits font référence :

  • Installshield : payant ;
  • Inno Setup : libre.

Vous pouvez retrouver un tutoriel sur Inno Setup ici : Inno Setup.

6-1. Exemples de déploiements simples

6-1-1. Test de déploiement de Firefox

Nous allons tester l’installation de Firefox sur Windows :

Pour cela, il faudra récupérer le fichier .msi de Firefox sur le site de Mozilla.

Pour une installation simple, il suffira de créer un snapin avec le .msi de Mozilla.

Par défaut, l’option /quiet permettant l’installation silencieuse est sélectionnée :

Image non disponible

J’ai décoché l’option « redémarrage après installation », inutile pour Firefox.

La commande générée sera :

 
Sélectionnez
msiexec.exe /i Firefox_Setup_89.0.2.msi /quiet

Cette commande sera visible dans la page de création du snapin, dans le champ « commande snapin ».

Une fois le snapin créé, il va falloir l’affecter à une machine ou à un groupe de machines. Pour cela, il faut sélectionner celui-ci depuis la liste :

Image non disponible

Le numéro 1 visible après le nom de la tâche correspond au numéro de snapin, numéro autoincrémenté à chaque création de snapin.

Une fois la tâche (le snapin) sélectionnée (en cliquant sur son nom), il faudra aller sur l’onglet membership :

Image non disponible

Il faudra cocher la case « check to see what hosts can be added » et affecter les machines souhaitées.

Dans l’exemple ci-dessous, la machine « win7 » a été intégrée :

Image non disponible

Il est également possible de le faire depuis l’écran d’un hôte dans l’onglet snapin :

Image non disponible

Pour affecter un snapin à un groupe, il faudra le faire depuis le groupe lui-même, dans l’onglet snapin :

Image non disponible

Restera à intégrer le ou les snapin au groupe (dans notre exemple Firefox) :

Image non disponible

Restera ensuite à créer la tâche de déploiement depuis l’onglet « basic task » du groupe (ou de la machine), dans la partie avancée :

Image non disponible

il faut ensuite sélectionner « all snapins » pour déployer plusieurs actions ou « single snapin » pour un seul dans la liste des options :

Image non disponible

Dans la tâche, il faudra sélectionner le ou les snapin et choisir si le déploiement doit se faire immédiatement ou si celui-ci doit être déclenché à un moment précis :

Image non disponible

Vous aurez ensuite confirmation de la création de la tâche :

Image non disponible

Vous pouvez voir l’état de la tâche en cliquant sur l’icône tâche en haut :

Image non disponible

En passant sur les icônes dans la colonne « status », vous aurez leur signification :

  • l’icône Image non disponible signifiant que la tâche est en file d’attente ;
  • l’icône Image non disponible signifiant que le traitement est en cours ;
  • l’icône Image non disponible indique qu’il s’agit d’un snapin.

En cas de choix d’installation immédiate, il y aura quand même un petit délai avant exécution de la tâche sur la machine cliente.

Au moment du déclenchement de l’installation, sur un client Windows, vous aurez une notification :

Image non disponible

Une nouvelle notification sera affichée une fois le snapin installé. Vous pouvez constater l’ajout d’une icône Firefox sur le bureau :

Image non disponible

Une fois le déploiement effectué, vous pourrez remarquer que l’icône Firefox n’a pas été créée dans la barre des tâches. En regardant la documentation de l’installation Firefox, vous pourrez constater qu’il existe une option à passer à l’installeur .exe pour obtenir une icône dans la barre des tâches. La documentation vous fournit également tout ce qu’il faut comme informations pour repackager votre propre .msi.

Dans l’interface Fog Project, vous pouvez voir la liste des snapins installés dans l’onglet « snapin history » :

Image non disponible

Si vous supprimez Firefox du poste client et redéclenchez une tâche d’installation, Firefox sera réinstallé. Le snapin apparaîtra une seconde fois dans l’historique.

Rappel : il sera impératif que l’installation soit silencieuse. Certains installeurs le permettent grâce à des paramètres de ligne de commande. Vous devrez rechercher pour chaque logiciel à installer les options pour un déploiement silencieux. En cas d’absence de celui-ci, vous ne pourrez pas le déployer sans utiliser des outils comme Msiexec pour les fichiers .msi ou sans repackager l’application pour que celle-ci soit silencieuse lors de l’installation.

6-1-2. Test de déploiement de VLC

Nous allons tester le déploiement de VLC.

Pour déployer VLC, nous utiliserons les paramètres /L=1036 et /S pour respectivement sélectionner le français et effectuer une installation silencieuse (paramètres disponibles sur le site officiel).

Nous sélectionnerons batch script et verrons qu’il utilisera cmd /c :

Image non disponible

Il faudra ensuite uploader l’installeur de VLC en cliquant sur « browse », puis indiquer les paramètres. Nous décocherons également le reboot après installation :

Image non disponible

Ce qui donnera dans le champ « snapin-command read only » la commande qui sera exécutée :

 
Sélectionnez
cmd.exe /c vlc-3.0.16-win32.exe /L=1036 /S

Exemples courants de déploiement ici.

Les fichiers inhérents aux snapins sont stockés par défaut dans /opt/snapins. Supprimer un snapin ne supprimera pas le fichier qu’il utilise, pensez donc à l’effacer si besoin.

6-2. Utilisation de snapin sous Linux

Pour Linux, l’installation d’un logiciel hors déploiement se fait en général par le gestionnaire de paquets de la distribution :

  • apt pour les bases Debian (Debian, Ubuntu, Mint) ;
  • yum pour les bases Redhat (Redhat, Fedora ;
  • yast pour SUSE ;
  • pacman pour Archlinux.

Le fonctionnement est similaire, quel que soit le gestionnaire de paquets.

Exemple pour l’installation de Firefox sur une Debian :

 
Sélectionnez
apt-get install firefox-esr -y

L’option -y servant à l’autoconfirmation

Firefox ESR est la version avec support à long terme (ESR=Extended Support Release)

sur base Redhat :

 
Sélectionnez
yum install firefox -y

6-2-1. Flatpak 

Flatpak est un système d’installation de logiciels avec double objectif :

  • un système de paquets utilisable sur n’importe quelle distribution Linux ;
  • du sandboxing d’application.

Ce système va embarquer toutes les dépendances nécessaires (comme les bibliothèques) avec l’avantage qu’un paquet flatpak ne pourra pas perturber un autre paquet et l’inconvénient que ces dépendances soient stockées à plusieurs reprises, si utilisées par plusieurs paquets flatpak.

Dans le cas d’utilisation de plusieurs paquets flatpak, pour pallier en partie ce problème, il existe des regroupements de bibliothèques pouvant être partagées entre plusieurs applications, regroupements nommés runtimes.

Il est possible de faire cohabiter plusieurs versions d’applications, chacune dans son propre paquet flatpak.

6-2-2. installation par script

Certaines applications s’installent par script. Elles sont en général fournies sous forme de .tar.gz, qui une fois décompressées, contiendront un fichier exécutable ou un script, en fait un script d’installation automatique (installant automatiquement les prérequis). Un Readme donne en général des indications.

6-2-3. Installation par compilation

Certains logiciels sont fournis sous forme de sources qu’il va falloir compiler. Cette opération se limitera en général à l’appel d’un script nommé configure, qui va paramétrer les directives de compilation pour votre système, suivi par la compilation proprement dite grâce à la commande make, puis l’installation des fichiers à leur emplacement définitif par make install qui copiera les fichiers nécessaires dans les dossiers adéquats du système. Pour un déploiement de ce type, il vaut mieux compiler le produit sur un poste de test, puis créer un script de déploiement des fichiers compilés nécessaires dans le système de destination. Un fichier readme donne également des explications en général.

Donc, pour installer un logiciel sous Linux vous devrez :

  • soit fournir le script d’installation automatique comme présenté ci-dessus ;
  • soit créer un script qui appellera la commande d’installation de paquets.

Si vous ne passez pas par le gestionnaire de paquets et devez lancer un script qui copie des fichiers, il faudra créer un snapin pack, que nous verrons au chapitre suivant, celui-ci devra contenir tous les fichiers à déployer ainsi que le script pour les copier dans les bons dossiers.

6-3. Snapin packs

Un snapin pack est un fichier .zip qui sera copié sur le poste client, décompressé, puis le fichier exécutable y étant contenu passé en argument : .exe, .msi, batch, selon le choix effectué, sera exécuté. Le fichier à exécuter pourra être dans un sous-dossier tant que son chemin relatif est indiqué dans le champ snapin pack file.

Il vous faudra donc préparer de fichier .zip avant le déploiement.

Le déploiement d’un snapin pack se fera de la même façon qu’un snapin standard, vous aurez juste à sectionner « Snapin Pack » dans le champ snapin type. Pour les autres champs, pas de changement.

Ceci permettra de fournir au client un ensemble de fichiers installés automatiquement et non plus un seul fichier.

Image non disponible

7. Capture d’image

Le prochain usage de Fog Project que nous allons étudier consistera à créer une image d’une machine, il s’agira d’une archive contenant la capture en l’état de la machine sélectionnée (machine éteinte, redémarrée en PXE).

Les images seront par défaut stockées dans /images/[nom de l'image]. Pour changer le chemin, il faudra aller dans fog configuration → fog settings → FOG Utils.

La première chose à faire sera de créer un conteneur nommé image dans la nomenclature Fog Project.

Pour cela, il faudra accéder à la partie « Image Management » :

Image non disponible

Entrer un nom pour l’image et la version de l’OS (si non détecté) suffira (au niveau des flèches bleues).

Il faudra ensuite aller sur l’hôte à capturer depuis la liste des hôtes :

Image non disponible

Cliquez sur l’icône Image non disponible pour créer la tâche. Ceci déclenchera l’ouverture des paramètres de la machine, où il vous faudra sélectionner l’image (le conteneur) créée précédemment :

Image non disponible

Une fois l’image créée, le nom de celle-ci apparaîtra à côté de l’icône permettant de déclencher la capture :

Image non disponible

Lors d’une prochaine capture, vous aurez l’écran suivant. Il faudra relancer la procédure pour arriver sur l’écran de création de la tâche dans le cas où vous venez de créer l’image comme vu ci-dessus.

Image non disponible

Nous créons la tâche immédiatement, vous aurez un message comme quoi la tâche a été créée :

Image non disponible

vous pourrez ensuite gérer et suivre l’état depuis la liste des tâches :

Image non disponible

Au démarrage de la machine à sauvegarder, celle-ci démarre en réseau sur l’image disque Fog Project :

Image non disponible

ci-dessous, sauvegarde en cours avec partclone, utilisé par Fog Project :

Image non disponible

état de capture en cours depuis l’interface :

Image non disponible

La barre de progression indique l’état d’avancement de la capture.

Une fois la capture effectuée, vous pourrez voir les informations afférentes (comme la taille, la date de capture) depuis la liste des images :

Image non disponible

La prise d’image pourra vous servir de backup, mais qui ne sera pas incrémental. Utiliser une image en tant que backup n’est pas le but premier de Fog Project.

7-1. Personnalisation d’image

Dans le cadre de déploiements, le principe sera de préparer une machine avec toutes les applications et réglages communs, que l’on nommera « master » et qui sera anonymisée. Ce « master » servira à déployer la même image sur plusieurs machines.

7-1-1. Personnalisation Windows

Windows fournit un outil adapté à cela : sysprep.

Une fois la machine préparée à votre convenance (applications installées par exemple), il faudra lancer sysprep :

 
Sélectionnez
sysprep /generalize /oobe

Il ne faudra pas redémarrer sur le master, mais en PXE pour effectuer la capture de l’image.

L’outil sysprep peut également utiliser un fichier de réponse sous forme de XML, permettant la personnalisation de l’installation comme :

  • le nom de l’ordinateur ;
  • la clef d’installation Windows ;
  • la timezone ;
  • des commandes à lancer lors du premier boot ;

Commande pour appeler sysprep avec un fichier de réponse :

 
Sélectionnez
C:\Windows\system32\sysprep\sysprep.exe /generalize /oobe /unattend:c:\sysprep.xml

exemple de fichier de réponse  :

 
Sélectionnez
<unattend xmlns="urn:schemas-microsoft-com:unattend" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
 <settings pass="specialize">
  <component name="Microsoft-Windows-Shell-Setup" publicKeyToken="31bf3856ad364e35" 
     language="neutral" versionScope="nonSxS" processorArchitecture="x86">
   <ComputerName>JohnWayne</ComputerName>
   <ProductKey>AAAAA-AAAAA-AAAAA-AAAAA-AAAAA</ProductKey>
   <TimeZone>Central European Standard Time</TimeZone>
  </component>
 </settings>
 <settings pass="oobeSystem">
  <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" 
     language="neutral" versionScope="nonSxS" processorArchitecture="x86">
   <FirstLogonCommands>
    <SynchronousCommand wcm:action="add">
     <Order>1</Order>
     <CommandLine>C:\runonce.cmd</CommandLine>
     <Description>RunOnce Command</Description>
    </SynchronousCommand>
   </FirstLogonCommands>
  </component>
 </settings>
</unattend>

Source : wikipédia.

7-1-2. Personnalisation Linux

Les distributions Linux disposent également de système de personnalisation pour l’installation.

Pour les bases Debian :

L’installation d’une base Debian peut être automatisée grâce à un fichier preseed.cfg.

Ce fichier devra soit :

  • se trouver à la racine de l’initrd ;
  • être passé en paramètre au chargeur de démarrage, par exemple :
 
Sélectionnez
linux /install/vmlinuz file=/[path]/preseed/personalization.seed  —
initrd /install/initrd.gz

Exemple de fichier de configuration pour Ubuntu, qui est une base Debian :

https://help.ubuntu.com/lts/installation-guide/amd64/apbs04.html

Sur une installation existante, il vous faudrait donc créer le fichier de configuration, l’intégrer dans le gestionnaire de démarrage et enfin capturer l’image. La dernière opération du fichier de configuration devra consister à son autosuppression (retrait de l’option dans le gestionnaire de démarrage)

bases Redhat :

Le principe sera le même qu’avec preseed. L’utilitaire dédié avec les bases Redhat se nomme kickstart.

Le paramètre à passer au noyau sera :

 
Sélectionnez
ks=[chemin]/kickstart-file.cfg

documentation : https://access.redhat.com/documentation/fr-fr/red_hat_enterprise_linux/6/html/installation_guide/sn-automating-installation

https://access.redhat.com/documentation/fr-fr/red_hat_enterprise_linux/7/html/installation_guide/sect-kickstart-syntax

SUSE :

l’outil d’installation de paquets YAST (Yet Another Setup Tool) permet également de faire du « preseed ».

La sous-fonction AutoYaST permettra l’installation automatisée grâce à un fichier de paramètres en XML.

Autoyast inclut une interface graphique :

Documentation officielle pour installation automatisée SUSE

8. Restauration d’une image (déploiement)

Si vous souhaitez restaurer une image sur une machine existante, vous pouvez directement procéder à la restauration. Dans le cas d’une restauration sur une nouvelle machine, procédez à son inventaire comme vu au chapitre 4intégration d’un poste existant dans fogproject, puis affectez-y l’image concernée.

Image non disponible

Il faudra cliquer sur l’icône correspondant à votre choix de restauration (dans mon cas, j’ai sélectionné multicast).

Demande de confirmation :

Image non disponible

La restauration d’une image personnalisée pourra être déployée sur plusieurs machines, ce qui correspond à une opération de déploiement.

9. Installation d’un nœud de stockage (Storage node)

Un nœud de stockage permettra :

  • d’avoir un espace de stockage supplémentaire pour les images et les snapins par rapport au serveur principal ;
  • d’avoir une répartition de charge et une redondance.

L’installation se fera de la même façon qu’avec un serveur principal.

Il faudra répondre « S » (Storage Node) à la question concernant le type d’installation :

 
Sélectionnez
         2) Debian Based Linux (Debian, Ubuntu, Kubuntu, Edubuntu)
          3) Arch Linux

  Choice: [2]



  Starting Debian based Installation


  FOG Server installation modes:
      * Normal Server: (Choice N)
          This is the typical installation type and
          will install all FOG components for you on this
          machine.  Pick this option if you are unsure what to pick.

      * Storage Node: (Choice S)
          This install mode will only install the software required
          to make this server act as a node in a storage group

  More information:
     http://www.fogproject.org/wiki/index.php?title=InstallationModes

 What type of installation would you like to do? [N/s (Normal/Storage)] S

Il faudra ensuite répondre aux mêmes questions que pour une installation standard, puis aux questions spécifiques à l’installation d’un nœud de stockage :

 
Sélectionnez
What is the IP address or hostname of the FOG server running
  the fog database?  This is typically the server that also
  runs the web server, dhcp, and tftp.  IP or Hostname: 192.168.1.200

  What is the username to access the database?
  This information is storage in the management portal under
  'FOG Configuration' ->
  'FOG Settings' ->
  'FOG Storage Nodes' ->
  'FOG_STORAGENODE_MYSQLUSER'. Username [fogstorage]:

  What is the password to access the database?
  This information is storage in the management portal under
  'FOG Configuration' ->
  'FOG Settings' ->
  'FOG Storage Nodes' ->
  'FOG_STORAGENODE_MYSQLPASS'.  Password: fjvr4NsoEGE3m0&ibmYI

Les informations indispensables sont récupérables dans les réglages → FOG Storage Node :

Image non disponible

Récapitulatif avant validation de l’installation :

 
Sélectionnez
 * Here are the settings FOG will use:
 * Base Linux: Debian
 * Detected Linux Distribution: Debian GNU/Linux
 * Interface: enp0s3
 * Server IP Address: 192.168.1.201
 * Server Subnet Mask: 255.255.255.0
 * Server Hostname: fogstorage
 * Installation Type: Storage Node
 * Node IP Address: 192.168.1.201
 * MySQL Database Host: 192.168.1.200
 * MySQL Database User: fogstorage


 * Are you sure you wish to continue (Y/N) Y

Une fois la configuration terminée, vous aurez un récapitulatif d’éléments à conserver :

 
Sélectionnez
 * Setup complete


 * You still need to setup this node in the fog management
 | portal. You will need the username and password listed
 | below.

 * Management Server URL:
   http://192.168.1.200/fog/

   You will need this, write this down!
   IP Address:          192.168.1.201
   Interface:           enp0s3
   Management Username: fogproject
   Management Password: PtQ1K|vOrZLwPYMyDHrx

 * Changed configurations:

   The FOG installer changed configuration files and created the
   following backup files from your origional files:
   * /etc/vsftpd.conf <=> /etc/vsftpd.conf.1632503451
   * /etc/exports <=> /etc/exports.1632503451

Dans l’onglet « Storage Management », vous pouvez voir que le nom par défaut du nœud ajouté correspond à son adresse IP, vous pourrez changer ce nom après avoir cliqué sur celui-ci.

Image non disponible

Si vous essayez d’accéder à l’interface Web sur le nœud de stockage, vous aurez le message suivant :

 
Sélectionnez
This is a storage node, please do not access the web ui here!

Une fois le nœud de stockage configuré, nous l’ajoutons dans le groupe par défaut :

Image non disponible

Une fois le nœud intégré dans le groupe, les images présentes sur le premier serveur seront répliqués.

9-1. Répartition des images dans différents nœuds de stockage

Pour pouvoir stocker certaines images sur le serveur Fog principal et d’autres images sur un serveur de stockage annexe, il va falloir créer un groupe de stockage et y affecter le nouveau serveur de stockage. Jusqu’à présent, nous avions utilisé le groupe de stockage par défaut.

Pour créer un groupe de stockage, il faudra se rendre dans l’onglet stockage, puis sélectionner « Add storage group » :

Image non disponible

Vous pourrez ensuite affecter le nœud au nouveau groupe plutôt qu’au groupe par défaut. Vous aurez donc bien deux serveurs de stockage différents :

  • l’espace de stockage du serveur principal ;
  • l’espace de stockage du serveur de stockage.

Si vous ajoutez des serveurs supplémentaires, vous pourrez les affecter aux groupes existants et donc avoir la réplication des images comme dans le premier cas de figure, ou plus répartir les images sur plusieurs serveurs.

10. Maintenance

Pour pouvoir réinstaller votre serveur Fog Project en cas de problème, il va vous falloir :

  • sauvegarder le fichier de configuration présent dans /opt/fog/.fogsettings ;
  • sauvegarder la base MySQSL ;
  • sauvegarder les images dans /images ;
  • sauvegarder les snapins dans /opt/fog/snapins.

10-1. Sécurisation de la base par réplication MySQL

Nous partirons du postulat que le serveur de déploiement est secondé par un serveur de stockage.

Nous allons profiter de ce serveur de stockage pour y intégrer une redondance de la base de données. La copie de cette base ne sera pas utilisée en fonctionnement normal, il faudrait pour cela monter un cluster de base de données pour répartir la charge. Il s’agira ici d’une simple synchronisation au niveau base de données.

Nous commençons par créer un fichier de configuration /etc/mysql/conf.d/replication.cnf sur le serveur principal pour activer la réplication.

 
Sélectionnez
[mysqld]
bind-address = 0.0.0.0
server-id=1
log-bin=mysql-bin.log

La première ligne bind-address = 0.0.0.0 permet aux autres machines de communiquer avec MySQL/MariaDB. Par défaut un serveur MySQL/MariaDB ne communique que sur localhost (127.0.0.1).

La ligne server-id devra contenir une valeur différente sur chaque serveur

La dernière ligne log-bin permet d’activer les logs binaires appelés aussi journaux de transactions. Avec cette option, un journal de transactions est utilisé et va enregistrer tous les accès en écritures à la base (INSERT/UPDATE/DROP, etc.). En simplifiant, ceci permet de remettre la base dans un état précédent en utilisant lesdits journaux. La taille et la purge des journaux de transaction sont paramétrables. Ces journaux vont aussi être utilisés pour la réplication, le serveur esclave va récupérer les logs sur le serveur maître et rejouer les opérations nécessaires pour que le maître soit répliqué sur l’esclave.

La relation sera à sens unique, mais il est possible de faire de la synchronisation en créant une double relation maître-esclave. Dans ce cas de figure, il vaudra mieux monter un cluster de bases de données.

Une fois le fichier de configuration créé, il faudra redémarrer le service MySQL/MariaDB.

Pour que le serveur principal soit indisponible le moins longtemps possible, il faudra préparer à l’avance le serveur secondaire. Une fois celui-ci prêt, créez-y le même fichier de configuration que vu ci-dessus en remplaçant la valeur du server id (vous pouvez copier celui-ci avec rsync).

Dans le cadre de ce test, le serveur accueillant la réplication (l’esclave) possède l’adresse IP 192.168.1.201, le serveur principal possède l’adresse IP 192.168.1.200 (le maître).

Sur le serveur principal, la prochaine étape consistera à créer un utilisateur pour la réplication :

 
Sélectionnez
GRANT REPLICATION SLAVE ON *.* TO `sync`@`192.168.1.201` IDENTIFIED BY `motdepasse`;

Sur le serveur principal, nous exécutons ensuite la commande suivante dans la console MySQL :

 
Sélectionnez
MariaDB [(none)]> FLUSH TABLES WITH READ LOCK;

Cette commande va forcer l’écriture d’un éventuel cache non enregistré sur le disque et placer un verrou en lecture seule. Cette opération devra être faite avant de relever la position actuelle dans les logs de façon à pouvoir faire un export cohérent et avoir la position de référence dans les logs.

Nous relevons ensuite la position des logs :

 
Sélectionnez
MariaDB [(none)]> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |      617 |              |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

Nous avons relevé le nom du fichier log et la position actuelle, nous faisons un export depuis le shell :

 
Sélectionnez
mysqldump –all-databases -u root -p > export.sql

Avec -u pour le nom d’utilisateur, -p pour la demande de mot de passe.

Nous pouvons maintenant retourner dans la console MySQL/MariaDB et déverrouiller la base :

 
Sélectionnez
MariaDB [(none)]> UNLOCK TABLES;

Une fois le fichier d’export copié sur le serveur secondaire, nous l’importons :

 
Sélectionnez
mysql -u root -p < export.sql

Nous activons la réplication avec les étapes suivantes :

 
Sélectionnez
MariaDB [(none)]> STOP slave;
Query OK, 0 rows affected, 1 warning (0.00 sec)

Puis nous indiquons les paramètres pour la réplication, avec les éléments de position :

 
Sélectionnez
MariaDB [(none)]> CHANGE MASTER TO MASTER_HOST='192.168.1.200',
    -> MASTER_USER='sync',
    -> MASTER_PASSWORD='motdepasse',
    -> MASTER_LOG_FILE='mysql-bin.000001',
    -> MASTER_LOG_POS=617;
Query OK, 0 rows affected (0.10 sec)

Dans l'exemple ci-dessus, à la fin de la première ligne (après la virgule), un retour chariot a été fait, ceci afin de faciliter la lisibilité. Il aurait été possible d'écrire toute la requête sur la même ligne.

Et enfin :

 
Sélectionnez
MariaDB [(none)]> START slave;
Query OK, 0 rows affected (0.00 sec)

La réplication se déclenchera immédiatement. Vous pourrez voir l’état de la réplication avec la commande :

 
Sélectionnez
MariaDB [(none)]> show slave status \G

L’option \G permet un affichage plus lisible.

10-2. Perte d’un serveur de stockage

En cas de perte de serveur de stockage, il faudra supprimer ses références dans la base de données (suppression du nœud dans stockage → all storage node).

Une fois cette opération effectuée, il suffira de réinstaller le serveur de stockage, puis de l’intégrer dans Fog Project comme vu dans le chapitre 9Installation d’un nœud de stockage (Storage node).

Restera à remettre en service la réplicationSécurisation de la base par réplication MySQL si appliquée.

10-3. Perte du serveur principal

Nous supposerons que nous avons la base répliquée sur le serveur et une copie du fichier de configuration.

Nous réinstallons un serveur en lui affectant la même IP que celui d’origine.

Nous copions avec rsync le dossier Fog, le fichier de configuration (nous plaçons le fichier .fogsettings dans /fog/ opt) et un export de la base.

Nous commençons par importer la base dans MySQL/MariaDB :

 
Sélectionnez
mysql -u root -p < fichier_export.sql

Nous lançons ensuite l’installation, qui après confirmation réinstallera fog.

Il sera alors possible de se connecter à l’interface Web d’administration.

Par contre, il sera nécessaire de récupérer les images et les snapins depuis le serveur de stockage, la synchronisation de ceux-ci ne se fera pas automatiquement.

11. Autres tâches disponibles

Fog Project dispose de fonctionnalités annexes accessibles depuis l’hôte ou le groupe d’hôtes concernés → basic task → avancée :

Image non disponible

11-1. Redémarrage, arrêt, ou réveil de poste à distance

Pour accéder à cette fonctionnalité, il vous faudra aller sur l’hôte concerné dans l’interface de Fog Project. Une fois celui-ci sélectionné, la fonctionnalité d’arrêt ou de redémarrage sera accessible depuis l’onglet « Power management ».

Vous pourrez choisir l’action :

  • redémarrage ;
  • arrêt ;
  • wake-on-lan.
Image non disponible

Vous pourrez ensuite planifier ou lancer immédiatement l’opération :

Image non disponible

Sur les hôtes Windows, vous aurez une notification sur le poste client, avec possibilité de décaler celle-ci, ou de l’annuler :

Image non disponible

Sur un poste Linux, le redémarrage, une fois pris en compte par Fog Project, sera immédiat sans notification.

Le redémarrage ou arrêt est également applicable à un groupe.

L’option sera effective depuis un compte sans droits administrateur.

Il semblerait que l’option ne fonctionne pas en mode https.

11-2. Suppression de mot de passe

La suppression de mot de passe sera accessible depuis l’écran « basic task » de la machine concernée :

Image non disponible
Image non disponible

Il faudra alors saisir le nom du compte ou le mot de passe doit être réinitialisé :

Image non disponible

Si la machine est en route, cela déclenchera son redémarrage (avec la boite de dialogue permettant le report sous Windows)

tâche en cours :

Image non disponible

Le test de cette fonctionnalité n’a pas abouti. Un message d’erreur « enable to locate SAM file » s’affichant depuis le boot PXE (le fichier SAM est spécifique à Windows), que ce soit avec un client Windows ou un client Linux.

Le problème mentionné ci-dessus est contournable en créant un snapin réinitialisant le mot de passe par un script batch ou PowerShell, mais rendant du coup cette fonctionnalité inutile.

11-3. Test mémoire

Il est possible depuis Fog Project de déclencher un test mémoire. Celui-ci s’appuie sur l’utilitaire bien connu memtest86+.

L’option est accessible depuis « basic task » avancé, tout comme pour le changement de mot de passe :

Image non disponible

L’option est aussi déclenchable depuis le boot PXE.

memtest en cours d’exécution :

Image non disponible

En mode UEFI, memtest n’est pas exploitable, vous aurez un message d’erreur au boot. Il existe une version de memtest compatible UEFI, mais elle n’est pas implémentée dans Fog Project.

11-4. Test de surface

Le test de surface va permettre de faire un test physique du disque :

Image non disponible

11-5. Antivirus

Fog Project utilisait auparavant CLAMAV pour effectuer un scan antivirus sur les postes distants. Cette fonction est dépréciée, mais ni retiré de l’interface ou du démarrage PXE, ni du wiki officiel. Information obtenue depuis le forum de support.

11-6. Effacement à distance

Fog Project vous permettra d’effacer à distance un disque.

Pour ceci, il faudra sélectionner dans les tâches de l’hôte :

  • fast wipe ;
  • normal wipe ;
  • full wipe.

Une fois la procédure déclenchée et la machine redémarrée en PXE, vous aurez 60 secondes pour interrompre la procédure en arrêtant l’ordinateur :

Image non disponible

Ci-dessous l’effacement en cours :

Image non disponible

La commande utilisée pour l’effacement est shred. Celle-ci permet l’effacement sécurisé, le nombre de passes étant sélectionnable (différence entre un fast wipe, un normal wipe, ou un full wipe).

Cette fonctionnalité ne vous permettra pas de faire un effacement d’urgence forcé, la fonctionnalité étant annulable.

Cette opération peut être pratique en cas de nécessité d’effacement de masse, par exemple après remplacement d’un parc informatique.

11-7. Récupération de données

La fonction « recover » va vous permettre de lancer le bien connu utilitaire Photorec.

Photorec se lance avec sélection automatique du disque source. Il vous faudra sélectionner un dossier de destination, ce qui pourra vous poser des difficultés, celui-ci devant être monté avant destination.

11-8. Debug

La fonction Debug va vous permettre d’ouvrir un terminal sur le boot PXE :

Image non disponible

Vous aurez ensuite un prompt terminal.

Pour un client Linux :

Image non disponible

Pour un client Windows :

Image non disponible

Vous aurez ensuite accès à toutes les commandes disponibles dans l’image PXE.

Une fois ce que vous avez à faire terminé, il faudra supprimer la tâche Debug dans l’interface Web de Fog sous peine de redémarrer sur l’image PXE en mode Debug.

11-9. Gestion d’une file d’impression

Fog Project permet également de gérer des imprimantes partagées. Pour cela, il faudra créer la file d’attente et y renseigner les éléments suivant :

  • le type d’imprimante (imprimante TCP/IP, imprimante réseau, imprimante CUPS) ;
  • le nom de la file d’attente ;
  • le fichier .inf (pour Windows).
Image non disponible

Utiliser un logiciel de déploiement pour gérer des files d’attente semble peu utile. Si on fait du déploiement, c’est en général qu’on a une infrastructure avec serveurs, avec lesquels on va en général gérer ce type de services.

L’intérêt est surtout de faciliter le déploiement de ces files d’attente directement sur les clients de Fog Project. Rien n’empêche non plus de déployer des imprimantes avec des login scripts en environnement Active directory dans le cas d’un environnement Windows.

12. Conclusion

Fog Project va vous permettre de déployer vos systèmes et applications sur PC/Mac.

Les fonctionnalités annexes manquent de fiabilité, mais ne font pas partie de fonctions spécifiquement attendues pour du déploiement. Effectuer par exemple un test de surface disque ou un test mémoire depuis un logiciel de déploiement et donc potentiellement sans être devant la machine ne me paraît de toute façon que peu pertinent.

La traduction en français est à ce stade incomplète, mais comme il s’agit d’un projet Opensource, il suffit d’y participer pour améliorer celle-ci.

Ce produit va trouver son intérêt dans le cadre d’un parc hétérogène.

12-1. Remerciements

Je remercie les membres du forum de Fog Project pour leur réponse sur l’Antivirus.

Je remercie LittleWhite ainsi que djibril pour leur relecture technique et escartefigue pour la relecture orthographique.