Как установить WildFly на Rocky Linux 8

12 set 2022 6 min di lettura
Как установить WildFly на Rocky Linux 8
Indice dei contenuti

Введение

WildFly, первоначально известный как JBoss Application Server, представляет собой исключительно быструю и легкую реализацию контейнера Java Enterprise Edition (JEE) с открытым исходным кодом. WildFly написан на Java и был разработан RedHat, чтобы помочь управлять временем выполнения приложений и создавать приложения. Этот инструмент был разработан в 2006 году компанией JBoss Inc, а затем приобретен RedHat и стал WildFly. Название было изменено из-за путаницы, внесенной в кошелек названиями продуктов. WildFly может работать в различных операционных системах с поддержкой как 32-, так и 64-битной версии.

Последняя версия WildFly 26 включает множество функций и улучшений. Удивительные функции, связанные с WildFly:

  • Легкий: WildFly использует агрессивный подход к управлению памятью. Базовые службы среды выполнения были разработаны для минимизации выделения кучи за счет использования общих кэшированных индексированных метаданных поверх дублирующих полных сканирований, что снижает вероятность отказа от кучи и объектов.
  • На основе стандартов: WildFly реализует новейшие бизнес-стандарты Java от Jakarta EE и Eclipse MicroProfile. Они повышают производительность разработчиков, предоставляя расширенные бизнес-возможности в простых в использовании платформах, которые устраняют стандартную табличку и снижают техническую нагрузку.
  • Модульность: WildFly корректно загружает классы. Он использует модули JBoss, чтобы обеспечить истинную изоляцию приложения, скрытие классов реализации сервера от приложения и подключение только к JAR-файлам, необходимым приложению.
  • Мощный: конфигурация в WildFly централизована, проста и ориентирована на пользователя. Файл конфигурации организован в легко понятные подсистемы, и никакие внутренние кабели сервера не видны.

Это руководство предназначено для демонстрации того, как установить последнюю версию WildFly на Rocky Linux 8.

Если вы хотите установить WildFly на удаленный сервер, продолжайте читать, в противном случае пропустите первый абзац «Подключение к серверу» и читайте следующий.

Подключение к серверу

Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется ваше имя пользователя и пароль для аутентификации. Чтобы подключиться к серверу как root, введите следующую команду:

ssh root@IP_DEL_SERVER

Далее вам нужно будет ввести пароль пользователя root.

Если вы не используете пользователя root, вы можете войти под другим именем пользователя с помощью той же команды, а затем изменить root на свое имя пользователя:

ssh nome_utente@IP_DEL_SERVER

Затем вам будет предложено ввести пароль пользователя.

Стандартный порт для подключения по ssh — 22, если ваш сервер использует другой порт, вам нужно будет указать его с помощью параметра -p, затем введите следующую команду:

ssh nome_utente@IP_DEL_SERVER -p PORTA

Предпосылки

Для этого руководства вам потребуется следующее:

  • Линукс Рокки 8.
  • Память более 2 ГБ оперативной памяти

Также убедитесь, что пакеты в вашей системе обновлены до последних доступных версий:

sudo yum update

Теперь выполните следующие действия, чтобы установить WildFly на Rocky Linux 8.

Установите Java на Rocky Linux 8

Поскольку WildFly основан на Java, перед продолжением необходимо установить Java. Для этого руководства мы установим Java OpenJDK 11:

sudo yum install java-11-openjdk-devel

После установки проверьте версию Java:

java -version
openjdk version "11.0.14.1" 2022-02-08 LTS
 OpenJDK Runtime Environment 18.9 (build 11.0.14.1+1-LTS)
 OpenJDK 64-Bit Server VM 18.9 (build 11.0.14.1+1-LTS, mixed mode, sharing)

Установите WildFly на Rocky Linux 8

