Любой LTS
релиз на Ubuntu
накладывает на меня и мои наработки, что нужно быть способным внедрить сервис. Если ранее сервис корпоративного общения был на Ubuntu 18.04 Server
, то сейчас хочу проработать, как развернуть его на базе Ubuntu 20.04 Server
от и до со всеми нюансами. Сперва, как если бы OpenFire
(чат на основе протокола Jabber
, есть Web
интерфейс, может работать в домене, поддерживает шифрование) был установлен просто один, потом буду усложнять задачу. Также по этому принципу, но на Ubuntu 18.04 Server
у меня он работает дома, как система оповещения от Zabbix
сервиса о состоянии систем за которыми настроен мониторинг.
Я приверженец правила, сперва отрабатываем внедрение, а потом внедряем, но только на основе своих наработок, а не принципа вот прям сейчас я видел статью в интернет, ой не получилось, давай найдем другую.
Шаг №1:
Базовая настройка Ubuntu 20.04 Server
под Debian 10 Proxmox 6
у меня выполнена по заметке
:
ekzorchik@srv-us2004a:~$ sudo nano /etc/hosts 172.33.33.117 srv-openfire ekzorchik@srv-us2004a:~$ sudo nano /etc/hostname srv-openfire ekzorchik@srv-us2004a:~$ sudo reboot
Характеристики VM:
- CPU = 1 (2 cores)
- HDD = 50Gb
- RAM = 2Gb (но на работе для 200 человек и 1Gb нормально, это у меня такие требования к виртуальному контейнеру)
Шаг №2:
Произвожу установку Java
пакетов необходимых сервису OpenFire:
ekzorchik@srv-openfire:~$ sudo apt-get install -y openjdk-8-jdk ekzorchik@srv-openfire:~$ sudo update-alternatives --config java There is only one alternative in link group java (providing /usr/bin/java): /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java Nothing to configure. ekzorchik@srv-openfire:~$ ekzorchik@srv-openfire:~$ java -version openjdk version "1.8.0_312" OpenJDK Runtime Environment (build 1.8.0_312-8u312-b07-0ubuntu1~20.04-b07) OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode) ekzorchik@srv-openfire:~$ ekzorchik@srv-openfire:~$ sudo nano /etc/environment PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin" JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java" ekzorchik@srv-openfire:~$ source /etc/environment ekzorchik@srv-openfire:~$ echo $JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java ekzorchik@srv-openfire:~$
Шаг №3:
Произвожу установку сервиса базы данных, создаю базу под сервис openfire
, пользователя и пароль:
sudo apt-get install -y mysql-server mysql-client sudo mysqladmin -u root password 712mbddr@ sudo mysql -u root -p712mbddr@ -e "delete from mysql.user where user=''" sudo mysql -u root -p712mbddr@ -e "delete from mysql.user where user='root' and host not in ('localhost','127.0.0.1','::1')" sudo mysql -u root -p712mbddr@ -e "drop database if exists test" sudo mysql -u root -p712mbddr@ -e "delete from mysql.db where db='test' or db='test\\_%'" sudo mysql -u root -p712mbddr@ -e "drop database if exists db_openfire" sudo mysql -u root -p712mbddr@ -e "create database db_openfire character set utf8 collate utf8_general_ci"; sudo mysql -u root -p712mbddr@ -e "drop user if exists 'us_openfire'@'localhost'" sudo mysql -u root -p712mbddr@ -e "create user 'us_openfire'@'localhost' identified by '612mbddr@'" sudo mysql -u root -p712mbddr@ -e "grant all on db_openfire.* to 'us_openfire'@'localhost'"; ekzorchik@srv-openfire:~$ sudo apt-get install -y net-tools ekzorchik@srv-openfire:~$ sudo netstat -tulpn | grep mysql tcp 0 0 127.0.0.1:33060 0.0.0.0:* LISTEN 32097/mysqld tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 32097/mysqld ekzorchik@srv-openfire:~$
Шаг №4:
Проверяю, что могу подключиться под созданным пользователем, паролем к созданной базе:
ekzorchik@srv-openfire:~$ sudo mysql -u us_openfire -p612mbddr@ db_openfire -h 127.0.0.1 -e "quit" mysql: [Warning] Using a password on the command line interface can be insecure. ekzorchik@srv-openfire:~$ - т.е. я успешно подключился и после послал команду quit и вышел.
Шаг №5:
Скачиваю самый последний пакет OpenFire
(на момент написания заметки это 4.7.0
) и устанавливаю:
ekzorchik@srv-openfire:~$ wget https://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_4.7.0_all.deb -O openfire.deb ekzorchik@srv-openfire:~$ file openfire.deb openfire.deb: Debian binary package (format 2.0), with control.tar.gz, data compression xz ekzorchik@srv-openfire:~$ sudo dpkg -i openfire.deb Selecting previously unselected package openfire. (Reading database ... 87858 files and directories currently installed.) Preparing to unpack openfire.deb ... Unpacking openfire (4.7.0) ... Setting up openfire (4.7.0) ... adduser: Warning: The home directory `/var/lib/openfire' does not belong to the user you are currently creating. Processing triggers for systemd (245.4-4ubuntu3.15) ... ekzorchik@srv-openfire:~$ ekzorchik@srv-openfire:~$ sudo systemctl restart openfire && sudo systemctl status openfire | head -n5 ● openfire.service - LSB: Start/stop openfire jabber server Loaded: loaded (/etc/init.d/openfire; generated) Active: active (running) since Tue 2022-02-15 08:06:07 UTC; 12ms ago Docs: man:systemd-sysv-generator(8) Process: 33559 ExecStart=/etc/init.d/openfire start (code=exited, status=0/SUCCESS) ekzorchik@srv-openfire:~$
Шаг №6:
Создаю структуру таблиц в базе данных db_openfire:
ekzorchik@srv-openfire:~$ sudo mysql -u root -p712mbddr@ db_openfire -e "source /usr/share/openfire/resources/database/openfire_mysql.sql" mysql: [Warning] Using a password on the command line interface can be insecure. ekzorchik@srv-openfire:~$
Шаг №7:
Теперь настраиваю через Web
-интерфейс, для этого с основной системы с которой взаимодействую с этой где сервис openfire
открываю браузер и в строке URL
-адреса указываю IP&DNS
адрес системы с сервисом OpenFire.
На заметку: Если во время настройки вы отойдете или прервётесь, то в последствии продолжить с текущего места не сможете, будет сообщение: «Произошел сбой при получении сеанса с сервера. Обычно это проблема связана с файлами cookie. Удалите все файлы cookie для этого домена или повторите попытку войти на этот URL из браузера инкогнито.» В этом случае следует заново открыть вкладку с URL адресом и начать все заново.
Итого URL примет вид:
http://IP&DNS:9090
и это по дефолту
Открываю http://172.33.33.117:9090 и меня перекидывает на http:// 172.33.33.117:9090/setup/index.jsp
где в первый раз посредством мастера производим настройку (после часть настроек можно будет изменить через Web
-интерфейс)
Choose Language: выбираю Русский (ru_RU)
И нажимаю Continue
(Настройки сервера)
Доменной имя: srv-openfire
Имя узла сервера (полное доменное имя): srv-openfire
Порт консоли администратора: 9090
Безопасный порт консоли администратора: 9091
Шифрование свойств через: AES
Ключ шифрования свойства: 712mbddr@
И нажимаю "Продолжить"
(Настройки базы данных)
Выберите способ подключения к базе данных Openfire: выбираю "Стандартное подключение к базе данных"
И нажимаю "Продолжить"
(Настройки базы данных – стандартное соединение)
Предварительные настройки драйверов базы данных: MySQL
Класс драйвера JDBC: com.mysql.cj.jdbc.Driver
URL базы данных: jdbc:mysql://127.0.0.1:3306/db_openfire?rewriteBatchedStatements=true&characterEncoding=UTF-8&characterSetResults=UTF-8&serverTimezone=UTC
Имя пользователя: us_openfire
Пароль: 612mbddr@
Minimum Connections: 3
Maximum Connections: 100
Время ожидания подключения: 1.0 (Days)
И нажимаю "Продолжить"
(Настройки профиля)
Выберите пользователя и систему группы для использования сервером: Выбираю "По умолчанию"
На заметку: Хранить пользователей и группы в базе данных сервера. Это лучший вариант для простого развертывания сервера.
И нажимаю "Продолжить"
(Учетная запись администратора)
Адрес электронной почты администратора: support@ekzorchik.ru
Новый пароль: 712mbddr@
Повторите пароль: 712mbddr@
И нажимаю "Продолжить"
(Настройка завершена)
Установка Openfire
завершена. Продолжить: нажимаю на "Вход в консоль администратора"
(это ссылка http://172.33.33.117:9090/login.jsp
)
После вот окно авторизации
Но тут увы не все так гладко с авторизацией: Ошибка входа: Кажется, вы указали адрес электронной почты, попробуйте использовать только пользовательскую часть (все до @). Стандартными настройками, в качестве пользователя, используется только ‘admin’.
Это я забыл, что в качестве логина нужно указать admin
, а в качестве пароля пароль, указываемый при настройке через мастер, т.е. 712mbddr@
И вот теперь успешно авторизовавшись вижу Web
-панель Openfire 4.7.0
Итого я успешно разобрал, как установить со всеми нюансами сервис корпоративного чата на базе Jabber
применительно к Ubuntu 20.04 Server
. По сути если смотреть мои заметки на блоге https://lin.ekzorchik.ru
, то все описанное там будет работать и в этой версии.
Заметка работоспособна, с уважением автор блога Олло Александр aka ekzorchik.