Guacamole Server
Installs and configures Apache Guacamole.
OS Platforms
This role has been tested on the following operating systems:
- Debian 12 (server)
Role Variables
# The user that will own the install directory
default_user: "{{ ansible_user_id }}"
# DB container credentials
postgres_user: "guac_user"
postgres_password: "doubleguacplease"
# define nginx docker container version
nginx_version: "1.27.0"
# define postgres docker container version
postgres_version: "15.0"
# define guacamole containers version
guacamole_backend_version: "1.6.0"
guacamole_frontend_version: "1.6.0"
# Guacamole password for the guacadmin user
guac_password: "doubleguacplease"
Changes
- v1.0.3 - Fix port definition in docker compose file, update default container versions to 1.6.0
- v1.0.2 - Fix status code check (204 vs 200)
- v1.0.1 - Fix pip install compatibility with older OSs
- v1.0.0 - Initial release
Troubleshooting, Known Issues
- The guacamole server will serve through nginx in port 443 with a self-signed certificate.
Example Ludus Range Config
ludus:
- vm_name: "{{ range_id }}-guacamole-server"
hostname: "{{ range_id }}-guacamole-server"
template: debian-12-x64-server-template
vlan: 10
ip_last_octet: 50
ram_gb: 8
cpus: 4
linux: true
roles:
- ludus_guacamole_server
- ludus_guacamole_client
role_vars:
guac_password: guacpassword
- vm_name: "{{ range_id }}-guacamole-ssh-client"
hostname: "{{ range_id }}-guacamole-ssh-client"
template: debian-12-x64-server-template
vlan: 10
ip_last_octet: 51
ram_gb: 4
cpus: 2
linux: true
roles:
- ludus_guacamole_client
role_vars:
guac_password: guacpassword
- vm_name: "{{ range_id }}-guacamole-rdp-client"
hostname: "{{ range_id }}-guacamole-rdp-client"
template: win11-22h2-x64-enterprise-template
vlan: 10
ip_last_octet: 52
ram_gb: 4
cpus: 2
windows:
sysprep: false
roles:
- ludus_guacamole_client
role_vars:
guac_password: guacpassword