Denis Machard

My technical gists

Infrastructure architect by profession but always consider himself as a developer and an open source enthusiast.
@github @mastodon @rss

Guide installation de guacamole en mode container

Guide d’installation de guacamole en mode container avec une base de donnée PostgreSQL.

Prérequis

Ce tutorial nécessite un environnement docker et de récupérer les images dockers suivantes:

sudo docker pull postgres:9.4
sudo docker pull guacamole/guacd
sudo docker pull guacamole/guacamole

Déploiment PostgreSQL

Démarrage container

Pour avoir des données persistantes, prévoir un répertoire sur le système hôte.

mkdir -p /home/guacamole/postgresql_data
cd /home/guacamole/postgresql_data
sudo docker container run --name postgres01 -e POSTGRES_PASSWORD=bonjour -d -p 5432:5432 -v $PWD/postgresql_data:/var/lib/postgresql/data  postgres

### Vérification des logs

```bash
sudo docker logs postgres01
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process
...
LOG:  database system is ready to accept connections

alter user

sudo docker exec -it postgres01 bash
root@c26e9831087a:/# su - postgres
postgres@c26e9831087a:~$  psql -d postgres -c "ALTER USER postgres WITH PASSWORD 'bonjour';"
ALTER ROLE

test de connexion

Enfin faire un test de connexion sur la bdd

sudo apt-get install -y postgresql-client
psql -h localhost -U postgres -d postgres
Password for user postgres: 
psql (13.4 (Ubuntu 13.4-0ubuntu0.21.04.1), server 14.0 (Debian 14.0-1.pgdg110+1))
WARNING: psql major version 13, server major version 14.
         Some psql features might not work.
Type "help" for help.

postgres=#

Déploiment Guacamole

Création base

psql -h localhost -U postgres -d postgres

CREATE USER guacamole_user SUPERUSER PASSWORD 'guac';
CREATE DATABASE guacamole_db ;
GRANT ALL PRIVILEGES ON DATABASE guacamole_db TO guacamole_user;

Test connexion

$ psql -h localhost -U guacamole_user -d guacamole_db
Password for user guacamole_user: 
psql (13.4 (Ubuntu 13.4-0ubuntu0.21.04.1), server 14.0 (Debian 14.0-1.pgdg110+1))
WARNING: psql major version 13, server major version 14.
         Some psql features might not work.
Type "help" for help.

guacamole_db=# exit

Création schéma

sudo docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --postgres > initdb.sql
cat initdb.sql | psql -h localhost -U guacamole_user -d guacamole_db -f -
Password for user guacamole_user: 
CREATE TYPE
....
INSERT 0 6
INSERT 0 3

Démarrage des containers

Lancement du serveur guacd

sudo docker run --name guacd01 -d guacamole/guacd

Vérification

$ sudo docker logs guacd01
guacd[7]: INFO:	Guacamole proxy daemon (guacd) version 1.3.0 started
guacd[7]: INFO:	Listening on host 0.0.0.0, port 4822

Lancement du client guacamole

sudo docker container run --name guacamole01 --link guacd01:guacd --link postgres01:postgres -e POSTGRES_DATABASE=guacamole_db -e POSTGRES_USER=guacamole_user -e POSTGRES_PASSWORD=guac -d -p 8080:8080 guacamole/guacamole

Vérification

$ sudo docker logs guacamole01
05-Nov-2021 19:38:11.788 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name:   Apache Tomcat/8.5.72
05-Nov-2021 19:38:11.796 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built:          Oct 1 2021 15:15:33 UTC
05-Nov-2021 19:38:11.797 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 8.5.72.0
...
at/webapps/guacamole.war] has finished in [6,039] ms
05-Nov-2021 19:38:18.231 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
05-Nov-2021 19:38:18.245 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 6168 ms

Vérification de l’écoute du programme

$ sudo netstat -anp | grep 8080
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      2275956/docker-prox 
tcp6       0      0 :::8080                 :::*                    LISTEN      2275964/docker-prox

Test de connexion

L’interface de guacamole est accessible avec l’adresse suivante: http://ip:8080/guacamole/

Le compte par défaut:

  • login=guacadmin
  • password=guacadmin
propulsed by hugo and hugo-theme-gists