Versão avaliada: LXC Debian12 + Apache Guacamole 1.5.5 + Tomcat9
A versão Guacamole 1.5.5 ainda não esta preparada para funcionar com o Tomcat10.
LXC
8GB Disco
1024MB memória / 512MB swap
Instalar as dependências.
# apt install libcairo2-dev libjpeg62-turbo-dev libjpeg-dev libpng-dev libtool-bin uuid-dev libossp-uuid-dev libavcodec-dev libavformat-dev libavutil-dev libswscale-dev freerdp2-dev libpango1.0-dev libssh2-1-dev libtelnet-dev libvncserver-dev libwebsockets-dev libpulse-dev libssl-dev libvorbis-dev libwebp-dev build-essential libxslt1-dev libxml2-dev -y
Avaliar o funcionamento.
### libjpeg62-dev libpng12-dev não encontrou no repositório e foi usado libjpeg-dev libpng-dev
### libjpeg62-dev libpng12-dev
Opcional
# apt install uuid-dev -y
Download Guacamole Server
# cd /opt
# wget https://downloads.apache.org/guacamole/1.5.5/source/guacamole-server-1.5.5.tar.gz
# tar xzf guacamole-server-1.5.5.tar.gz
# cd guacamole-server-1.5.5
# ./configure --with-systemd-dir=/etc/systemd/system/ --disable-guacenc
Nota: --disable-guacenc, o guacenc é um utilitário usado para traduzir gravações de tela em vídeo, depende do FFmpeg.
Library: wsock32 falta dependência, descobrir qual pacote.
Compile and install Guacamole
# make && make install
# ldconfig <- Usado para criar links
Compile and install Guacamole
# useradd -M -d /var/lib/guacd/ -r -s /sbin/nologin -c "Guacd User" guacd
# mkdir /var/lib/guacd
# chown -R guacd: /var/lib/guacd
# sed -i 's/daemon/guacd/' /etc/systemd/system/guacd.service
Configurando o systemd
# systemctl daemon-reload
# systemctl enable --now guacd
# systemctl restart guacd.service
Para impedir o uso por IPv6, a entrada IPv6 no hosts precisa ser comentada.
# vi /etc/hosts
127.0.0.1 localhost
#::1 localhost ip6-localhost ip6-loopback <- Comente
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
# --- BEGIN PVE ---
192.168.10.150 hl150.local.domain hl150
# --- END PVE ---
Configurando o systemd
# systemctl restart guacd.service
Disponibilizar o repositorio do Debian11
# echo "deb http://deb.debian.org/debian/ bullseye main" > /etc/apt/sources.list.d/bullseye.list
# apt update
# apt install tomcat9 tomcat9-admin tomcat9-common tomcat9-user openjdk-17-jdk libssl-dev -y
# systemctl status tomcat9.service
# ufw allow 8080/tcp
Orientações depois da instalação.
Creating config file /etc/tomcat9/tomcat-users.xml with new version
Creating config file /etc/tomcat9/web.xml with new version
Creating config file /etc/tomcat9/server.xml with new version
Creating config file /etc/tomcat9/logging.properties with new version
Creating config file /etc/tomcat9/context.xml with new version
Creating config file /etc/tomcat9/catalina.properties with new version
Creating config file /etc/tomcat9/jaspic-providers.xml with new version
Creating config file /etc/logrotate.d/tomcat9 with new version
Criar o diretório de configuração do serviço Guacamole:
# mkdir -p /etc/guacamole/{extensions,lib}
Faça o download da versão 1.5.5 do cliente Guacamole.
# wget https://downloads.apache.org/guacamole/1.5.5/binary/guacamole-1.5.5.war -O /etc/guacamole/guacamole.war
Crie um link simbólico para o arquivo war.
# ln -s /etc/guacamole/guacamole.war /var/lib/tomcat9/webapps/
Configure o diretório HOME do Guacamole
echo "GUACAMOLE_HOME=/etc/guacamole" >> /etc/default/tomcat9
Criar um arquivo guacamole.properties em /etc/guacamole/ com suas configurações:
# echo "guacd-hostname: 127.0.0.1
guacd-port: 4822
user-mapping: /etc/guacamole/user-mapping.xml
auth-provider: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider" > /etc/guacamole/guacamole.properties
Criar um arquivo guacd.conf em /etc/guacamole/ com suas configurações:
# echo "[daemon]
#pid_file = /var/run/guacd.pid
log_level = debug
[server]
bind_host = 127.0.0.1
bind_port = 4822
[ssl]
#server_certificate = /etc/ssl/certs/guacd.crt
#server_key = /etc/ssl/private/guacd.key" > /etc/guacamole/guacd.conf
Crie link para as configurações do Guacamole.
# ln -s /etc/guacamole /usr/share/tomcat9/.guacamole
Reinicie os serviços.
# systemctl restart tomcat9.service guacd.service
O serviço esta pronto para ser acessado.
Utilizando o browser http://<IP_SERVER>:8080/guacamole
O próximo passo é disponibilizar um método de autenticação.
Após a finalização da compilação, o diretório usado pode ser removido.
Com o Tomcat10 o deploy do projeto não inicializa e apresenta como "FAIL - Application at context path [/guacamole] could not be started" quando iniciado de maneira forçada.