
Dans ce tutoriel, je vais vous expliquer comment déployer Guacamole en conteneur avec Docker et docker-compose.
Dans mon premier tutoriel sur Guacamole, j’explique comment installer Guacamole directement sur Ubuntu et son utilisation en tant que bastion.
Comment vous allez pouvoir le voir, le déploiement de Guacamole en conteneur est très simple et rapide. La maintenance de l’application est aussi plus facile notamment pour les mises à jour, car les images des conteneurs contiennent déjà les différentes extensions et plugin.
Pour commencer, vous avez besoin d’un serveur Linux avec Docker et Docker Compose d’installés, vous trouverez un tutoriel qui explique pas à pas : Ubuntu 24.04 : Installation de Docker et Docker compose
Si vous lisez régulièrement mes tutoriels sur Docker et les conteneurs, vous avez maintenant que j’ai l’habitude de travailler dans le dossier /containers sur mes environnements Ubuntu.
Commencer par créer un dossier qui va conteneur les différents fichiers et dossier pour notre environnement Guacamole.
sudo mkdir guacamoleDans le dossier guacamole, créer le fichier docker-compose.yml.
sudo touch docker-compose.ymlMaintenant, ouvrez le fichier docker-compose.yml pour l’éditeur :
sudo nano docker-compose.ymlVoici le conteneu du fichier docker-compose.yml, adapter le à votre environnement et changer les mots de passe des comptes MYSQL.
version: '3.8'
services:
guacamole_db:
container_name: guacamole_db
hostname: guacamole_db
image: mariadb:10.11
restart: always
volumes:
- ./guacamole_db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=change-me-root-password
- MYSQL_DATABASE=guacamole_db
- MYSQL_USER=guacamole_user
- MYSQL_PASSWORD=change-me-user-password
expose:
- 3306
guacd:
container_name: guacd
hostname: guacd
image: guacamole/guacd:latest
restart: always
volumes:
- ./guacd_drive:/drive:rw
- ./guacd_record:/record:rw
expose:
- 4822
guacamole:
container_name: guacamole
hostname: guacamole
restart: always
image: guacamole/guacamole:latest
depends_on:
- guacamole_db
- guacd
ports:
- 8080:8080
links:
- guacd
environment:
- GUACD_HOSTNAME=guacd
- MYSQL_HOSTNAME=guacamole_db
- MYSQL_DATABASE=guacamole_db
- MYSQL_USER=guacamole_user
- MYSQL_PASSWORD=change-me-user-password
- REMOTE_IP_VALVE_ENABLED=trueVous pouvez aussi utiliser les fichiers du dépôt suivant : https://git.rdr-it.com/docker/guacamole. Une fois clone, éditer le fichier .env
Télécharger les images et démarrer les conteneurs :
sudo docker compose pull && sudo docker compose up -dIl faut maintenant initialiser la base de données MySQL.
Passer en root :
sudo suRécupérer le script d’initialisation de la base :
docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql
Injecter le fichier de la base de données :
docker exec -i guacamole_db mysql --user guacamole --password=change-me guacamole_db < initdb.sqlLa commande doit être adapter à votre configuration notamment les mots de passe.
Une fois les conteneurs démarrés, vous pouvez suivre le tutoriel Guacamole : gérer les accès à votre environnement informatique à la section Utilisation de Guacamole
L’utilisation de conteneur permet de gagner beaucoup de temps dans le déploiement de Guacamole mais aussi de gagner du temps pour les mises à jour.
Pour mettre à jour, il vous suffit d’utiliser ces lignes de commande :
sudo docker compose pull && sudo docker compose up -d