Поиск по сайту:

Как установить WildFly (JBoss) в Ubuntu 22.04|20.04|18.04 |


Это руководство проведет вас через установку сервера WildFly (JBoss) в Ubuntu 22.04|20.04|18.04. WildFly, ранее известный как JBoss, — это сервер приложений, написанный на Java и разработанный Red Hat. Сервер приложений WildFly — это исключительно быстрая, легкая и мощная реализация спецификаций платформы Java Enterprise Edition 8.

На момент написания этой статьи WildFly 29 является последней версией серии серверов приложений JBoss с открытым исходным кодом. В этой статье представлен краткий обзор того, как загрузить и установить последнюю доступную версию WildFly в Ubuntu 22.04|20.04|18.04 для разработки приложений.

Шаг 1. Установите Java JDK в Ubuntu

WildFly написан на Java, и его необходимо установить в качестве предварительного условия. Существует два варианта установки Java в систему Ubuntu Linux.

  • Установить OpenJDK
  • Установите комплект разработки Java SE

Самый простой способ получить Java — установить OpenJDK в вашей системе Ubuntu, выполнив приведенные ниже команды.

sudo apt update
sudo apt -y install default-jdk

Версия Java по умолчанию, установленная с помощью приведенной выше команды, — Java 10+. Это поддерживается WildFly.

$ java --version
openjdk 11.0.13 2021-10-19
OpenJDK Runtime Environment (build 11.0.13+8-Ubuntu-0ubuntu1)
OpenJDK 64-Bit Server VM (build 11.0.13+8-Ubuntu-0ubuntu1, mixed mode, sharing)

Шаг 2. Загрузите установочный архив WildFly.

Установите инструменты Curl и Wget.

sudo apt install curl wget

Перед загрузкой файла проверьте страницу загрузок WildFly на наличие последних выпусков. Здесь мы скачаем WildFly 29.x.

WILDFLY_RELEASE=$(curl -s https://api.github.com/repos/wildfly/wildfly/releases/latest|grep tag_name|cut -d '"' -f 4)
wget https://github.com/wildfly/wildfly/releases/download/${WILDFLY_RELEASE}/wildfly-${WILDFLY_RELEASE}.tar.gz

Как только файл загрузится, извлеките его.

tar xvf wildfly-${WILDFLY_RELEASE}.tar.gz

Переместите полученную папку в /opt/wildfly.

sudo mv wildfly-${WILDFLY_RELEASE} /opt/wildfly

Шаг 3. Настройте Systemd для WildFly

Давайте теперь создадим системного пользователя и группу, которые будут запускать службу WildFly.

sudo groupadd --system wildfly
sudo useradd -s /sbin/nologin --system -d /opt/wildfly  -g wildfly wildfly

Создайте каталог конфигураций WildFly.

sudo mkdir /etc/wildfly

Скопируйте службу WildFly systemd, файл конфигурации и шаблоны стартовых сценариев из каталога /opt/wildfly/docs/contrib/scripts/systemd/.

sudo cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.conf /etc/wildfly/
sudo cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.service /etc/systemd/system/
sudo cp /opt/wildfly/docs/contrib/scripts/systemd/launch.sh /opt/wildfly/bin/
sudo chmod +x /opt/wildfly/bin/launch.sh

Установите разрешения /opt/wildfly.

sudo chown -R wildfly:wildfly /opt/wildfly

Перезагрузите службу systemd.

sudo systemctl daemon-reload

Запустите и включите сервис WildFly:

sudo systemctl start wildfly
sudo systemctl enable wildfly

Подтвердите статус сервера приложений WildFly.

sudo systemctl status wildfly

Пример вывода:

Служба должна быть привязана к порту 8080.

$ ss -tunelp | grep 8080
tcp    LISTEN   0   128    0.0.0.0:8080  0.0.0.0:*  users:(("java",pid=6854,fd=389)) uid:999 ino:30339 sk:3 <-> 

Шаг 4. Добавьте пользователей WildFly

По умолчанию WildFly 16 теперь распространяется с включенной защитой интерфейсов управления. Нам нужно создать пользователя, который сможет получить доступ к консоли администрирования WildFly или удаленно использовать CLI. Для управления пользователями предусмотрен скрипт.

Запустите его, выполнив команду:

sudo /opt/wildfly/bin/add-user.sh

Вам будет предложено выбрать тип пользователя для добавления. Поскольку это первый пользователь, мы хотим сделать его администратором. Итак, выберите a.

What type of user do you wish to add? 
  a) Management User (mgmt-users.properties) 
  b) Application User (application-users.properties)
 (a):  a

Укажите желаемое имя пользователя для пользователя.

Enter the details of the new user to add.
 Using realm 'ManagementRealm' as discovered from the existing property files.
 Username : computingforgeeks

Установите пароль для пользователя:

Password recommendations are listed below. To modify these restrictions edit the add-user.properties configuration file.
The password should be different from the username
The password should not be one of the following restricted values {root, admin, administrator}
The password should contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), 1 non-alphanumeric symbol(s)
Password : <Enter Password>
Re-enter Password :  <Confirm Password>

Нажмите Enter и согласитесь с последующими запросами, чтобы завершить создание пользователя.

