mirror of
				https://git.koehlerweb.org/frodovdr/guac-install
				synced 2025-10-31 10:46:39 +01:00 
			
		
		
		
	decrease verbosity and increase readability (#44)
This change has the following: * Lowered verbosity for downloads (just progress bars) * Colored output for each step of build * build process output is redirected to log
This commit is contained in:
		
				
					committed by
					
						 Chase Wright
						Chase Wright
					
				
			
			
				
	
			
			
			
						parent
						
							068c61018c
						
					
				
				
					commit
					a43a3c8327
				
			
							
								
								
									
										120
									
								
								guac-install.sh
									
									
									
									
									
								
							
							
						
						
									
										120
									
								
								guac-install.sh
									
									
									
									
									
								
							| @@ -3,8 +3,19 @@ | |||||||
| # Version number of Guacamole to install | # Version number of Guacamole to install | ||||||
| GUACVERSION="0.9.14" | GUACVERSION="0.9.14" | ||||||
|  |  | ||||||
|  | # Colors to use for output | ||||||
|  | YELLOW='\033[1;33m' | ||||||
|  | BLUE='\033[0;34m' | ||||||
|  | RED='\033[0;31m' | ||||||
|  | GREEN='\033[0;32m' | ||||||
|  | NC='\033[0m' # No Color | ||||||
|  |  | ||||||
|  | LOG="/tmp/guacamole_${GUACVERSION}_build.log" | ||||||
|  | DB="guacamole_db" | ||||||
|  |  | ||||||
| # 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-get update |  | ||||||
|  | apt-get -qq update | ||||||
|  |  | ||||||
| # Get script arguments for non-interactive mode | # Get script arguments for non-interactive mode | ||||||
| while [ "$1" != "" ]; do | while [ "$1" != "" ]; do | ||||||
| @@ -91,46 +102,61 @@ fi | |||||||
|  |  | ||||||
| # Uncomment to manually force a tomcat version | # Uncomment to manually force a tomcat version | ||||||
| #TOMCAT="" | #TOMCAT="" | ||||||
|  | # remove | ||||||
|  |  | ||||||
|  | #apt-get -y remove ${TOMCAT} | ||||||
| # Install features | # Install features | ||||||
| apt-get -y install build-essential libcairo2-dev ${JPEGTURBO} ${LIBPNG} libossp-uuid-dev libavcodec-dev libavutil-dev \ |  | ||||||
|  | echo -e "${BLUE}Installing dependencies${NC}" | ||||||
|  |  | ||||||
|  | apt-get -qq -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 \ | ||||||
| libvorbis-dev libwebp-dev mysql-server mysql-client mysql-common mysql-utilities libmysql-java ${TOMCAT} freerdp-x11 \ | libvorbis-dev libwebp-dev mysql-server mysql-client mysql-common mysql-utilities libmysql-java ${TOMCAT} freerdp-x11 \ | ||||||
| ghostscript wget dpkg-dev | ghostscript wget dpkg-dev | ||||||
|  |   if [ $? -ne 0 ]; then | ||||||
|  |         echo -e "${RED}Failed${NC}" | ||||||
|  |         exit 1 | ||||||
|  |         else | ||||||
|  |         echo -e "${GREEN}OK${NC}" | ||||||
|  |     fi | ||||||
|  |  | ||||||
| # If apt fails to run completely the rest of this isn't going to work... | # If apt fails to run completely the rest of this isn't going to work... | ||||||
| if [ $? -ne 0 ]; then | if [ $? -ne 0 ]; then | ||||||
|     echo "apt-get failed to install all required dependencies" |     echo $-e {FAILED} "apt-get failed to install all required dependencies" | ||||||
|     exit |     exit | ||||||
| fi | fi | ||||||
|  |  | ||||||
| # 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/${GUACVERSION}" | SERVER="http://apache.org/dyn/closer.cgi?action=download&filename=guacamole/${GUACVERSION}" | ||||||
|  |  echo -e "${BLUE}Downloaded Files...${NC}" | ||||||
|  |  | ||||||
| # Download Guacamole Server | # Download Guacamole Server | ||||||
| wget -O guacamole-server-${GUACVERSION}.tar.gz ${SERVER}/source/guacamole-server-${GUACVERSION}.tar.gz | wget -q --show-progress -O guacamole-server-${GUACVERSION}.tar.gz ${SERVER}/source/guacamole-server-${GUACVERSION}.tar.gz | ||||||
| if [ $? -ne 0 ]; then | if [ $? -ne 0 ]; then | ||||||
|     echo "Failed to download guacamole-server-${GUACVERSION}.tar.gz" |     echo "${RED}Failed to download guacamole-server-${GUACVERSION}.tar.gz" | ||||||
|     echo "${SERVER}/source/guacamole-server-${GUACVERSION}.tar.gz" |     echo "${SERVER}/source/guacamole-server-${GUACVERSION}.tar.gz" | ||||||
|     exit |     exit | ||||||
| fi | fi | ||||||
|  |  | ||||||
| # Download Guacamole Client | # Download Guacamole Client | ||||||
| wget -O guacamole-${GUACVERSION}.war ${SERVER}/binary/guacamole-${GUACVERSION}.war | wget -q --show-progress -O guacamole-${GUACVERSION}.war ${SERVER}/binary/guacamole-${GUACVERSION}.war | ||||||
| if [ $? -ne 0 ]; then | if [ $? -ne 0 ]; then | ||||||
|     echo "Failed to download guacamole-${GUACVERSION}.war" |     echo "Failed to download guacamole-${GUACVERSION}.war" | ||||||
|     echo "${SERVER}/binary/guacamole-${GUACVERSION}.war" |     echo "${SERVER}/binary/guacamole-${GUACVERSION}.war" | ||||||
|     exit |     exit | ||||||
|  |     echo -e "${GREEN}Downloaded guacamole-${GUACVERSION}.war${COLOREND}" | ||||||
| fi | fi | ||||||
|  |  | ||||||
| # Download Guacamole authentication extensions | # Download Guacamole authentication extensions | ||||||
| wget -O guacamole-auth-jdbc-${GUACVERSION}.tar.gz ${SERVER}/binary/guacamole-auth-jdbc-${GUACVERSION}.tar.gz | wget -q --show-progress -O guacamole-auth-jdbc-${GUACVERSION}.tar.gz ${SERVER}/binary/guacamole-auth-jdbc-${GUACVERSION}.tar.gz | ||||||
| if [ $? -ne 0 ]; then | if [ $? -ne 0 ]; then | ||||||
|     echo "Failed to download guacamole-auth-jdbc-${GUACVERSION}.tar.gz" |     echo "Failed to download guacamole-auth-jdbc-${GUACVERSION}.tar.gz" | ||||||
|     echo "${SERVER}/binary/guacamole-auth-jdbc-${GUACVERSION}.tar.gz" |     echo "${SERVER}/binary/guacamole-auth-jdbc-${GUACVERSION}.tar.gz" | ||||||
|     exit |     exit | ||||||
| fi | fi | ||||||
|  |  | ||||||
|  | echo -e "${GREEN}Downloading complete.${NC}" | ||||||
|  |  | ||||||
| # Extract Guacamole files | # Extract Guacamole files | ||||||
| tar -xzf guacamole-server-${GUACVERSION}.tar.gz | tar -xzf guacamole-server-${GUACVERSION}.tar.gz | ||||||
| tar -xzf guacamole-auth-jdbc-${GUACVERSION}.tar.gz | tar -xzf guacamole-auth-jdbc-${GUACVERSION}.tar.gz | ||||||
| @@ -143,21 +169,46 @@ mkdir -p /etc/guacamole/extensions | |||||||
| cd guacamole-server-${GUACVERSION} | cd guacamole-server-${GUACVERSION} | ||||||
|  |  | ||||||
| # Hack for gcc7 | # Hack for gcc7 | ||||||
|  |  | ||||||
| if [[ $(gcc --version | head -n1 | grep -oP '\)\K.*' | awk '{print $1}' | grep "^7" | wc -l) -gt 0 ]] | if [[ $(gcc --version | head -n1 | grep -oP '\)\K.*' | awk '{print $1}' | grep "^7" | wc -l) -gt 0 ]] | ||||||
| then | then | ||||||
|     apt-get -y install gcc-6 |     echo -e "${BLUE}Building Guacamole with GCC6...${NC}" | ||||||
|     if [ $? -ne 0 ] |     apt-get -qq -y install gcc-6 | ||||||
|     then |     if [ $? -ne 0 ]; then | ||||||
|         echo "apt-get failed to install gcc-6" |         echo -e "${RED}apt-get failed to install gcc-6${NC}" | ||||||
|         exit |         exit 1 | ||||||
|     fi |  | ||||||
|     CC="gcc-6" ./configure --with-init-dir=/etc/init.d |  | ||||||
|     CC="gcc-6" make |  | ||||||
|     CC="gcc-6" make install |  | ||||||
|         else |         else | ||||||
|     ./configure --with-init-dir=/etc/init.d |         echo -e "${GREEN}GCC6 Installed${NC}" | ||||||
|     make |     fi | ||||||
|     make install |     CC="gcc-6" | ||||||
|  |  | ||||||
|  | else | ||||||
|  |     echo -e "${BLUE}Building Guacamole with GCC7...${NC}" | ||||||
|  |     CC="gcc-7" | ||||||
|  | fi | ||||||
|  |      echo -e "${BLUE}Configuring...${NC}" | ||||||
|  |      ./configure --with-init-dir=/etc/init.d  &>> ${LOG} | ||||||
|  |     if [ $? -ne 0 ]; then | ||||||
|  |         echo -e "${RED} Failed${NC}" | ||||||
|  |         exit 1 | ||||||
|  |         else | ||||||
|  |         echo -e "${GREEN} OK${NC}" | ||||||
|  |     fi | ||||||
|  |      echo -e "${BLUE}Running Make...${NC}" | ||||||
|  |     make &>> ${LOG} | ||||||
|  |     if [ $? -ne 0 ]; then | ||||||
|  |         echo -e "${RED} Failed${NC}" | ||||||
|  |         exit 1 | ||||||
|  |         else | ||||||
|  |         echo -e "${GREEN} OK${NC}" | ||||||
|  |     fi | ||||||
|  |      echo -e "${BLUE}Running Make Install...${NC}" | ||||||
|  |      make install &>> ${LOG} | ||||||
|  |      if [ $? -ne 0 ]; then | ||||||
|  |         echo -e "${RED} Failed${NC}" | ||||||
|  |         exit 1 | ||||||
|  |         else | ||||||
|  |         echo -e "${GREEN}OK${NC}" | ||||||
|     fi |     fi | ||||||
|      |      | ||||||
| ldconfig | ldconfig | ||||||
| @@ -177,18 +228,26 @@ cp guacamole-auth-jdbc-${GUACVERSION}/mysql/guacamole-auth-jdbc-mysql-${GUACVERS | |||||||
| # Configure guacamole.properties | # Configure guacamole.properties | ||||||
| echo "mysql-hostname: localhost" >> /etc/guacamole/guacamole.properties | echo "mysql-hostname: localhost" >> /etc/guacamole/guacamole.properties | ||||||
| echo "mysql-port: 3306" >> /etc/guacamole/guacamole.properties | echo "mysql-port: 3306" >> /etc/guacamole/guacamole.properties | ||||||
| echo "mysql-database: guacamole_db" >> /etc/guacamole/guacamole.properties | echo "mysql-database: ${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 | ||||||
|  |  | ||||||
| # restart tomcat | # restart tomcat | ||||||
|  | echo -e "Restarting tomcat..." | ||||||
|  |  | ||||||
| service ${TOMCAT} restart | service ${TOMCAT} restart | ||||||
|  | if [ $? -ne 0 ]; then | ||||||
|  |         echo -e "${RED}Failed${NC}" | ||||||
|  |         exit 1 | ||||||
|  |         else | ||||||
|  |         echo -e "${GREEN}OK${NC}" | ||||||
|  |     fi | ||||||
|  |  | ||||||
| # Create guacamole_db and grant guacamole_user permissions to it | # Create guacamole_db and grant guacamole_user permissions to it | ||||||
|  |  | ||||||
| # SQL code | # SQL code | ||||||
| SQLCODE=" | SQLCODE=" | ||||||
| create database guacamole_db; | create database ${DB}; | ||||||
| create user 'guacamole_user'@'localhost' identified by \"$guacdbuserpassword\"; | create user 'guacamole_user'@'localhost' identified by \"$guacdbuserpassword\"; | ||||||
| GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_db.* TO 'guacamole_user'@'localhost'; | GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_db.* TO 'guacamole_user'@'localhost'; | ||||||
| flush privileges;" | flush privileges;" | ||||||
| @@ -197,12 +256,29 @@ 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-${GUACVERSION}/mysql/schema/*.sql | mysql -u root -p$mysqlrootpassword guacamole_db | echo -e "Adding db tables..." | ||||||
|  |  | ||||||
|  | cat guacamole-auth-jdbc-${GUACVERSION}/mysql/schema/*.sql | mysql -u root -p$mysqlrootpassword ${DB} | ||||||
|  | if [ $? -ne 0 ]; then | ||||||
|  |         echo -e "${RED}Failed${NC}" | ||||||
|  |         exit 1 | ||||||
|  |         else | ||||||
|  |         echo -e "${GREEN}OK${NC}" | ||||||
|  |     fi | ||||||
|  |  | ||||||
| # Ensure guacd is started | # Ensure guacd is started | ||||||
| service guacd start | service guacd start | ||||||
|  |  | ||||||
| # Cleanup | # Cleanup | ||||||
|  | echo -e "Cleanup install files..." | ||||||
|  |  | ||||||
| rm -rf guacamole-* | rm -rf guacamole-* | ||||||
|  | if [ $? -ne 0 ]; then | ||||||
|  |         echo -e "${RED}Failed${NC}" | ||||||
|  |         exit 1 | ||||||
|  |         else | ||||||
|  |         echo -e "${GREEN}OK${NC}" | ||||||
|  |     fi | ||||||
|  |  | ||||||
| echo -e "Installation Complete\nhttp://localhost:8080/guacamole/\nDefault login guacadmin:guacadmin\nBe sure to change the password." | echo -e "Installation Complete\nhttp://localhost:8080/guacamole/\nDefault login guacadmin:guacadmin\nBe sure to change the password." | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user