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”