Thursday, November 21, 2024

Cài đặt Guacamole tự động bằng bash script

-

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é.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories