Skip to content

Testing Procedure

Zer0CoolX edited this page Jul 1, 2020 · 5 revisions

This page will list the latest stable versions and combinations of software tested with the script. This is meant to give a baseline expectation for what should work. Its possible older versions or git/unstable versions of software may work but I cannot test every combination of old and new software. My goal is that the script works 100% with the latest versions of the required software like Guacamole MySQL Connector, libjpeg-turbo, Maven, RHEL/CentOS, etc.

Testing Procedure

I generally do my testing in 4 VM's, a RHEL and a CentOS based VM (both minimal installs) with and without a public domain. I will on occasion fire up a RHEL/CentOS VM installed as a "Server with GUI" to help more easily address issues, but generally this is not assumed. These VM's have access to the internet and I have root/sudo abilities on the machines. I snapshot the VM prior to downloading or running the script and revert to that snapshot should the script fail to re-test it (and the whole process) over again. I generally set the VM hardware to 2+ vCPU's, 2GB+ RAM, ~100GB (or less) HDD, and UEFI boot. These specs are for testing only, for specs to use in production check the Apache Guacamole documentation.

The steps I use are as follows:

  1. wget the guac-install.sh script from this Github repo. 1a. Optionally, download a custom extension in .jar format to theme the login page (Guacamole Customize Login Screen Extension) 1b. If testing LDAPS, make sure I have the LDAPS certificate (.cer) file copied locally to the Guacamole server.
  2. Set the guac-install.sh script to be executable.
  3. Execute the script
  4. Answer the designated prompts to accomplish the setup I want to test.
  5. When the script completes, I load the Guacamole web client via public domain if used or locally using IP address.
  6. If the login page loads, I attempt logins with all the selected authentication methods.

Default options I always select

  • I always use "/" as the URI.
  • I generally always use 4096bit key sizes. In rare cases I test with 2048bit.

Everything else I try in different combinations. Its possible I may overlook a combination of options.

Positive Results

If I am able to get to the site, the login page loads and login without error I presume that the script is working. This is of course not a perfect method, but even so it is a lengthy process to go through many times over. I generally do not setup a connection and test connecting to a client machine.

What this method does not uncover

  1. I do not test that various protocols within Guacamole itself work properly like RDP, SSH, VNC, etc.
  2. I do not test "special" configurations that would not be typical, like altering Guacamole or MySQL ports, applying additional certificates, manually altering config files, etc.
  3. I have not tried bare metal installations, as all the testing is done within VM's. I so far have only tested within ESXi and KVM.

Results

I test using the latest, stable release of given software. I will be listing OS name/version, Guacamole version, MySQL connector, libjpeg-turbo and Maven. The below should work, I would recommend using the latest, tested and stable software for production use.

  • RHEL: 7.8
  • CentOS: 7.8
  • Guac Ver: Stable 1.2.0
  • MySQL Connector: 8.0.20 (Last tested 5.x version: 5.1.47. I will no longer try these as 8.x has proven to work now)
  • Maven: 3.6.3

Help Test

I cannot possibly test every combination of features and choices. It would be a great help to have others test combinations of options and report issues back. The most helpful testing would be done on features I cannot test myself, like different combinations of extensions (when more than LDAP becomes available), various combinations of Nginx and SSL certificate (self-signed and/or Let's Encrypt) options, etc. I am not really interested in testing various software versions and/or older versions of software.