Перед загрузкой и установкой WildFly вам необходимо создать системного пользователя и группу для WildFly. Создайте пользователя с пользовательским домашним каталогом, как показано ниже:

sudo useradd -r -d /opt/wildfly -s /sbin/nologin wildfly

Теперь загрузите последнюю версию WildFly с официального сайта WildFly с помощью команды wget. Для этого руководства мы загрузим файл TGZ Jarkata EE Full & Web Distribution (26.0.1) с помощью Wget, как показано ниже:

wget https://github.com/wildfly/wildfly/releases/download/26.0.1.Final/wildfly-26.0.1.Final.tar.gz

После загрузки извлеките файл в каталог /opt с помощью команды tar:

sudo tar xf wildfly-*.Final.tar.gz -C /opt/

Теперь мы создадим символическую ссылку для WildFly с помощью команды ln, это важно при обновлении или установке другой версии на WildFly:

sudo ln -s /opt/wildfly-26.0.1.Final//opt/wildfly

Установите владельца файла для пользователя Wildfly, созданного с помощью команды chown:

sudo chown -RH wildfly:wildfly /opt/wildfly

Создайте службу Systemd для WildFly.

Мы начнем с создания конфигураций WildFly в каталоге /etc, как показано ниже:

sudo mkdir /etc/wildfly
sudo cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.conf /etc/wildfly/

Просмотрите содержимое конфигурации:

cat /etc/wildfly/wildfly.conf
# The configuration you want to run
 WILDFLY_CONFIG=standalone.xml

 # The mode you want to run
 WILDFLY_MODE=standalone

 # The address to bind to
 WILDFLY_BIND=0.0.0.0

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

Затем скопируйте скрипт launch.sh, необходимый для запуска WildFly как службы:

sudo cp /opt/wildfly/docs/contrib/scripts/systemd/launch.sh /opt/wildfly/bin/

Теперь скопируйте служебный файл для WildFly:

sudo cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.service /usr/lib/systemd/system/

Также необходим каталог для хранения файла PID:

sudo mkdir /var/run/wildfly/
sudo chown -R wildfly:wildfly /var/run/wildfly/

Теперь запустите и включите WildFly на Rocky Linux 8.

sudo systemctl enable wildfly.service
sudo systemctl start wildfly.service

Проверить статус услуги.

sudo systemctl status wildfly.service
● wildfly.service - The WildFly Application Server
 Loaded: loaded (/usr/lib/systemd/system/wildfly.service; enabled; vendor preset: disabled)
 Active: active (running) since Thu 2022-03-17 06:39:27 EDT; 20s ago
 Main PID: 37572 (launch.sh)
 Tasks: 125 (limit: 36438)
 Memory: 273.6M
 CGroup: /system.slice/wildfly.service
 ├─37572 /bin/bash /opt/wildfly/bin/launch.sh standalone standalone.xml 0.0.0.0
 ├─37573 /bin/sh /opt/wildfly/bin/standalone.sh -c standalone.xml -b 0.0.0.0
 └─37666 java -D[Standalone] -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djbo>

 Mar 17 06:39:27 localhost.localdomain systemd[1]: Started The WildFly Application Server.

Настройте брандмауэр, чтобы разрешить прохождение порта WildFly:

sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload

На этом этапе WildFly должен быть доступен на порту 8080.

Настройте консоль администрирования WildFly для удаленного доступа

По умолчанию консоль администрирования WildFly работает на локальном хосте. Если мы хотим получить к нему доступ через удаленный хост, нам нужно выполнить некоторые настройки.

Прежде всего, нам нужно создать пользователя-администратора, чтобы разрешить нам доступ к консоли администратора WildFly:

