Fix #113 - Fully automate command line (#117)

This commit is contained in:
Chase Wright 2020-03-05 07:56:11 -06:00 committed by GitHub
parent 4ce4410dec
commit 722f99c5e5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 60 additions and 45 deletions

View File

@ -1,45 +1,43 @@
# guac-install
Script for installing Guacamole 1.1.0 on Ubuntu 16.04 or newer (with MySQL, or remote MySQL). It should also work on pure [Debian](https://www.debian.org/), [Raspbian](https://www.raspberrypi.org/downloads/raspbian/) or [Kali Linux](https://www.kali.org/). I have tested this with Debian 10.3.0 (Buster). **If other versions don't work please open an issue.** It is likely due to a required library having a different name.
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 tomcat9 by default. It will fall back on tomcat8 **if the available version is 8.5.x or newer**, otherwise it will fall back to tomcat7. 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 `tomcat9` by default (it will fall back on `tomcat8` **if the available version is 8.5.x or newer**, otherwise it will fall back to `tomcat7`). If you want to manually specify a tomcat version there's a commented out line you can modify. Have at it.
If you're looking to also have NGINX / Let's Encrypt / HTTPS click [HERE](https://github.com/bigredthelogger/guacamole)
## MFA/2FA
By default the script will not install MFA support (QR code for Google/Microsoft Authenticator, Duo Mobile, etc. or Duo Push), if you do want MFA support you need to specify the `-t` or `--totp` or for Duo `-d` or `--duo` flags on the command line. Or modify the script variables `installTOTP=true` or `installDuo=true`. **Do not install both**
By default the script will not install MFA support (QR code for Google/Microsoft Authenticator, Duo Mobile, etc. or Duo Push), if you do want MFA support you can use the `-t` or `--totp` or for Duo `-d` or `--duo` flags on the command line. Or modify the script variables `installTOTP=true` or `installDuo=true`. **Do not install both**
## How to Run:
### Download file directly from here:
<code>wget https://git.io/fxZq5</code>
`wget https://git.io/fxZq5`
### Make it executable:
<code>chmod +x guac-install.sh</code>
`chmod +x guac-install.sh`
### Run it as root:
Interactive (asks for passwords):
<code>./guac-install.sh</code>
`./guac-install.sh`
Non-Interactive (values provided via cli):
<code>./guac-install.sh --mysqlpwd password --guacpwd password</code>
`./guac-install.sh --mysqlpwd password --guacpwd password --nomfa --installmysql`
OR
<code>./guac-install.sh -r password -gp password</code>
`./guac-install.sh -r password -gp password -o -i`
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
@ -51,43 +49,47 @@ If looks for the tomcat folder in /etc/ (E.G. `/etc/tomcat7` or `/etc/tomcat8`)
Install MySQL:
<code>-i or --installmysql</code>
`-i or --installmysql`
Do *NOT* install MySQL:
<code>-n or --nomysql</code>
`-n or --nomysql`
MySQL Host:
<code>-h or --mysqlhost</code>
`-h or --mysqlhost`
MySQL Port:
<code>-p or --mysqlport</code>
`-p or --mysqlport`
MySQL Root Password:
<code>-r or --mysqlpwd</code>
`-r or --mysqlpwd`
Guacamole Database:
<code>-db or --guacdb</code>
`-db or --guacdb`
Guacamole User:
<code>-gu or --guacuser</code>
`-gu or --guacuser`
Guacamole User Password:
<code>-gp or --guacpwd</code>
`-gp or --guacpwd`
No MFA (No TOTP + Duo):
`-o or --nomfa`
Install TOTP:
<code>-t or --totp</code>
`-t or --totp`
Install Duo:
<code>-d or --duo</code>
`-d or --duo`
NOTE: Only the switches for MySQL Host, MySQL Port and Guacamole Database are available in the upgrade script.
@ -100,18 +102,18 @@ NOTE: Only the switches for MySQL Host, MySQL Port and Guacamole Database are av
### Download file directly from here:
<code>wget https://raw.githubusercontent.com/MysticRyuujin/guac-install/master/guac-upgrade.sh</code>
`wget https://raw.githubusercontent.com/MysticRyuujin/guac-install/master/guac-upgrade.sh`
### Make it executable:
<code>chmod +x guac-upgrade.sh</code>
`chmod +x guac-upgrade.sh`
### Run it as root:
Interactive (asks for passwords):
<code>./guac-upgrade.sh</code>
`./guac-upgrade.sh`
Non-Interactive (MySQL root password provided via cli):
<code>./guac-upgrade.sh --mysqlpwd password</code>
`./guac-upgrade.sh --mysqlpwd password`

View File

@ -70,7 +70,7 @@ while [ "$1" != "" ]; do
;;
-gp | --guacpwd )
shift
guacpwd="$1"
guacPwd="$1"
;;
# MFA selection
@ -79,6 +79,11 @@ while [ "$1" != "" ]; do
;;
-d | --duo )
installDuo=true
;;
-o | --nomfa )
installTOTP=false
installDuo=false
;;
esac
shift
done
@ -154,28 +159,36 @@ if [ -z "$guacDb" ]; then
guacDb="guacamole_db"
fi
# Get MySQL "Root" and "Guacamole User" password
while true; do
echo
read -s -p "Enter ${mysqlHost}'s MySQL root password: " mysqlRootPwd
echo
read -s -p "Confirm ${mysqlHost}'s MySQL root password: " PROMPT2
echo
[ "$mysqlRootPwd" = "$PROMPT2" ] && break
echo "Passwords don't match. Please try again."
done
if [ -z "${mysqlRootPwd}" ]; then
# Get MySQL "Root" and "Guacamole User" password
while true; do
echo
read -s -p "Enter ${mysqlHost}'s MySQL root password: " mysqlRootPwd
echo
read -s -p "Confirm ${mysqlHost}'s MySQL root password: " PROMPT2
echo
[ "$mysqlRootPwd" = "$PROMPT2" ] && break
echo "Passwords don't match. Please try again."
done
else
echo -e "${BLUE}Read MySQL password from command line argument${NC}"
fi
echo
while true; do
echo -e "${BLUE}A new MySQL user will be created (${guacUser})${NC}"
read -s -p "Enter ${mysqlHost}'s MySQL guacamole user password: " guacPwd
echo
read -s -p "Confirm ${mysqlHost}'s MySQL guacamole user password: " PROMPT2
echo
[ "$guacPwd" = "$PROMPT2" ] && break
echo "Passwords don't match. Please try again."
echo
done
if [ -z "${guacPwd}" ]; then
while true; do
echo -e "${BLUE}A new MySQL user will be created (${guacUser})${NC}"
read -s -p "Enter ${mysqlHost}'s MySQL guacamole user password: " guacPwd
echo
read -s -p "Confirm ${mysqlHost}'s MySQL guacamole user password: " PROMPT2
echo
[ "$guacPwd" = "$PROMPT2" ] && break
echo "Passwords don't match. Please try again."
echo
done
else
echo -e "${BLUE}Read MySQL password from command line argument${NC}"
fi
echo
if [ "$installMySQL" = true ]; then