GNS3 web UI url: http://192.168.0.100:8080/guacamole/
GNS3 web UI login information is created by user at script startup.
Ubuntu username: vagrant
Ubuntu password: vagrant
- Download and install Vagrant from the official download page
- Download and install VirtualBox from the official download page
- Restart your PC
- Enable virtualization in BIOS
- Open your preferred terminal (cmd, Powershell, bash...) in the folder containing the Vagrantfile
- Run
vagrant initin the terminal - Run
vagrant upin the terminal - Enter your login information when prompted by the script
- Wait until the deployment finishes
- Connect to the web GUI
- When done, end the session with
vagrant destroy -f
- To obtain the latest Guacamole server version, it has to be downloaded from the GitHub instead of the official download page, as version 1.3.0 has errors when compiling.
- Some workarounds had to be made so the configs can be written to their correct locations (see the code)
- Xrdp had to be installed for Guacamole to work (not specified in the documentation)
- Password hashing had to be disabled as openssl likes to mangle the input when writing into the config file
- The VM is created
- Login information is acquired from the user
- A shell script is run that configures most other files
man-dbis renoved- remote repositories are set up
- GNS3 is installed
- Guacamole dependencies are installed
- Apache Tomcat is set up using the following config:
[Unit]
Description=Tomcat 9 servlet container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment=\"JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64\"
Environment=\"JAVA_OPTS=-Djava.security.egd=file:///dev/urandom -Djava.awt.headless=true\"
Environment=\"CATALINA_BASE=/opt/tomcat/tomcatapp\"
Environment=\"CATALINA_HOME=/opt/tomcat/tomcatapp\"
Environment=\"CATALINA_PID=/opt/tomcat/tomcatapp/temp/tomcat.pid\"
Environment=\"CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC\"
ExecStart=/opt/tomcat/tomcatapp/bin/startup.sh
ExecStop=/opt/tomcat/tomcatapp/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
- Guacamole is compiled and installed
- Guacamole login configuration is set up
<user-mapping>
<!-- Per-user authentication and config information -->
<!-- A user using md5 to hash the password
guacadmin user and its md5 hashed password below is used to
login to Guacamole Web UI-->
<authorize
username=\"$1\"
password=\"$2\">
<connection name=\"Windows Server 2019\">
<protocol>rdp</protocol>
<param name=\"hostname\">192.168.0.100</param>
<param name=\"port\">3389</param>
<param name=\"username\">vagrant</param>
<param name=\"ignore-cert\">true</param>
</connection>
</authorize>
</user-mapping>- Xrdp is installed
Authentication is required to create a color managed devicemessage is surpressed- Default Ubuntu desktop is installed
- VM is rebooted