What groups do you want this user to belong to? (Please enter a comma separated list, or leave blank for none)[  ]: <Enter>
 About to add user 'computingforgeeks' for realm 'ManagementRealm'
 Is this correct yes/no? yes
 Added user 'computingforgeeks' to file '/opt/wildfly/standalone/configuration/mgmt-users.properties'
 Added user 'computingforgeeks' to file '/opt/wildfly/domain/configuration/mgmt-users.properties'
 Added user 'computingforgeeks' with groups  to file '/opt/wildfly/standalone/configuration/mgmt-groups.properties'
 Added user 'computingforgeeks' with groups  to file '/opt/wildfly/domain/configuration/mgmt-groups.properties'
 Is this new user going to be used for one AS process to connect to another AS process? 
 e.g. for a slave host controller connecting to the master or for a Remoting connection for server to server EJB calls.
 yes/no? yes
 To represent the user add the following to the server-identities definition 

Заметить, что:

Информация о пользователе хранится по адресу: /opt/wildfly/domain/configuration/mgmt-users.properties
Информация о группе хранится по адресу: /opt/wildfly/standalone/configuration/mgmt- groups.properties

Шаг 5. Доступ к консоли администратора WildFly

Чтобы иметь возможность запускать сценарии WildFly из текущего сеанса оболочки, добавьте /opt/wildfly/bin/ в свой ` PATH.

cat >> ~/.bashrc <<EOF
export WildFly_BIN="/opt/wildfly/bin/"
export PATH=\$PATH:\$WildFly_BIN                                                                                                                    
EOF

Исходный файл bashrc.

source ~/.bashrc

Теперь проверьте, подключившись к консоли администратора WildFly из CLI с помощью команды jboss-cli.sh.

$ jboss-cli.sh --connect
Authenticating against security realm: ManagementRealm
Username: computingforgeeks
Password:
[standalone@localhost:9990 /] version
JBoss Admin Command-line Interface
JBOSS_HOME: /opt/wildfly
Release: 29.0.1.Final
Product: WildFly Full 29.0.1.Final
JAVA_HOME: null
java.version: 11.0.13
java.vm.vendor: Ubuntu
java.vm.version: 11.0.13+8-Ubuntu-0ubuntu1
os.name: Linux
os.version: 5.13.0-19-generic
[standalone@localhost:9990 /] exit

Доступ к консоли администратора WildFly из веб-интерфейса

По умолчанию консоль доступна по IP-адресу локального хоста через порт 9990.

$ ss -tunelp | grep 9990
tcp    LISTEN   0    50    127.0.0.1:9990  0.0.0.0:* users:(("java",pid=6769,fd=404)) uid:999 ino:30407 sk:3 <-> 

Мы можем запустить его на другом IP-адресе, доступном за пределами локального сервера. Отредактируйте /opt/wildfly/bin/launch.sh, чтобы он выглядел следующим образом:

$ sudo vim /opt/wildfly/bin/launch.sh
#!/bin/bash

if [ "x$WILDFLY_HOME" = "x" ]; then
    WILDFLY_HOME="/opt/wildfly"
fi

if [[ "$1" == "domain" ]]; then
    $WILDFLY_HOME/bin/domain.sh -c $2 -b $3
else
    $WILDFLY_HOME/bin/standalone.sh -c $2 -b $3 -bmanagement=0.0.0.0
fi

Мы добавили -bmanagement=0.0.0.0 в начало строки сценария. Это привяжет интерфейс «управления» ко всем доступным IP-адресам.

Перезапустите службу wildfly.

sudo systemctl restart wildfly

Проверьте статус службы, чтобы убедиться, что она прошла успешно.

$ systemctl status  wildfly
● wildfly.service - The WildFly Application Server
     Loaded: loaded (/etc/systemd/system/wildfly.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2023-12-24 12:11:21 EAT; 6s ago
   Main PID: 8205 (launch.sh)
      Tasks: 70 (limit: 9482)
     Memory: 159.8M
        CPU: 12.265s
     CGroup: /system.slice/wildfly.service
             ├─8205 /bin/bash /opt/wildfly/bin/launch.sh standalone standalone.xml 0.0.0.0
             ├─8206 /bin/sh /opt/wildfly/bin/standalone.sh -c standalone.xml -b 0.0.0.0 -bmanagement=0.0.0.0
             └─8305 java -D[Standalone] -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava>

Des 24 12:11:22 ubuntu22 systemd[1]: Started The WildFly Application Server.

Подтвердите, что порт 9990 прослушивается:

$ ss -tunelp | grep 9990
tcp    LISTEN   0  50     0.0.0.0:9990  0.0.0.0:*  users:(("java",pid=9496,fd=320)) uid:999 ino:73367 sk:c <->

Откройте браузер и введите URL-адрес http://serverip:9990 для доступа к веб-консоли WildFly.

Используйте имя пользователя, созданное ранее, и пароль для аутентификации. Следующим окном будет консоль WildFly.

Вы успешно установили сервер приложений WildFly в Ubuntu 22.04|20.04|18.04. Посетите страницу документации WildFly для дальнейшего чтения.

Статьи по данной тематике: