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.

One thought on “Installation de Gloop Server”

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.