И, снова, вернусь ка я (Олло Александр aka ekzorchik
) к guacamole
, но прошлый опыт хоть и бы но был как бы выразится не совсем удачным.
Guacamole
— сервис для удаленное управления система (RDP,VNC,Telnet,SSH
) через браузер.
Да работало, но порой не совсем корректно, но работало.
Тут один подписчик «Hatun
» указал что заметку «Как выполнять SSH команды через Zabbix Server 4.4» , если мониторить хосты (рабочие станции) через zabbix
и на эти хосты установить например tightvnc
. Дополнительно поднять сервис guacamole (позволяет в браузере подключаться к рабочим станциям по vnc, ssh, rdp
вроде). Можно будет с генерировать конфиг для каждого хоста на подключение по vnc. Затем в карте zabbix на каждый объект хоста можно будет применить данный урл на просмотр или управление и тут же в браузере подключиться к пк.
Шаг №1:
Систему Ubuntu 18.04 Server
разворачиваю через сервис FOG Project
на тестовый полигон гипервизора Debian 10 + Proxmox 6
Шаг №2:
После подготавливаю систему к последующему использования путем скачивания скрипта настройки со своего Mercurial
сервиса и запуска его:
ekzorchik@srv-bionic:~$ hg clone --insecure https://ekzorchik@172.35.35.8/hg/dproject ekzorchik@srv-bionic:~$ sudo ./dproject/default
Шаг №3:
Устанавливаю базу данных, пользователя и пароль под сервис guacamole:
ekzorchik@srv-bionic:~$ sudo apt-get install mysql-server mysql-client -y ekzorchik@srv-bionic:~$ sudo mysqladmin -u root password 712mbddr@ ekzorchik@srv-bionic:~$ sudo mysql -u root -p712mbddr@ -e "create database db_guacamole character set utf8" ekzorchik@srv-bionic:~$ sudo mysql -u root -p712mbddr@ -e "create user 'us_guacamole'@'localhost' identified by '612mbddr@'" ekzorchik@srv-bionic:~$ sudo mysql -u root -p712mbddr@ -e "grant all on db_guacamole.* to 'us_guacamole'@'localhost';"
Шаг №4:
Установку можно производить, как скриптом с сайта установщика, но кто говорит что не может в одночасье испариться или автор внесет в него какие-либо изменения и Вы не сможете это поправить. Так что мой вариант разобрать все сами с самого основания до реализации.
ekzorchik@srv-bionic:~$ sudo apt-get install -y libjpeg-turbo8-dev build-essential libcairo2-dev libossp-uuid-dev libavcodec-dev libavutil-dev libswscale-dev libfreerdp-dev libpango1.0-dev libssh2-1-dev libtelnet-dev libvncserver-dev libpulse-dev libssl-dev libvorbis-dev libwebp-dev mysql-common mysql-utilities libmysql-java freerdp-x11 freerdp2-dev libwebsockets-dev tomcat8 gcc-6 -y ekzorchik@srv-bionic:~$ java --version openjdk 11.0.6 2020-01-14 OpenJDK Runtime Environment (build 11.0.6+10-post-Ubuntu-1ubuntu118.04.1) OpenJDK 64-Bit Server VM (build 11.0.6+10-post-Ubuntu-1ubuntu118.04.1, mixed mode, sharing)
Шаг №5:
Скачиваю самую последнюю версию пакета guacamole-server
на 29.02.2020
, распаковываю и устанавливаю:
ekzorchik@srv-bionic:~$ wget http://apache-mirror.rbc.ru/pub/apache/guacamole/1.1.0/source/guacamole-server-1.1.0.tar.gz ekzorchik@srv-bionic:~$ tar zxf guacamole-server-1.1.0.tar.gz ekzorchik@srv-bionic:~$ sudo mkdir -p /etc/guacamole/lib ekzorchik@srv-bionic:~$ sudo mkdir -p /etc/guacamole/extensions ekzorchik@srv-bionic:~$ cd guacamole-server-1.1.0/ ekzorchik@srv-bionic:~/guacamole-server-1.1.0$ ekzorchik@srv-bionic:~/guacamole-server-1.1.0$ sudo ./configure --with-init-dir=/etc/init.d/ ------------------------------------------------ guacamole-server version 1.1.0 ------------------------------------------------ Library status: freerdp2 ............ yes pango ............... yes libavcodec .......... yes libavutil ........... yes libssh2 ............. yes libssl .............. yes libswscale .......... yes libtelnet ........... yes libVNCServer ........ yes libvorbis ........... yes libpulse ............ yes libwebsockets ....... yes libwebp ............. yes wsock32 ............. no Protocol support: Kubernetes .... yes RDP ........... yes SSH ........... yes Telnet ........ yes VNC ........... yes Services / tools: guacd ...... yes guacenc .... yes guaclog .... yes FreeRDP plugins: /usr/lib/x86_64-linux-gnu/freerdp2 Init scripts: /etc/init.d/ Systemd units: no Type "make" to compile guacamole-server. ekzorchik@srv-bionic:~/guacamole-server-1.1.0$ ekzorchik@srv-bionic:~/guacamole-server-1.1.0$ sudo make -j$((`nproc`+1)) ekzorchik@srv-bionic:~/guacamole-server-1.1.0$ sudo make install ekzorchik@srv-bionic:~/guacamole-server-1.1.0$ sudo ldconfig ekzorchik@srv-bionic:~/guacamole-server-1.1.0$ sudo systemctl enable guacd ekzorchik@srv-bionic:~/guacamole-server-1.1.0$ sudo systemctl start guacd ekzorchik@srv-bionic:~/guacamole-server-1.1.0$ cd ~
Шаг №6:
Скачиваю самую последнюю версию пакета guacamole-client
(уже откомпилированную) на 29.02.2020
и устанавливаю:
ekzorchik@srv-bionic:~$ wget http://apache.mirror.iweb.ca/guacamole/1.1.0/binary/guacamole-1.1.0.war ekzorchik@srv-bionic:~$ sudo mv guacamole-1.1.0.war /etc/guacamole/guacamole.war ekzorchik@srv-bionic:~$ sudo ln -s /etc/guacamole/guacamole.war /var/lib/tomcat8/webapps/ ekzorchik@srv-bionic:~$ sudo systemctl restart tomcat8 ekzorchik@srv-bionic:~$ sudo systemctl restart guacd
Шаг №7:
Скачиваю коннектор связывающий guacamole + mysql:
ekzorchik@srv-bionic:~$ wget http://apache.mirror.iweb.ca/guacamole/1.1.0/binary/guacamole-auth-jdbc-1.1.0.tar.gz ekzorchik@srv-bionic:~$ tar zxf guacamole-auth-jdbc-1.1.0.tar.gz ekzorchik@srv-bionic:~$ sudo cp guacamole-auth-jdbc-1.1.0/mysql/guacamole-auth-jdbc-mysql-1.1.0.jar /etc/guacamole/extensions/
Шаг №8:
Настраиваю Guacamole:
ekzorchik@srv-bionic:~$ sudo bash -c "echo "GUACAMOLE_HOME=/etc/guacamole" >> /etc/default/tomcat8" ekzorchik@srv-bionic:~$ cat /etc/default/tomcat8 | grep -v "^$\|#" TOMCAT8_USER=tomcat8 TOMCAT8_GROUP=tomcat8 JAVA_OPTS="-Djava.awt.headless=true -XX:+UseConcMarkSweepGC" GUACAMOLE_HOME=/etc/guacamole ekzorchik@srv-bionic:~$ ekzorchik@srv-bionic:~$ sudo nano /etc/guacamole/guacamole.properties mysql-hostname: localhost mysql-port: 3306 mysql-database: db_guacamole mysql-username: us_guacamole mysql-password: 612mbddr@ ekzorchik@srv-bionic:~$ sudo systemctl restart tomcat8 ekzorchik@srv-bionic:~$ cat guacamole-auth-jdbc-1.1.0/mysql/schema/*.sql | sudo mysql -u root -p712mbddr@ db_guacamole mysql: [Warning] Using a password on the command line interface can be insecure. ekzorchik@srv-bionic:~$ sudo systemctl restart guacd
Шаг №9:
Открываю браузер и авторизуюсь с дефолтными логин и пароль заложенными в сервис по умолчанию:
ekzorchik@srv-bionic:~$ hostname -I 172.33.33.30
http://IP&DNS:8080/guacamole/ && http://172.33.33.30:8080/guacamole
Но увы получаю ошибку с текстом по центру страницы:
"An error has occurred and this action cannot be completed. If the problem persists, please notify your system administrator or check your system logs."
Анализирую почему не запускается
http://172.33.33.30:8080/
Смотрю логи tomcat8:
ekzorchik@srv-bionic:~$ sudo tail -f /var/log/tomcat8/catalina.out ### Error querying database. Cause: java.sql.SQLException: Error setting driver on UnpooledDataSource. Cause: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver ### The error may exist in org/apache/guacamole/auth/jdbc/user/UserMapper.xml ### The error may involve org.apache.guacamole.auth.jdbc.user.UserMapper.selectOne ### The error occurred while executing a query ### Cause: java.sql.SQLException: Error setting driver on UnpooledDataSource. Cause: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver ^C ekzorchik@srv-bionic:~$ ekzorchik@srv-bionic:~$ sudo ln -sf /usr/share/java/mysql-connector-java.jar /etc/guacamole/lib/ ekzorchik@srv-bionic:~$ sudo systemctl restart guacd ekzorchik@srv-bionic:~$ sudo systemctl restart tomcat8
После на странице с ошибкой http://172.33.33.30:8080/guacamole
нажимаю клавишу F5
и вот оно окно авторизации:
Авторизуюсь:
Default login: guacadmin
Default password: guacadmin
и нажимаю «Вход
», оказываю в столь привычном ранее интерфейсе (минимализм)
Отлично. Я авторизован.
Итого в рамках этой заметки я установил самую последнюю версия сервиса через который можно взаимодействовать с другими системами через браузер посредством подключений по SSH, Telnet, RDP, VNC
. О том как это сделать я поведую в последующих заметках от и до, почему я все записываю от и до — я так запоминаю лучше, конспектирую можно сказать. На этом у меня всё, с уважением автор блога Олло Александр aka ekzorchik.