Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- VERSION="0.9.12"
- SERVER=$(curl -s 'https://www.apache.org/dyn/closer.cgi?as_json=1' | jq --raw-output '.preferred|rtrimstr("/")')
- # Grab a password for MySQL Root
- read -s -p "Enter the password that will be used for MySQL Root: " mysqlrootpassword
- debconf-set-selections <<< "mysql-server mysql-server/root_password password $mysqlrootpassword"
- debconf-set-selections <<< "mysql-server mysql-server/root_password_again password $mysqlrootpassword"
- # Grab a password for Guacamole Database User Account
- read -s -p "Enter the password that will be used for the Guacamole database: " guacdbuserpassword
- # Install Features
- apt-get update
- apt-get -y install build-essential libcairo2-dev libjpeg-turbo8-dev libpng12-dev libossp-uuid-dev libavcodec-dev libavutil-dev \
- libswscale-dev libfreerdp-dev libpango1.0-dev libssh2-1-dev libtelnet-dev libvncserver-dev libpulse-dev libssl-dev \
- libvorbis-dev libwebp-dev mysql-server mysql-client mysql-common mysql-utilities tomcat9 freerdp ghostscript jq wget curl
- # If Apt-Get fails to run completely the rest of this isn't going to work...
- if [ $? != 0 ]
- then
- echo "apt-get failed to install all required dependencies. Are you on Ubuntu 16.04 LTS?"
- exit
- fi
- # Add GUACAMOLE_HOME to Tomcat9 ENV
- echo "" >> /etc/default/tomcat9
- echo "# GUACAMOLE EVN VARIABLE" >> /etc/default/tomcat9
- echo "GUACAMOLE_HOME=/etc/guacamole" >> /etc/default/tomcat9
- # Download Guacample Files
- wget ${SERVER}/incubator/guacamole/${VERSION}-incubating/source/guacamole-server-${VERSION}-incubating.tar.gz
- wget ${SERVER}/incubator/guacamole/${VERSION}-incubating/binary/guacamole-${VERSION}-incubating.war
- wget ${SERVER}/incubator/guacamole/${VERSION}-incubating/binary/guacamole-auth-jdbc-${VERSION}-incubating.tar.gz
- wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.41.tar.gz
- # Extract Guacamole Files
- tar -xzf guacamole-server-${VERSION}-incubating.tar.gz
- tar -xzf guacamole-auth-jdbc-${VERSION}-incubating.tar.gz
- tar -xzf mysql-connector-java-5.1.41.tar.gz
- # MAKE DIRECTORIES
- mkdir /etc/guacamole
- mkdir /etc/guacamole/lib
- mkdir /etc/guacamole/extensions
- # Install GUACD
- cd guacamole-server-${VERSION}-incubating
- ./configure --with-init-dir=/etc/init.d
- make
- make install
- ldconfig
- systemctl enable guacd
- cd ..
- # Move files to correct locations
- mv guacamole-${VERSION}-incubating.war /etc/guacamole/guacamole.war
- ln -s /etc/guacamole/guacamole.war /var/lib/tomcat9/webapps/
- ln -s /usr/local/lib/freerdp/* /usr/lib/x86_64-linux-gnu/freerdp/.
- cp mysql-connector-java-5.1.41/mysql-connector-java-5.1.41-bin.jar /etc/guacamole/lib/
- cp guacamole-auth-jdbc-${VERSION}-incubating/mysql/guacamole-auth-jdbc-mysql-${VERSION}-incubating.jar /etc/guacamole/extensions/
- # Configure guacamole.properties
- echo "mysql-hostname: localhost" >> /etc/guacamole/guacamole.properties
- echo "mysql-port: 3306" >> /etc/guacamole/guacamole.properties
- echo "mysql-database: guacamole_db" >> /etc/guacamole/guacamole.properties
- echo "mysql-username: guacamole_user" >> /etc/guacamole/guacamole.properties
- echo "mysql-password: $guacdbuserpassword" >> /etc/guacamole/guacamole.properties
- rm -rf /usr/share/tomcat9/.guacamole
- ln -s /etc/guacamole /usr/share/tomcat9/.guacamole
- # restart tomcat
- service tomcat9 restart
- # Create guacamole_db and grant guacamole_user permissions to it
- # SQL Code
- SQLCODE="
- create database guacamole_db;
- create user 'guacamole_user'@'localhost' identified by \"$guacdbuserpassword\";
- GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_db.* TO 'guacamole_user'@'localhost';
- flush privileges;"
- # Execute SQL Code
- echo $SQLCODE | mysql -u root -p$mysqlrootpassword
- # Add Guacamole Schema to newly created database
- cat guacamole-auth-jdbc-${VERSION}-incubating/mysql/schema/*.sql | mysql -u root -p$mysqlrootpassword guacamole_db
- # Cleanup
- rm -rf guacamole-*
- rm -rf mysql-connector-java-5.1.41*
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement