Bài này mình không nói nhiều, đây là 1 file cài Guacamole tự động chỉ cần điền thông tin ip ipaddr, guacadb_name, guacadb_user, guaca_dbpasswd và version, sau đó bấm enter là xong. Script mình đã test thành công trên hệ điều hành Ubuntu, theo thời gian sẽ có nhiều thay đổi ví dụ như link phần mềm, các repo nên có thể sẽ không cài đặt được ở 1 thời gian nào đó. Nếu bạn không chạy được xin để lại comment để mình fix nhé.
#!/bin/bash
ipaddr=$1
guacadb_name='guacaDB'
guacadb_user='hoanghd'
guaca_dbpasswd='Hoanghd164'
version='1.4.0'
if [[ $sshport == '' ]];then sshport=22;fi
port_random(){
cmd="netstat -plnt | awk '{print \$4}' | cut -d':' -f2 | grep -Eo '[0-9]{1,4}'"
listen_port=$(ssh -p $sshport -o StrictHostKeychecking=no root@$ipaddr "$cmd")
port_random=$(shuf -i 1000-9999 -n 1)
while [[ $(echo $listen_port | grep -c $port_random) == 1 ]]
do
port_random=$(shuf -i 8080-9090 -n 1)
done
}
guacamole_install(){
port_random && guacadb_filename='/tmp/guacadb_config.sh'
cat > $guacadb_filename << OEF
#!/bin/bash
sudo mysql -u root -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '$guaca_dbpasswd';"
sudo mysql -u root -p'$guaca_dbpasswd' -e "CREATE DATABASE $guacadb_name;"
sudo mysql -u root -p'$guaca_dbpasswd' -e "CREATE USER $guacadb_user@'localhost' IDENTIFIED BY '$guaca_dbpasswd';"
sudo mysql -u root -p'$guaca_dbpasswd' -e "GRANT SELECT,INSERT,UPDATE,DELETE ON $guacadb_name.* TO '$guacadb_user'@'localhost';"
sudo mysql -u root -p'$guaca_dbpasswd' -e "FLUSH PRIVILEGES;"
OEF
guacamole_install="""
sudo apt update -y
sudo apt upgrade -y
# Packets install
sudo apt install build-essential libcairo2-dev libjpeg-turbo8-dev libpng-dev libtool-bin libossp-uuid-dev libvncserver-dev freerdp2-dev libssh2-1-dev libtelnet-dev libwebsockets-dev libpulse-dev libvorbis-dev libwebp-dev libssl-dev libpango1.0-dev libswscale-dev libavcodec-dev libavutil-dev libavformat-dev -y
# Download and unzip Guacamole server
wget https://downloads.apache.org/guacamole/$version/source/guacamole-server-$version.tar.gz
tar -xvf guacamole-server-1.*
cd guacamole-server-$version/
# Build config
sudo ./configure --with-init-dir=/etc/init.d --enable-allow-freerdp-snapshots
sudo make
sudo make install
sudo ldconfig
sudo systemctl daemon-reload
sudo systemctl start guacd
sudo systemctl enable guacd
sudo mkdir -p /etc/guacamole/{extensions,lib}
sudo apt install tomcat9 tomcat9-admin tomcat9-common tomcat9-user -y
wget https://downloads.apache.org/guacamole/$version/binary/guacamole-$version.war
sudo mv guacamole-$version.war /var/lib/tomcat9/webapps/guacamole.war
sudo systemctl restart tomcat9 guacd
sudo apt install mariadb-server -y && . $guacadb_filename
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.26.tar.gz
tar -xf mysql-connector-java-8.0.26.tar.gz
sudo cp mysql-connector-java-8.0.26/mysql-connector-java-8.0.26.jar /etc/guacamole/lib/
wget https://downloads.apache.org/guacamole/$version/binary/guacamole-auth-jdbc-$version.tar.gz
tar -xf guacamole-auth-jdbc-*
sudo mv guacamole-auth-jdbc-$version/mysql/guacamole-auth-jdbc-mysql-$version.jar /etc/guacamole/extensions/
cd guacamole-auth-jdbc-$version/mysql/schema/
cat *.sql | mysql -u root -p"$guaca_dbpasswd" "$guacadb_name"
cat > /etc/guacamole/guacamole.properties << OEF
mysql-hostname: 127.0.0.1
mysql-port: 3306
mysql-database: $guacadb_name
mysql-username: $guacadb_user
mysql-password: $guaca_dbpasswd
OEF
cp /var/lib/tomcat9/conf/server.xml /var/lib/tomcat9/conf/server.xml.bak
sed -i '69s|Connector port=.*|Connector port=\"$port_random\" protocol=\"HTTP/1.1\"|' /var/lib/tomcat9/conf/server.xml
sudo systemctl restart tomcat9 guacd mysql
echo -e 'Domain: http://$ipaddr:$port_random/guacamole with username and password: guacadmin'"""
if [[ $(ssh -p 22 -o StrictHostKeychecking=no root@$ipaddr 'guacd -v') == '' ]];then
scp -r -p -o StrictHostKeychecking=no $guacadb_filename root@$ipaddr:$guacadb_filename
ssh -p 22 -o StrictHostKeychecking=no root@$ipaddr "$guacamole_install"
fi
}
guacamole_install
Sáu khi script chạy xong, bạn sẽ nhận được 1 thông báo dạng như dưới.
Domain: http://192.168.13.232:4652/guacamole with username and password: guacadmin
Hãy sử dụng trình duyệt login theo thông tin và chiêm ngưỡng thành quả nhé.