Install Guacamole on OpenShift v4
Jump to navigation
Jump to search
guacamole (multi container pod)
genpasswd() { local l=$1 [ "$l" == "" ] && l=16 tr -dc A-Za-z0-9_=., < /dev/urandom | head -c ${l} | xargs } oc new-project guacamole oc create serviceaccount anyuid oc adm policy add-scc-to-user anyuid -z anyuid MYSQL_PASSWORD=$(genpasswd) # create configuration db from template oc process -n openshift mariadb-persistent MYSQL_DATABASE=guacamole MYSQL_USER=guacamole MYSQL_PASSWORD=$MYSQL_PASSWORD VOLUME_CAPACITY=5Gi | oc create -f - # export db schema and import into database oc run guacamole --image=guacamole/guacamole --restart=Never --command -- /opt/guacamole/bin/initdb.sh --mysql oc logs guacamole > initdb.sql oc delete pod guacamole export MYSQLPOD=`oc get pod -o jsonpath='{.items[0].metadata.name}' | grep mariadb` oc rsh $MYSQLPOD /usr/bin/mysql -h 127.0.0.1 -P 3306 -u guacamole -p$MYSQL_PASSWORD guacamole < initdb.sql # deploy guacd and tomcat into same pod oc new-app guacamole/guacd+guacamole/guacamole --name=guacamole -e GUACAMOLE_HOME=/tmp -e GUACD_HOSTNAME=127.0.0.1 -e GUACD_PORT=4822 -e MYSQL_HOSTNAME=mariadb -e MYSQL_PORT=3306 -e MYSQL_DATABASE=guacamole -e MYSQL_USER=guacamole -e MYSQL_PASSWORD=$MYSQL_PASSWORD # attach service account to dc oc patch deployment/guacamole --patch '{"spec":{"template":{"spec":{"serviceAccountName": "anyuid"}}}}' oc patch deployment/guacamole-1 --patch '{"spec":{"template":{"spec":{"serviceAccountName": "anyuid"}}}}' # expose the service oc create route edge guacamole --service=guacamole --port=8080 --hostname=guacamole.bitbull.ch