Любой 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)

После вот окно авторизации

Авторизуюсь в Openfire 4.7.0

Но тут увы не все так гладко с авторизацией: Ошибка входа: Кажется, вы указали адрес электронной почты, попробуйте использовать только пользовательскую часть (все до @). Стандартными настройками, в качестве пользователя, используется только ‘admin’.

Это я забыл, что в качестве логина нужно указать admin, а в качестве пароля пароль, указываемый при настройке через мастер, т.е. 712mbddr@

И вот теперь успешно авторизовавшись вижу Web-панель Openfire 4.7.0

Успешно авторизовался в Openfire 4.7.0

Итого я успешно разобрал, как установить со всеми нюансами сервис корпоративного чата на базе Jabber применительно к Ubuntu 20.04 Server. По сути если смотреть мои заметки на блоге https://lin.ekzorchik.ru, то все описанное там будет работать и в этой версии.

Заметка работоспособна, с уважением автор блога Олло Александр aka ekzorchik.