sudo /opt/wildfly/bin/add-user.sh
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: noviello
 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:
 Re-enter Password:

 What groups do you want this user to belong to? (Please enter a comma separated list, or leave blank for none)[ ]:
 About to add user 'noviello' for realm 'ManagementRealm'
 Is this correct yes/no? yes....
 Added user 'noviello' with groups to file '/opt/wildfly-26.0.1.Final/domain/configuration/mgmt-groups.properties'
 Is this new user going to be used for one AS process to connect to another AS process?
 eg for a slave host controller connecting to the master or for a Remoting connection for server to server Jakarta Enterprise Beans calls.
 yes/no? yes
 To represent the user add the following to the server-identities definition <secret value="UGFzc3cwcmQh" />

Далее мы создадим переменную окружения для WildFly:

sudo vi /etc/wildfly/wildfly.conf
# The address to bind console to
 WILDFLY_CONSOLE_BIND=0.0.0.0

Также отредактируйте скрипт launch.sh:

sudo vi /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 -bmanagement $4
 else
 $WILDFLY_HOME/bin/standalone.sh -c $2 -b $3 -bmanagement $4
 fi

Также отредактируйте служебный файл WildFly:

sudo vi /usr/lib/systemd/system/wildfly.service

Отредактируйте файл, как показано ниже:

[Unit]
 Description=The WildFly Application Server
 After=syslog.target network.target
 Before=httpd.service

 [Service]
 Environment=LAUNCH_JBOSS_IN_BACKGROUND=1
 EnvironmentFile=-/etc/wildfly/wildfly.conf
 User=wildfly
 LimitNOFILE=102642
 PIDFile=/var/run/wildfly/wildfly.pid
 ExecStart=/opt/wildfly/bin/launch.sh $WILDFLY_MODE $WILDFLY_CONFIG $WILDFLY_BIND $WILDFLY_CONSOLE_BIND
 StandardOutput=null

 [Install]
 WantedBy=multi-user.target

Перезагрузите системный демон и перезапустите службу WildFly:

sudo systemctl daemon-reload
sudo systemctl restart wildfly.service

Теперь разрешите порт консоли администратора WildFly через брандмауэр:

sudo firewall-cmd --permanent --add-port=9990/tcp
sudo firewall-cmd --reload

Отключить SELinux:

sudo setenforce 0

Войдите в консоль администратора WildFly.

Теперь войдите в консоль администратора WildFly, используя URL-адрес http://IP-адрес: 9990/console.

Укажите учетные данные пользователя-администратора, которые вы создали.

Теперь мы развернем образец Java-приложения на сервере WildFly. Сначала загрузите Java-приложение Helloworld с GitHub, как показано ниже:

cd /opt/wildfly/standalone/deployments/
sudo curl -O https://raw.githubusercontent.com/aeimer/java-example-helloworld-war/master/dist/helloworld.war

Посмотреть доступные файлы:

ls
helloworld.war helloworld.war.deployed README.txt

Из приведенного выше вывода файл с именем *.deployed показывает, что приложение было успешно развернуто, в противном случае файл будет называться *.failed. Вы можете просмотреть журналы WildFly, как показано ниже:

tail /opt/wildfly/standalone/log/server.log | grep helloworld
2022-03-17 07:07:07,674 INFO [org.jboss.as.server.deployment] (MSC service thread 1-2) WFLYSRV0027: Starting deployment of "helloworld.war" (runtime-name: "helloworld.war")
 2022-03-17 07:07:08,818 INFO [org.wildfly.extension.undertow] (ServerService Thread Pool -- 81) WFLYUT0021: Registered web context: '/helloworld' for server 'default-server'
 2022-03-17 07:07:08,886 INFO [org.jboss.as.server] (DeploymentScanner-threads - 2) WFLYSRV0010: Deployed "helloworld.war" (runtime-name: "helloworld.war")

Раздачу можно посмотреть в браузере по адресу http://IP_address:8080/helloworld/

Вывод

На этом руководство заканчивается. Мы успешно настроили сервер WildFly на Rocky Linux 8, а также развернули образец приложения. Теперь вперед, используйте WildFly для создания приложений и управления ими.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.