No menu items!
No menu items!
More

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

    Bài viết gần đây

    spot_img

    Related Stories

    Leave A Reply

    Please enter your comment!
    Please enter your name here

    Đăng ký nhận thông tin bài viết qua email