Installation de Gloop-Manager

Présentation

Gloop-Manager fait partie de la solution gratuite Gloop.

Pour rappel, Gloop est une solution permettant de centraliser le déploiement, la mise à jour et la désinstallation de logiciels sur des postes de travail Windows 10 et 11. Elle s’appuie sur Chocolatey pour gérer le cycle de vie des logiciels à installer.

Gloop-Manager est une application Windows qui permet d’administrer le serveur Gloop. Il s’installe sur le poste de travail de l’administrateur.

Installation

Téléchargez la dernière version de l’exécutable depuis la page du projet, puis lancez l’installeur.

Il est déconseillé de modifier le dossier d’installation du logiciel. Si vous souhaitez tout de même changer le répertoire, vous devrez ajuster les droits NTFS sur le fichier .ini présent dans ce dossier, afin que l’utilisateur puisse disposer des droits d’écriture nécessaires.

Lors de l’installation, renseignez :

  • l’adresse du serveur Gloop,
  • le port (par défaut : 8000),
  • le token défini dans le paramètre ADMIN_TOKEN du fichier docker-compose.yml sur le serveur Gloop.

Cochez l’option TLS en fonction de la valeur de USE_TLS définie dans ce même fichier.

Une fois l’installation terminée, vous pouvez lancer Gloop-Manager et établir la connexion avec le serveur Gloop.

Si le bouton Connect reste grisé, cela signifie que le serveur n’est pas accessible.

Après connexion, renseignez l’adresse du proxy Chocolatey, comme expliqué dans cet article :

Comme le montre la vidéo, la station de travail sur laquelle Gloop-Client a été installé apparaît automatiquement dans l’arborescence, dès que la connexion au serveur est établie.

Création d’une liste de paquets à installer

Pour ajouter une liste de paquets Chocolatey à installer sur une station de travail, commencez par créer un dossier.

L’ajout de la liste des logiciels s’effectue au niveau du dossier : toutes les machines présentes sous ce dossier appliqueront la même configuration.

NB : Il est possible de créer des sous-dossiers, mais il n’existe pas de notion d’héritage. Chaque station hérite uniquement de la configuration de son dossier parent direct. Il n’est pas non plus possible de définir une liste de paquets à la racine de l’arborescence.

Les paquets sont ajoutés à partir de la bibliothèque standard de Chocolatey. Pour inclure vos propres paquets, vous devez configurer Nexus pour exposer un dépôt privé.

Lors de l’ajout, vous pouvez choisir une version spécifique du paquet. Si la version est définie sur latest, Gloop-Client mettra automatiquement à jour le paquet dès qu’une nouvelle version sera disponible.

Si un paquet est supprimé de la liste d’un dossier, les stations de travail associées à ce dossier le désinstalleront au prochain redémarrage.

Pour modifier ce comportement par défaut, allez dans PackagesEdit deletions et ajustez les règles de suppression pour ce dossier. Les stations possédant encore ce paquet ne le désinstalleront alors plus.

Une fois la liste créée et la station de travail placée dans le bon dossier, Gloop-Client procède à l’installation des logiciels au prochain redémarrage :

Mise à jour de paquets

Il est possible de mettre à jour les paquets dont la version n’est pas définie sur latest.

Rendez-vous dans PackagesCheck for update. Gloop-Manager recherchera les dernières versions disponibles pour les paquets référencés sur le site.

Vous pouvez ensuite mettre à jour les paquets concernés en cliquant sur le dossier et en cochant ceux à mettre à jour :

Pour mettre à jour tous les paquets gérés sans avoir à parcourir chaque dossier, utilisez la fonction :

PackagesUpdate all applications.

Les stations concernées procéderont à la mise à jour au prochain redémarrage.

Affichage des informations par poste

Lorsque vous cliquez sur une station de travail dans l’arborescence de Gloop-Manager, la partie droite de l’écran affiche trois onglets :

  • Premier onglet : présente l’inventaire matériel et système de la machine, réalisé par Gloop-Client.
    En effet, en plus des logiciels installés, Gloop permet d’avoir des informations matérielles sur la station de travail courante telles que le type de CPU, la quantité de RAM, le numéro de série de la machine, la version du BIOS, informations réseau …
  • Deuxième onglet : liste les logiciels installés sur le poste, avec leurs versions. Contrairement au troisième onglet, cette liste ne se limite pas aux paquets Chocolatey.
  • Troisième onglet : cet onglet affiche un reporting complet des paquets Chocolatey affectés à cette machine, ainsi que leur état actuel. A noter que le menu Reports permet d’effectuer des reportings plus complets sur l’intégralité d’un dossier en intégrant ou non l’ensemble des sous-dossiers.

Duplication de configuration

Il est possible de dupliquer la configuration d’un dossier vers un autre. Attention : la configuration existante du dossier de destination sera écrasée.

Après duplication, vous pouvez modifier indépendamment les paquets du dossier de destination (ajout ou suppression).

Ajout de règles

Plutôt que de déplacer manuellement les stations dans les dossiers, vous pouvez créer des règles basées sur le nom d’hôte (hostname) ou l’adresse IP de la machine cliente.

Les caractères jokers * et ? ne sont pas pris en charge. Cependant, si le premier champ de la règle est un astérisque (*), celle-ci s’appliquera à toutes les stations. Ainsi, en plaçant une règle * en tant que dernière règle de la liste, il est possible de déplacer toute machine n’ayant pas été traitée par une règle précédente dans un dossier spécifique.

Les règles sont évaluées dans l’ordre, et le traitement s’arrête dès qu’une règle correspond.

Gloop-Client actualise régulièrement ses informations auprès du serveur. Lors de la prochaine synchronisation, la règle sera appliquée et la machine sera automatiquement déplacée dans le dossier correspondant si nécessaire.

En utilisant ce système de règles, il est facile d’organiser automatiquement l’arborescence de Gloop. Il est ainsi possible de cloner une machine source contenant le client Gloop vers un ensemble de machines de destinations avec un outil de type FOG puis ensuite de déployer des logiciels spécifiques pré-affectés à des dossiers sans avoir à faire d’interventions manuelles pour ajouter et paramétrer ces machines de destination dans Gloop Manager.

Installation de Gloop-Client

Présentation

Gloop-Client fait partie de la solution freeware Gloop.
Pour rappel, Gloop est une solution permettant de centraliser le déploiement, la mise à jour et la désinstallation de logiciels sur des postes de travail Windows 10 et 11.
Gloop-Client est un agent à installer sur les postes de travail que l’on souhaite gérer via Gloop. Il se charge d’effectuer un inventaire matériel du poste ainsi que d’installer, de mettre à jour ou de supprimer les packages Chocolatey.

Installation

L’installation ne présente pas de difficulté particulière. Il suffit de télécharger la dernière version de l’exécutable sur la page du projet.

Gloop-Client doit pouvoir joindre le serveur Gloop sur le port défini (par défaut 8000/tcp).

Lors de l’installation, il suffit de renseigner l’adresse du serveur Gloop, son port ainsi que le token défini dans le paramètre CLIENT_TOKEN du fichier
docker-compose.yml présent sur le serveur Gloop. Cochez l’option TLS en fonction de la valeur de USE_TLS définie dans ce même fichier.

Une fois l’installation terminée, il est recommandé de redémarrer la machine pour activer le client Gloop.
Après le redémarrage, et à condition que le token renseigné soit correct, la machine contactera automatiquement le serveur Gloop dans un délai d’une à deux minutes pour s’y enregistrer.

Gloop-Client utilise un hostid généré à partir des informations matérielles de la machine pour s’enregistrer auprès du serveur.
La machine peut donc servir de modèle et être clonée par la suite sans intervention supplémentaire. Les machines clones s’enregistreront sur le serveur Gloop avec un hostid propre à chacune.
Attention cependant : toute modification matérielle sur une machine entraînera un changement de son hostid et donc un nouvel enregistrement sur le serveur.

Les modifications logicielles effectuées par Gloop-Client sont appliquées lors de l’extinction ou du redémarrage de la machine.

Ainsi, au prochain redémarrage, Gloop-Client vérifiera si Chocolatey est présent sur le système. S’il ne l’est pas, il sera automatiquement installé :

Mise à jour

Il est bien entendu possible de mettre à jour Gloop-Client à l’aide de la dernière version de l’installeur, mais la solution la plus simple pour mettre à jour l’ensemble des Gloop-Client installés sur les stations de travail consiste à mettre à jour la version de Gloop-Server.
Lorsqu’un client contactera un serveur Gloop à jour, il détectera qu’il est obsolète et se mettra automatiquement à jour lors de la prochaine extinction.

Installation de Gloop Server

Présentation

Gloop est une solution freeware permettant de centraliser le déploiement, la mise à jour et la désinstallation de logiciels sur des postes de travail Windows 10 et 11.
Gloop se base sur Chocolatey pour effectuer l’installation des logiciels sous forme de paquets.
La solution Gloop utilise 3 composants distincts :

  • Le Gloop Server, fonctionnant sous forme de conteneur Linux, qui est le cœur du système chargé de traiter les requêtes des postes de travail clients. Ce serveur nécessite d’accéder à une base MariaDB.
  • Gloop-Client, qui est à installer sur l’ensemble des postes de travail à gérer et qui se charge d’effectuer un inventaire et de gérer le cycle de vie des paquets.
  • Gloop-Manager, qui est le logiciel permettant d’administrer la solution et qui ne doit être installé que sur le poste de l’administrateur.

Bien que la solution puisse fonctionner uniquement avec ces trois composants, il est fortement recommandé d’utiliser un proxy/cache pour Chocolatey.
Ainsi, dans cet article, nous allons installer à la fois le Gloop Server et Nexus Sonatype Community Edition. Par commodité, tout sera installé sur le même serveur fonctionnant sous Rocky Linux 9.

Installation de Docker

Notre serveur est installé en configuration minimale sous Rocky 9. SELinux est désactivé.

dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
systemctl --now enable docker

Installation de Sonatype Nexus Community Edition

Nous allons d’abord créer le répertoire qui contiendra les fichiers qui nous seront nécessaires. Dans cet article, nous utiliserons Nginx en tant que proxy HTTP. Il est possible de l’utiliser en tant que proxy HTTPS mais, afin de ne pas ssurcharger l’article avec les différentes possibilité d’obtention des certificats, cela ne sera pas traité dans cet article.
Nous allons également ouvrir le port 80/tcp sur firewalld.

mkdir -p /docker/nexus
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload

Puis nous éditons le fichier /docker/nexus/docker-compose.yml :

services:
  nexus:
    image: sonatype/nexus3:latest
    container_name: nexus
    volumes:
      - nexus-data:/nexus-data
    networks:
      - nexus-net
    expose:
      - "8081"
    environment:
      - INSTALL4J_ADD_VM_PARAMS=-Xms512m -Xmx2048m -XX:MaxDirectMemorySize=2g
    restart: unless-stopped

  nginx:
    image: nginx:alpine
    container_name: nginx-nexus
    depends_on:
      - nexus
    ports:
      - "80:80"
    volumes:
      - /docker/nexus/nginx.conf:/etc/nginx/nginx.conf:ro
    networks:
      - nexus-net
    restart: unless-stopped

volumes:
  nexus-data:

networks:
  nexus-net:
    driver: bridge

Nous éditons ensuite le fichier /docker/nexus/nginx.conf :

events {}

http {
    server {
        listen 80;

        server_name nexus.local;

        location / {
            proxy_pass http://nexus:8081;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
}

Nous pouvons ensuite lancer le conteneur :

cd /docker/nexus
docker compose up -d

Puis prendre connaissance du mot de passe par défaut de Nexus à l’aide de la commande :

docker exec -it nexus cat /nexus-data/admin.password

Nexus peut être accédé à l’adresse http://IP_DE_VOTRE_SERVEUR.
Connectez-vous avec le login admin et le mot de passe retourné par la commande précédente.
À la première connexion, Nexus vous affichera un assistant vous demandant de changer le mot de passe et d’accepter la licence d’utilisation.
À la fin de l’assistant, il vous faudra autoriser l’accès anonyme au serveur.

Configuration de Nexus

Pour créer un proxy pour chocolatey sous Nexus, il suffit d’aller dans Settings->Repositories et de cliquer sur Create repository.
Selectionnez nuget(proxy).
Définissez un nom pour le proxy (ici gloop-proxy).
Choisisser ensuite le protocole NuGET V2 et indiquez https://community.chocolatey.org/api/v2/ dans Remote Storage :

Validez ensuite la création du repository.
Votre proxy sera disponible à l’adresse http://IP_DE_VOTRE_SERVEUR/repository/gloop-proxy/

Installation de Gloop-Server

Gloop Server est également disponible sous forme de conteneur.
Nous allons tout d’abord créer un répertoire pour y stocker la configuration et ouvrir le port 8000/tcp :

mkdir -p /docker/gloop/config  /docker/gloop/config/mariadb 
firewall-cmd --zone=public --add-port=8000/tcp --permanent
firewall-cmd --reload

Nous allons ensuite éditer le fichier /docker/gloop/docker-compose.yml :

services:
  mariadb:
    image: mariadb:lts
    container_name: mariadb
    environment:
      MYSQL_ROOT_PASSWORD: mot_de_passe_root
      MYSQL_DATABASE: gloop
      MYSQL_USER: gloopdb
      MYSQL_PASSWORD: mot_de_passe_gloopdb
    volumes:
      - /docker/gloop/mariadb:/var/lib/mysql
    networks:
      - gloopnet
    ports:
      - "3306:3306"

  gloop:
    image: clamy54/gloop:latest
    container_name: gloop
    ports:
      - "8000:8000"
    environment:
      MYSQL_SERVER: mariadb
      MYSQL_PORT: 3306
      MYSQL_USER: gloopdb
      MYSQL_PASSWORD: mot_de_passe_gloopdb
      MYSQL_DATABASE: gloop
      SITE_NAME: "Be-root"
      CLIENT_TOKEN: "un_token_pour_gloop-client"
      ADMIN_TOKEN: "un_token_pour_gloop-manager"
      USE_TLS: "yes"
      TZ: "Europe/Paris"
    volumes:
      - /docker/gloop/config:/gloop/config
    depends_on:
      - mariadb
    networks:
      - gloopnet

networks:
  gloopnet:

Le paramètre CLIENT_TOKEN est une clé d’accès unique qui sécurise l’accès à l’API Gloop pour les postes de travail exécutant gloop-client.
Choisissez un token unique, aléatoire et suffisamment long.

Le paramètre ADMIN_TOKEN est une clé d’accès unique qui sécurise l’accès à l’API Gloop pour le logiciel d’administration gloop-manager.
Définissez également un token unique, aléatoire et suffisamment long.

Pour une liste détaillée des options disponibles, vous pouvez vous rendre sur :
https://github.com/clamy54/gloop-server-docker.

Lancez le conteneur avec la commande :

cd /docker/gloop
docker compose up -d

Vous pouvez accéder aux logs de Gloop Server à l’aide de la commande :

docker container logs gloop

Dans un prochain article, nous étudierons l’installation de Gloop-Client ainsi que de Gloop-Manager.