mirror of
https://github.com/MysticRyuujin/guac-install.git
synced 2023-10-10 13:36:56 +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:
parent
37e2481c7f
commit
d07bfcb98b
25
README.md
25
README.md
@ -1,11 +1,9 @@
|
|||||||
# guac-install
|
# guac-install
|
||||||
Script for installing Guacamole 0.9.13 on Ubuntu 16.04 with MySQL. Should also work on pure Debian. Probably works on 16.10?
|
Script for installing Guacamole 0.9.14 on Ubuntu 16.04 or newer with MySQL. It should also work on pure Debian >= 7 but I have not tested. Feel free to provide freeback!
|
||||||
|
|
||||||
Run script, enter MySQL Root Password and Guacamole User password. Guacamole User is used to connect to the Guacamole Database.
|
Run script, enter MySQL Root Password and Guacamole User password. Guacamole User is used to connect to the Guacamole Database.
|
||||||
|
|
||||||
The script attempts to install tomcat7, if that's not in apt-cache it will attempt to install tomcat6. If you want to manually specify a tomcat version there's a commented out line you can modify. Have at it.
|
The script attempts to install tomcat8 if the available version is 8.5.x or newer, if tomcat8 is only 8.0.x it will fall back to tomcat7. If you want to manually specify a tomcat version there's a commented out line you can modify at line #73. Have at it.
|
||||||
|
|
||||||
NOTE: It seems like a lot of people have issues with Tomcat8 for some reason so I removed it from the script. If you're using Tomcat8 and it's working yay, you can keep using it by forcing it via the commented out line.
|
|
||||||
|
|
||||||
How to Run:
|
How to Run:
|
||||||
|
|
||||||
@ -23,3 +21,22 @@ Run it as root:
|
|||||||
|
|
||||||
Once installation is done you can access guacamole by browsing to: http://<host_or_ip>:8080/guacamole/
|
Once installation is done you can access guacamole by browsing to: http://<host_or_ip>:8080/guacamole/
|
||||||
The default credentials are guacadmin as both username and password. Please change them or disable guacadmin after install!
|
The default credentials are guacadmin as both username and password. Please change them or disable guacadmin after install!
|
||||||
|
|
||||||
|
# guac-upgrade
|
||||||
|
Script for upgrading currently installed Guacamole instance (previously installed via this script/guide)
|
||||||
|
|
||||||
|
If looks for the tomcat folder in /etc/ (E.G. `/etc/tomcat7` or `/etc/tomcat8`) hopefully that works to identify the correct tomcat version/path :smile: I'm open to suggestions/pull requests for a cleaner method.
|
||||||
|
|
||||||
|
How to Run:
|
||||||
|
|
||||||
|
Download file directly from here:
|
||||||
|
|
||||||
|
<code>wget https://raw.githubusercontent.com/MysticRyuujin/guac-install/master/guac-upgrade.sh</code>
|
||||||
|
|
||||||
|
Make it executable:
|
||||||
|
|
||||||
|
<code>chmod +x guac-upgrade.sh</code>
|
||||||
|
|
||||||
|
Run it as root:
|
||||||
|
|
||||||
|
<code>./guac-upgrade.sh</code>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# WORKING ON UBUNTU 16.04 LTS
|
# WORKING ON UBUNTU 16.04 LTS
|
||||||
|
|
||||||
VERSION="0.9.13"
|
VERSION="0.9.14"
|
||||||
|
|
||||||
# Get MySQL root password and Guacamole User password
|
# Get MySQL root password and Guacamole User password
|
||||||
echo
|
echo
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
VERSION="0.9.13"
|
VERSION="0.9.14"
|
||||||
|
|
||||||
# Ubuntu and Debian have different names of the libjpeg-turbo library for some reason...
|
# Ubuntu and Debian have different names of the libjpeg-turbo library for some reason...
|
||||||
source /etc/lsb-release
|
source /etc/lsb-release
|
||||||
|
@ -1,22 +1,12 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Version numbers of Guacamole and MySQL Connector/J to download
|
# Version numbers of Guacamole and MySQL Connector/J to download
|
||||||
VERSION="0.9.13"
|
VERSION="0.9.14"
|
||||||
MCJVERSION="5.1.44"
|
MCJVERSION="5.1.45"
|
||||||
|
|
||||||
# Update apt so we can search apt-cache for newest tomcat version supported
|
# Update apt so we can search apt-cache for newest tomcat version supported
|
||||||
apt update
|
apt update
|
||||||
|
|
||||||
# tomcat8 seems to be broken, tomcat7 and tomcat6 should work
|
|
||||||
if [ $(apt-cache search "^tomcat7$" | wc -l) -gt 0 ]; then
|
|
||||||
TOMCAT="tomcat7"
|
|
||||||
else
|
|
||||||
TOMCAT="tomcat6"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# If you want to force a specific tomcat install and not go with the newest just set it here and uncomment:
|
|
||||||
#TOMCAT=""
|
|
||||||
|
|
||||||
# Get MySQL root password and Guacamole User password
|
# Get MySQL root password and Guacamole User password
|
||||||
echo
|
echo
|
||||||
while true
|
while true
|
||||||
@ -45,24 +35,43 @@ echo
|
|||||||
debconf-set-selections <<< "mysql-server mysql-server/root_password password $mysqlrootpassword"
|
debconf-set-selections <<< "mysql-server mysql-server/root_password password $mysqlrootpassword"
|
||||||
debconf-set-selections <<< "mysql-server mysql-server/root_password_again password $mysqlrootpassword"
|
debconf-set-selections <<< "mysql-server mysql-server/root_password_again password $mysqlrootpassword"
|
||||||
|
|
||||||
# Ubuntu and Debian have different names of the libjpeg-turbo library for some reason...
|
# Ubuntu and Debian have different package names for libjpeg
|
||||||
source /etc/lsb-release
|
# Ubuntu and Debian versions have differnet package names for libpng-dev
|
||||||
|
source /etc/os-release
|
||||||
if [ $DISTRIB_ID == "Ubuntu" ]
|
if [[ "${NAME}" == "Ubuntu" ]]
|
||||||
then
|
then
|
||||||
JPEGTURBO="libjpeg-turbo8-dev"
|
JPEGTURBO="libjpeg-turbo8-dev"
|
||||||
|
if [[ "${VERSION_ID}" == "16.04" ]]
|
||||||
|
then
|
||||||
|
LIBPNG="libpng12-dev"
|
||||||
else
|
else
|
||||||
JPEGTURBO="libjpeg62-turbo-dev"
|
LIBPNG="libpng-dev"
|
||||||
fi
|
fi
|
||||||
|
elif [[ "${NAME}" == *"Debian"* ]]
|
||||||
# Ubuntu 16.10 has a different name for libpng12-dev for some reason...
|
then
|
||||||
if [ $DISTRIB_RELEASE == "16.10" ]
|
JPEGTURBO="libjpeg62-turbo-dev"
|
||||||
|
if [[ "${PRETTY_NAME}" == *"stretch"* ]]
|
||||||
then
|
then
|
||||||
LIBPNG="libpng-dev"
|
LIBPNG="libpng-dev"
|
||||||
else
|
else
|
||||||
LIBPNG="libpng12-dev"
|
LIBPNG="libpng12-dev"
|
||||||
|
else
|
||||||
|
echo "Unsupported Distro - Ubuntu or Debian Only"
|
||||||
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Tomcat 8.0.x is End of Life, however Tomcat 7.x is not...
|
||||||
|
# If Tomcat 8.5.x or newer is available install it, otherwise install Tomcat 7
|
||||||
|
if [[ $(apt-cache show tomcat8 | egrep "Version: 8.[5-9]" | wc -l) -gt 0 ]]
|
||||||
|
then
|
||||||
|
TOMCAT="tomcat8"
|
||||||
|
else
|
||||||
|
TOMCAT="tomcat7"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Uncomment to manually force a tomcat version
|
||||||
|
#TOMCAT=""
|
||||||
|
|
||||||
# Install features
|
# Install features
|
||||||
apt -y install build-essential libcairo2-dev ${JPEGTURBO} ${LIBPNG} libossp-uuid-dev libavcodec-dev libavutil-dev \
|
apt -y install build-essential libcairo2-dev ${JPEGTURBO} ${LIBPNG} 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 \
|
libswscale-dev libfreerdp-dev libpango1.0-dev libssh2-1-dev libtelnet-dev libvncserver-dev libpulse-dev libssl-dev \
|
||||||
@ -74,49 +83,44 @@ if [ $? != 0 ]; then
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Add GUACAMOLE_HOME to $TOMCAT ENV
|
|
||||||
echo "" >> /etc/default/${TOMCAT}
|
|
||||||
echo "# GUACAMOLE ENV VARIABLE" >> /etc/default/${TOMCAT}
|
|
||||||
echo "GUACAMOLE_HOME=/etc/guacamole" >> /etc/default/${TOMCAT}
|
|
||||||
|
|
||||||
# Set SERVER to be the preferred download server from the Apache CDN
|
# 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}"
|
||||||
|
|
||||||
# Download Guacamole Server
|
# Download Guacamole Server
|
||||||
wget -O guacamole-server-${VERSION}-incubating.tar.gz ${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}-incubating.tar.gz ]; then
|
if [ ! -f ./guacamole-server-${VERSION}.tar.gz ]; then
|
||||||
echo "Failed to download guacamole-server-${VERSION}-incubating.tar.gz"
|
echo "Failed to download guacamole-server-${VERSION}.tar.gz"
|
||||||
echo "${SERVER}/source/guacamole-server-${VERSION}-incubating.tar.gz"
|
echo "${SERVER}/source/guacamole-server-${VERSION}.tar.gz"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Download Guacamole Client
|
# Download Guacamole Client
|
||||||
wget -O guacamole-${VERSION}-incubating.war ${SERVER}/binary/guacamole-${VERSION}-incubating.war
|
wget -O guacamole-${VERSION}.war ${SERVER}/binary/guacamole-${VERSION}.war
|
||||||
if [ ! -f ./guacamole-${VERSION}-incubating.war ]; then
|
if [ ! -f ./guacamole-${VERSION}.war ]; then
|
||||||
echo "Failed to download guacamole-${VERSION}-incubating.war"
|
echo "Failed to download guacamole-${VERSION}.war"
|
||||||
echo "${SERVER}/binary/guacamole-${VERSION}-incubating.war"
|
echo "${SERVER}/binary/guacamole-${VERSION}.war"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Download Guacamole authentication extensions
|
# Download Guacamole authentication extensions
|
||||||
wget -O guacamole-auth-jdbc-${VERSION}-incubating.tar.gz ${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}-incubating.tar.gz ]; then
|
if [ ! -f ./guacamole-auth-jdbc-${VERSION}.tar.gz ]; then
|
||||||
echo "Failed to download guacamole-auth-jdbc-${VERSION}-incubating.tar.gz"
|
echo "Failed to download guacamole-auth-jdbc-${VERSION}.tar.gz"
|
||||||
echo "${SERVER}/binary/guacamole-auth-jdbc-${VERSION}-incubating.tar.gz"
|
echo "${SERVER}/binary/guacamole-auth-jdbc-${VERSION}.tar.gz"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Download MySQL Connector-J
|
# Download 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
|
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
|
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"
|
echo "https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-${MCJVERSION}.tar.gz"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Extract Guacamole files
|
# Extract Guacamole files
|
||||||
tar -xzf guacamole-server-${VERSION}-incubating.tar.gz
|
tar -xzf guacamole-server-${VERSION}.tar.gz
|
||||||
tar -xzf guacamole-auth-jdbc-${VERSION}-incubating.tar.gz
|
tar -xzf guacamole-auth-jdbc-${VERSION}.tar.gz
|
||||||
tar -xzf mysql-connector-java-${MCJVERSION}.tar.gz
|
tar -xzf mysql-connector-java-${MCJVERSION}.tar.gz
|
||||||
|
|
||||||
# Make directories
|
# Make directories
|
||||||
@ -124,7 +128,7 @@ mkdir -p /etc/guacamole/lib
|
|||||||
mkdir -p /etc/guacamole/extensions
|
mkdir -p /etc/guacamole/extensions
|
||||||
|
|
||||||
# Install guacd
|
# Install guacd
|
||||||
cd guacamole-server-${VERSION}-incubating
|
cd guacamole-server-${VERSION}
|
||||||
./configure --with-init-dir=/etc/init.d
|
./configure --with-init-dir=/etc/init.d
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
@ -136,11 +140,11 @@ cd ..
|
|||||||
BUILD_FOLDER=$(dpkg-architecture -qDEB_BUILD_GNU_TYPE)
|
BUILD_FOLDER=$(dpkg-architecture -qDEB_BUILD_GNU_TYPE)
|
||||||
|
|
||||||
# Move files to correct locations
|
# Move files to correct locations
|
||||||
mv guacamole-${VERSION}-incubating.war /etc/guacamole/guacamole.war
|
mv guacamole-${VERSION}.war /etc/guacamole/guacamole.war
|
||||||
ln -s /etc/guacamole/guacamole.war /var/lib/${TOMCAT}/webapps/
|
ln -s /etc/guacamole/guacamole.war /var/lib/${TOMCAT}/webapps/
|
||||||
ln -s /usr/local/lib/freerdp/guac*.so /usr/lib/${BUILD_FOLDER}/freerdp/
|
ln -s /usr/local/lib/freerdp/guac*.so /usr/lib/${BUILD_FOLDER}/freerdp/
|
||||||
cp mysql-connector-java-${MCJVERSION}/mysql-connector-java-${MCJVERSION}-bin.jar /etc/guacamole/lib/
|
cp mysql-connector-java-${MCJVERSION}/mysql-connector-java-${MCJVERSION}-bin.jar /etc/guacamole/lib/
|
||||||
cp guacamole-auth-jdbc-${VERSION}-incubating/mysql/guacamole-auth-jdbc-mysql-${VERSION}-incubating.jar /etc/guacamole/extensions/
|
cp guacamole-auth-jdbc-${VERSION}/mysql/guacamole-auth-jdbc-mysql-${VERSION}.jar /etc/guacamole/extensions/
|
||||||
|
|
||||||
# Configure guacamole.properties
|
# Configure guacamole.properties
|
||||||
echo "mysql-hostname: localhost" >> /etc/guacamole/guacamole.properties
|
echo "mysql-hostname: localhost" >> /etc/guacamole/guacamole.properties
|
||||||
@ -148,8 +152,6 @@ echo "mysql-port: 3306" >> /etc/guacamole/guacamole.properties
|
|||||||
echo "mysql-database: guacamole_db" >> /etc/guacamole/guacamole.properties
|
echo "mysql-database: guacamole_db" >> /etc/guacamole/guacamole.properties
|
||||||
echo "mysql-username: guacamole_user" >> /etc/guacamole/guacamole.properties
|
echo "mysql-username: guacamole_user" >> /etc/guacamole/guacamole.properties
|
||||||
echo "mysql-password: $guacdbuserpassword" >> /etc/guacamole/guacamole.properties
|
echo "mysql-password: $guacdbuserpassword" >> /etc/guacamole/guacamole.properties
|
||||||
rm -rf /usr/share/${TOMCAT}/.guacamole
|
|
||||||
ln -s /etc/guacamole /usr/share/${TOMCAT}/.guacamole
|
|
||||||
|
|
||||||
# restart tomcat
|
# restart tomcat
|
||||||
service ${TOMCAT} restart
|
service ${TOMCAT} restart
|
||||||
@ -167,7 +169,7 @@ flush privileges;"
|
|||||||
echo $SQLCODE | mysql -u root -p$mysqlrootpassword
|
echo $SQLCODE | mysql -u root -p$mysqlrootpassword
|
||||||
|
|
||||||
# Add Guacamole schema to newly created database
|
# Add Guacamole schema to newly created database
|
||||||
cat guacamole-auth-jdbc-${VERSION}-incubating/mysql/schema/*.sql | mysql -u root -p$mysqlrootpassword guacamole_db
|
cat guacamole-auth-jdbc-${VERSION}/mysql/schema/*.sql | mysql -u root -p$mysqlrootpassword guacamole_db
|
||||||
|
|
||||||
# Cleanup
|
# Cleanup
|
||||||
rm -rf guacamole-*
|
rm -rf guacamole-*
|
||||||
|
@ -1,53 +1,68 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Version Numbers of Guacamole and MySQL Connector/J to download
|
# Get MySQL root password
|
||||||
VERSION="0.9.13"
|
echo
|
||||||
MCJVERSION="5.1.44"
|
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...
|
# Version Numbers of Guacamole and MySQL Connector/J to download
|
||||||
TOMCAT="tomcat7"
|
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
|
# 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
|
# Stop tomcat
|
||||||
service ${TOMCAT} stop
|
service ${TOMCAT} stop
|
||||||
|
|
||||||
# Download Guacamole server
|
# Download Guacamole server
|
||||||
wget -O guacamole-server-${VERSION}-incubating.tar.gz ${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}-incubating.tar.gz ]; then
|
if [ ! -f ./guacamole-server-${VERSION}.tar.gz ]; then
|
||||||
echo "Failed to download guacamole-server-${VERSION}-incubating.tar.gz"
|
echo "Failed to download guacamole-server-${VERSION}.tar.gz"
|
||||||
echo "${SERVER}/source/guacamole-server-${VERSION}-incubating.tar.gz"
|
echo "${SERVER}/source/guacamole-server-${VERSION}.tar.gz"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Download Guacamole client
|
# Download Guacamole client
|
||||||
wget -O guacamole-${VERSION}-incubating.war ${SERVER}/binary/guacamole-${VERSION}-incubating.war
|
wget -O guacamole-${VERSION}.war ${SERVER}/binary/guacamole-${VERSION}.war
|
||||||
if [ ! -f ./guacamole-${VERSION}-incubating.war ]; then
|
if [ ! -f ./guacamole-${VERSION}.war ]; then
|
||||||
echo "Failed to download guacamole-${VERSION}-incubating.war"
|
echo "Failed to download guacamole-${VERSION}.war"
|
||||||
echo "${SERVER}/binary/guacamole-${VERSION}-incubating.war"
|
echo "${SERVER}/binary/guacamole-${VERSION}.war"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Download SQL components
|
# Download SQL components
|
||||||
wget -O guacamole-auth-jdbc-${VERSION}-incubating.tar.gz ${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}-incubating.tar.gz ]; then
|
if [ ! -f ./guacamole-auth-jdbc-${VERSION}.tar.gz ]; then
|
||||||
echo "Failed to download guacamole-auth-jdbc-${VERSION}-incubating.tar.gz"
|
echo "Failed to download guacamole-auth-jdbc-${VERSION}.tar.gz"
|
||||||
echo "${SERVER}/binary/guacamole-auth-jdbc-${VERSION}-incubating.tar.gz"
|
echo "${SERVER}/binary/guacamole-auth-jdbc-${VERSION}.tar.gz"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Download the MySQL Connector/J
|
# 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
|
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
|
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"
|
echo "https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-${MCJVERSION}.tar.gz"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Upgrade Guacamole Server
|
# Upgrade Guacamole Server
|
||||||
tar -xzf guacamole-server-${VERSION}-incubating.tar.gz
|
tar -xzf guacamole-server-${VERSION}.tar.gz
|
||||||
cd guacamole-server-${VERSION}-incubating
|
cd guacamole-server-${VERSION}
|
||||||
./configure --with-init-dir=/etc/init.d
|
./configure --with-init-dir=/etc/init.d
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
@ -56,23 +71,31 @@ systemctl enable guacd
|
|||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
# Upgrade Guacamole Client
|
# Upgrade Guacamole Client
|
||||||
mv guacamole-${VERSION}-incubating.war /etc/guacamole/guacamole.war
|
mv guacamole-${VERSION}.war /etc/guacamole/guacamole.war
|
||||||
|
|
||||||
# Upgrade SQL Components
|
# Upgrade SQL Components
|
||||||
tar -xzf guacamole-auth-jdbc-${VERSION}-incubating.tar.gz
|
tar -xzf guacamole-auth-jdbc-${VERSION}.tar.gz
|
||||||
cp guacamole-auth-jdbc-${VERSION}-incubating/mysql/guacamole-auth-jdbc-mysql-${VERSION}-incubating.jar /etc/guacamole/extensions/
|
cp guacamole-auth-jdbc-${VERSION}/mysql/guacamole-auth-jdbc-mysql-${VERSION}.jar /etc/guacamole/extensions/
|
||||||
tar -xzf mysql-connector-java-${MCJVERSION}.tar.gz
|
tar -xzf mysql-connector-java-${MCJVERSION}.tar.gz
|
||||||
cp mysql-connector-java-${MCJVERSION}/mysql-connector-java-${MCJVERSION}-bin.jar /etc/guacamole/lib/
|
cp mysql-connector-java-${MCJVERSION}/mysql-connector-java-${MCJVERSION}-bin.jar /etc/guacamole/lib/
|
||||||
rm -rf mysql-connector-java-${MCJVERSION}*
|
rm -rf mysql-connector-java-${MCJVERSION}*
|
||||||
|
|
||||||
# Check if there is an schema upgrade file, if there is run it (will prompt for password)
|
# Get list of SQL Upgrade Files
|
||||||
if [ -f "guacamole-auth-jdbc-${VERSION}-incubating/mysql/schema/upgrade/upgrade-pre-${VERSION}.sql" ]
|
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
|
then
|
||||||
mysql -u root -p guacamole_db < guacamole-auth-jdbc-${VERSION}-incubating/mysql/schema/upgrade/upgrade-pre-${VERSION}.sql
|
mysql -u root guacamole_db < guacamole-auth-jdbc-${VERSION}/mysql/schema/upgrade/${FILE}
|
||||||
fi
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
# Start tomcat
|
# Start tomcat
|
||||||
service ${TOMCAT} start
|
service ${TOMCAT} start
|
||||||
|
|
||||||
# Cleanup
|
# Cleanup
|
||||||
rm -rf guacamole*
|
rm -rf guacamole*
|
||||||
|
unset MYSQL_PWD
|
||||||
|
Loading…
Reference in New Issue
Block a user