OPSI en tant que conteneur Docker
| Cette documentation a été traduite à l’aide de l’intelligence artificielle et peut contenir des erreurs ou des imprécisions. En cas de doute, consultez la version allemande ou anglaise. |
Depuis 2022, une image Docker est disponible pour mettre en place un serveur de configuration OPSI ou un serveur de dépôt OPSI. Cette solution utilise Docker Compose, un outil d’orchestration permettant de définir, d’interconnecter et d’exécuter plusieurs conteneurs sur un hôte Docker. Elle nécessite Docker Compose version 1.17.0 ou ultérieure et Docker Engine version 17.09.0 ou ultérieure.
| Dans cette configuration, la communication avec le dépôt OPSI utilise exclusivement le protocole WebDAV ; cette variante ne prend pas en charge Samba. |
Installation de Docker
Installez Docker ou Docker Desktop sur Linux, Windows ou macOS :
| Sous Linux, vous pouvez également utiliser directement Docker Engine. Il suffit d’installer les paquets correspondants pour votre distribution Linux. |
Pour vérifier que l’installation a réussi, exécutez la commande suivante dans le terminal :
docker run --rm hello-world
Par défaut, la commande docker nécessite les privilèges root ; l’utilisation de nos scripts auxiliaires nécessite donc également ces privilèges. Vous pouvez préfixer les commandes présentées dans ce chapitre par sudo ou ajouter un compte utilisateur au groupe docker. Pour plus d’informations, consultez le chapitre Linux post-installation steps for Docker Engine du manuel Docker.
|
Vous devriez obtenir une sortie semblable à celle-ci :
Hello from Docker!
This message shows that your installation appears to be working correctly.
[...]
Démarrage rapide
Un script auxiliaire facilite la mise en place et la gestion d’un environnement Docker OPSI.
| Les spécialistes de Docker peuvent se passer du script auxiliaire et consulter directement toutes les informations dans notre dépôt GitHub opsi-docker. |
Windows
Sous Windows, procédez comme suit :
-
Créez un dossier
opsi-server. -
Téléchargez le script opsi-server.ps1 et enregistrez-le dans le dossier
opsi-server. -
Ouvrez PowerShell avec les privilèges d’administrateur.
-
Exécutez la commande suivante dans la fenêtre du terminal :
PowerShell.exe -ExecutionPolicy Bypass -
Accédez au dossier
opsi-serverà l’aide de la commandecd. -
Exécutez le script en saisissant
.\opsi-server.ps1 start.
Linux et macOS
Sous Linux et macOS, procédez comme suit :
Pour la mise en place sous Linux, procédez comme suit :
-
Créez un dossier
opsi-server. -
Téléchargez le script opsi-server.sh et placez-le dans le dossier
opsi-server. -
Ouvrez un terminal avec les privilèges
root. -
Accédez au dossier
opsi-serverà l’aide decd. -
Rendez le script exécutable :
chmod +x opsi-server.sh -
Exécutez le script avec la commande
./opsi-server.sh start.
Cette procédure télécharge automatiquement les images Docker nécessaires et démarre les conteneurs.
-
Utilisez
.\opsi-server.ps1 statusou./opsi-server.sh statuspour vérifier l’état des conteneurs. -
Consultez les journaux des conteneurs avec
.\opsi-server.ps1 logsou./opsi-server.sh logs. -
Mettez les conteneurs à jour vers les dernières versions avec
.\opsi-server.ps1 upgradeou./opsi-server.sh upgrade.
Un fichier docker-compose.yml se trouve désormais dans le dossier opsi-server. Ouvrez ce fichier dans un éditeur de texte et recherchez la variable d’environnement OPSI_ADMIN_PASSWORD. Vous aurez besoin du mot de passe indiqué pour vous connecter au serveur OPSI en tant qu’utilisateur adminuser lors des étapes suivantes.
|
| Pour des raisons de sécurité, nous recommandons vivement de modifier ce mot de passe. |
Si vous modifiez le fichier docker-compose.yml, redémarrez les conteneurs pour appliquer les changements. Pour cela, saisissez .\opsi-server.ps1 recreate ou ./opsi-server.sh recreate.
Docker Compose
Le fichier de configuration docker-compose.yml définit les réseaux, les volumes et les quatre services suivants (section services) :
-
mysql: met en place le serveur de base de données MariaDB. -
redis: installe la base de données en mémoire Redis avec le module RedisTimeSeries. -
grafana: déploie une version actuelle de Grafana. -
opsi-server: installe les dernières versions des paquetsopsiconfd,opsipxeconfd,opsi-tftpd-hpaetopsi-utils.
Au début du fichier, plusieurs propriétés X (champs d’extension), telles que x-restart-policy, x-common-variables, etc., sont définies. Ces ancres YAML permettent de partager les paramètres entre les services.
Vous y trouverez également plusieurs variables d’environnement pour les conteneurs. Vous pouvez les modifier directement dans le fichier docker-compose.yml ou les définir dans le fichier fourni opsi-server.env, qui est lu au démarrage (comme défini dans le fichier docker-compose-env.yml). Le fichier fourni se trouve dans le dépôt GitHub opsi-docker. Le fichier .env centralise ainsi la configuration et vous évite de rechercher les variables dans docker-compose.yml. Vous pouvez ensuite démarrer la pile avec cette commande :
docker compose -f docker-compose-env.yml up
Pour renforcer la sécurité, il est essentiel de modifier tous les mots de passe dans le fichier docker-compose.yml : MYSQL_ROOT_PASSWORD, MYSQL_PASSWORD, REDIS_PASSWORD, GF_SECURITY_ADMIN_PASSWORD et OPSI_ADMIN_PASSWORD.
|
Par défaut, aucun mot de passe n’est défini pour l’utilisateur root. Vous pouvez en attribuer un avec OPSI_ROOT_PASSWORD :
OPSI_ROOT_PASSWORD: <password>
Si vous n’avez pas besoin du démarrage réseau TFTP (et donc de opsipxeconfd et opsi-tftp-hpa), vous pouvez le désactiver en définissant la variable OPSI_TFTPBOOT sur "false".
|
Les deux sections suivantes expliquent comment adapter le fichier de configuration docker-compose.yml pour configurer un serveur de configuration ou un serveur de dépôt.
Serveur de configuration OPSI
Après avoir adapté le nom d’hôte et le domaine dans la section opsi-server à votre configuration réseau, définissez la variable OPSI_HOST_ROLE sur configserver :
OPSI_HOST_ROLE: configserver
Sous Linux et macOS, vous pouvez démarrer tous les services avec la commande ./opsi-server.sh start. Sous Windows, utilisez .\opsi-server.ps1 start (consultez la section Les scripts auxiliaires pour plus de détails). Pour vérifier l’état des conteneurs, utilisez ./opsi-server.sh status (Linux, macOS) ou .\opsi-server.ps1 status. Pour consulter les fichiers journaux, utilisez ./opsi-server.sh logs ou .\opsi-server.ps1 logs.
Serveur de dépôt OPSI
Vous pouvez utiliser notre image Docker pour mettre en place un serveur de dépôt OPSI. Cela suppose qu’un serveur de configuration OPSI existe déjà et qu’il soit accessible sur le réseau. Vérifiez notamment que l’hôte Docker peut joindre le serveur de configuration sur le port 4447 via HTTPS (voir la section Protocoles et ports utilisés (en anglais)). Vous pouvez utiliser curl en ligne de commande à cette fin (Windows : invite de commandes ; Linux/macOS : terminal) :
curl --insecure https://<fqdn>:4447/public
Remplacez <fqdn> par le FQDN ou l’adresse IP du serveur de configuration OPSI ; le répertoire public est généralement accessible sans authentification sur ce serveur. Vous recevrez un fichier XML en réponse.
Créez également un nouveau dépôt sur le serveur de configuration. Le plus simple est d’utiliser l’onglet Depots de la page d’administration (en anglais). Saisissez le FQDN de l’hôte Docker et, si vous le souhaitez, une description, puis cliquez sur Create depot. Le nouveau dépôt devrait apparaître immédiatement dans la liste ; vous aurez besoin de sa clé d’hôte pour configurer le serveur de dépôt.
Sur l’hôte du serveur de dépôt, commencez avec les mêmes fichiers que pour le serveur de configuration OPSI.
Modifiez le fichier docker-compose.yml dans l’éditeur de texte de votre choix. Un serveur de dépôt n’a pas besoin des deux services mysql et grafana ; vous pouvez donc les mettre en commentaire ou les supprimer. Si vous choisissez d’exclure ces services, veillez également à supprimer mysql de l’attribut depends_on dans la section opsi-server.
Pour configurer le serveur en tant que serveur de dépôt, définissez la variable OPSI_HOST_ROLE sur depotserver :
OPSI_HOST_ROLE: depotserver
La mise en place d’un serveur de dépôt nécessite également deux variables supplémentaires : OPSI_SERVICE_ADDRESS (l’URL du service du serveur de configuration OPSI) et OPSI_HOST_KEY (la clé d’hôte du dépôt). Une fois ces variables définies, démarrez tous les services avec ./opsi-server.sh start (Linux, macOS) ou .\opsi-server.ps1 start (Windows).
| Vous trouverez la clé d’hôte du serveur de dépôt OPSI dans l’interface d’administration du serveur de configuration OPSI, dans l’onglet Depots. Cliquez sur les points pour afficher la clé. |
Les scripts auxiliaires
Nous fournissons deux scripts auxiliaires pour simplifier l’utilisation du conteneur Docker OPSI. Le script opsi-server.sh est destiné aux utilisateurs de Linux et de macOS. Pour l’utiliser, rendez-le d’abord exécutable :
chmod +x opsi-server.sh
Vous pouvez ensuite l’appeler en tant qu’utilisateur normal, sans paramètre ni option supplémentaire, pour afficher l’aide en ligne :
./opsi-server.sh
Usage: ./opsi-server.sh <command>
Commands:
edit Edit docker-compose.yml.
start Start all containers.
status Show running containers.
stop Stop all containers.
logs [service] Attach to container logs (all logs or supplied service).
shell [service] Exexute a shell in a running container (default service: opsi-server).
update Update and restart all containers.
open-volumes Open volumes directory in explorer.
inspect [service] Show detailed container informations (default service: opsi-server).
diff [service] Show container's filesystem changes (default service: opsi-server).
prune Delete all containers and unassociated volumes.
export-images Export images as archive.
import-images [archive] Import images from archive.
build [--no-cache] Build opsi-server image. Use --no-cache to build without cache.
publish Publish opsi-server image.
Le second script, opsi-server.ps1, est destiné aux utilisateurs de Windows et s’utilise avec Windows PowerShell. Il propose essentiellement les mêmes options et paramètres que le script pour Linux et macOS ; toutefois, les deux dernières commandes, build et publish, ne sont pas disponibles.
Le serveur OPSI est maintenant configuré et prêt pour les étapes suivantes.