1
0
mirror of https://git.koehlerweb.org/frodovdr/guac-install synced 2025-07-03 16:33:33 +02:00

0.9.14 Release (#23)

* Support Upgrade From Older Versions

First I've added a MySQL Root Password Prompt, it will verify that the user is entering the correct password and will not continue until the MySQL Root Password is entered correctly.

Second, I'm just getting the tomcat version number from /etc/ folder name...This seems to work well enough (instead of making the user edit the script manually)...Maybe someone can come up with a better solution?

Third, I'm using the Version.js file to get the currently installed versions number. This allows for supporting multiple version number upgrades (E.G going from 0.8.2 to 0.9.14). The script will now loop through all of the SQL Upgrade files, and apply any that are newer than the OLDVERSION...

I.E. Going from 0.9.9 to 0.9.13 should automatically install `upgrade-pre-0.9.10.sql` & `upgrade-pre-0.9.11.sql` & `upgrade-pre-0.9.13.sql`

* Remove GUACAMOLE_HOME

According to the documentation this is now a default search path, so this isn't required anymore

* Version Control for Ubuntu and Debian

This might need more work but it should install the proper packages for both Ubuntu and Debian and account for Tomcat 8.0.x and 8.5.x differences...

http://tomcat.apache.org/whichversion.html

7.x does not say end of life... but 8.0.x does. The distro maintainers have different versions of Tomcat8 so we can check for 8.5.x or newer options and install, otherwise go the safer route and install Tomcat7

* Remove rm and ln of tomcat/.guacamole

According to the documentation this is not required (it may not have been required to begin with?)

* No Longer Incubating!
This commit is contained in:
Chase Wright
2018-01-20 08:23:04 -06:00
committed by GitHub
parent 37e2481c7f
commit d07bfcb98b
5 changed files with 125 additions and 83 deletions

View File

@ -1,53 +1,68 @@
#!/bin/bash
# Version Numbers of Guacamole and MySQL Connector/J to download
VERSION="0.9.13"
MCJVERSION="5.1.44"
# Get MySQL root password
echo
while true
do
read -s -p "Enter MySQL ROOT Password: " mysqlrootpassword
export MYSQL_PWD=${mysqlrootpassword}
echo
mysql -u root guacamole_db -e"quit" && break
echo
done
echo
# I'm assuming tomcat7, you can change it here...
TOMCAT="tomcat7"
# Version Numbers of Guacamole and MySQL Connector/J to download
VERSION="0.9.14"
MCJVERSION="5.1.45"
# Get Tomcat Version
TOMCAT=$(ls /etc/ | grep tomcat)
# Get Current Guacamole Version
OLDVERSION=$(grep -oP 'Guacamole.API_VERSION = "\K[0-9\.]+' /var/lib/${TOMCAT}/webapps/guacamole/guacamole-common-js/modules/Version.js)
# Set SERVER to be the preferred download server from the Apache CDN
SERVER="http://apache.org/dyn/closer.cgi?action=download&filename=guacamole/${VERSION}-incubating"
SERVER="http://apache.org/dyn/closer.cgi?action=download&filename=guacamole/${VERSION}"
# Stop tomcat
service ${TOMCAT} stop
# Download Guacamole server
wget -O guacamole-server-${VERSION}-incubating.tar.gz ${SERVER}/source/guacamole-server-${VERSION}-incubating.tar.gz
if [ ! -f ./guacamole-server-${VERSION}-incubating.tar.gz ]; then
echo "Failed to download guacamole-server-${VERSION}-incubating.tar.gz"
echo "${SERVER}/source/guacamole-server-${VERSION}-incubating.tar.gz"
wget -O guacamole-server-${VERSION}.tar.gz ${SERVER}/source/guacamole-server-${VERSION}.tar.gz
if [ ! -f ./guacamole-server-${VERSION}.tar.gz ]; then
echo "Failed to download guacamole-server-${VERSION}.tar.gz"
echo "${SERVER}/source/guacamole-server-${VERSION}.tar.gz"
exit
fi
# Download Guacamole client
wget -O guacamole-${VERSION}-incubating.war ${SERVER}/binary/guacamole-${VERSION}-incubating.war
if [ ! -f ./guacamole-${VERSION}-incubating.war ]; then
echo "Failed to download guacamole-${VERSION}-incubating.war"
echo "${SERVER}/binary/guacamole-${VERSION}-incubating.war"
wget -O guacamole-${VERSION}.war ${SERVER}/binary/guacamole-${VERSION}.war
if [ ! -f ./guacamole-${VERSION}.war ]; then
echo "Failed to download guacamole-${VERSION}.war"
echo "${SERVER}/binary/guacamole-${VERSION}.war"
exit
fi
# Download SQL components
wget -O guacamole-auth-jdbc-${VERSION}-incubating.tar.gz ${SERVER}/binary/guacamole-auth-jdbc-${VERSION}-incubating.tar.gz
if [ ! -f ./guacamole-auth-jdbc-${VERSION}-incubating.tar.gz ]; then
echo "Failed to download guacamole-auth-jdbc-${VERSION}-incubating.tar.gz"
echo "${SERVER}/binary/guacamole-auth-jdbc-${VERSION}-incubating.tar.gz"
wget -O guacamole-auth-jdbc-${VERSION}.tar.gz ${SERVER}/binary/guacamole-auth-jdbc-${VERSION}.tar.gz
if [ ! -f ./guacamole-auth-jdbc-${VERSION}.tar.gz ]; then
echo "Failed to download guacamole-auth-jdbc-${VERSION}.tar.gz"
echo "${SERVER}/binary/guacamole-auth-jdbc-${VERSION}.tar.gz"
exit
fi
# Download the MySQL Connector/J
wget -O mysql-connector-java-${MCJVERSION}.tar.gz https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-${MCJVERSION}.tar.gz
if [ ! -f ./mysql-connector-java-${MCJVERSION}.tar.gz ]; then
echo "Failed to download guacamole-server-${VERSION}-incubating.tar.gz"
echo "Failed to download mysql-connector-java-${MCJVERSION}.tar.gz"
echo "https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-${MCJVERSION}.tar.gz"
exit
fi
# Upgrade Guacamole Server
tar -xzf guacamole-server-${VERSION}-incubating.tar.gz
cd guacamole-server-${VERSION}-incubating
tar -xzf guacamole-server-${VERSION}.tar.gz
cd guacamole-server-${VERSION}
./configure --with-init-dir=/etc/init.d
make
make install
@ -56,23 +71,31 @@ systemctl enable guacd
cd ..
# Upgrade Guacamole Client
mv guacamole-${VERSION}-incubating.war /etc/guacamole/guacamole.war
mv guacamole-${VERSION}.war /etc/guacamole/guacamole.war
# Upgrade SQL Components
tar -xzf guacamole-auth-jdbc-${VERSION}-incubating.tar.gz
cp guacamole-auth-jdbc-${VERSION}-incubating/mysql/guacamole-auth-jdbc-mysql-${VERSION}-incubating.jar /etc/guacamole/extensions/
tar -xzf guacamole-auth-jdbc-${VERSION}.tar.gz
cp guacamole-auth-jdbc-${VERSION}/mysql/guacamole-auth-jdbc-mysql-${VERSION}.jar /etc/guacamole/extensions/
tar -xzf mysql-connector-java-${MCJVERSION}.tar.gz
cp mysql-connector-java-${MCJVERSION}/mysql-connector-java-${MCJVERSION}-bin.jar /etc/guacamole/lib/
rm -rf mysql-connector-java-${MCJVERSION}*
# Check if there is an schema upgrade file, if there is run it (will prompt for password)
if [ -f "guacamole-auth-jdbc-${VERSION}-incubating/mysql/schema/upgrade/upgrade-pre-${VERSION}.sql" ]
then
mysql -u root -p guacamole_db < guacamole-auth-jdbc-${VERSION}-incubating/mysql/schema/upgrade/upgrade-pre-${VERSION}.sql
fi
# Get list of SQL Upgrade Files
UPGRADEFILES=($(ls -1 guacamole-auth-jdbc-${VERSION}/mysql/schema/upgrade/ | sort -V))
# Compare SQL Upgrage Files against old version, apply upgrades as needed
for FILE in ${UPGRADEFILES[@]}
do
FILEVERSION=$(echo ${FILE} | grep -oP 'upgrade-pre-\K[0-9\.]+(?=\.)')
if [[ $(echo -e "${FILEVERSION}\n${OLDVERSION}" | sort -V | head -n1) == ${OLDVERSION} && ${FILEVERSION} != ${OLDVERSION} ]]
then
mysql -u root guacamole_db < guacamole-auth-jdbc-${VERSION}/mysql/schema/upgrade/${FILE}
fi
done
# Start tomcat
service ${TOMCAT} start
# Cleanup
rm -rf guacamole*
unset MYSQL_PWD