Статьи

Управление серверами с помощью JBoss EAP 6 и Wildfly

В JBoss EAP 6 и WildFly управление сервером является сложной задачей. Особенно в больших командах важно знать, что все работают с одинаковой конфигурацией сервера, даже если не все из нас имеют доступ к таким инструментам, как Docker или Vagrant.

Войдите в JBoss CLI. Интерфейс командной строки JBoss представляет собой пакетный скрипт, который можно найти в  % JBOSS_HOME% \ bin \ jboss-cli.bat  (или .sh для Linux), и упрощает эту задачу, предоставляя согласованный способ простого сохранения конфигураций, как для групп разработчиков. и производственные среды.

Интерфейс командной строки будет отключен, но при вводе « connect » он будет подключен к локальному работающему экземпляру с использованием параметров подключения по умолчанию. Альтернативный вариант — указать опции «—connect» или просто «-c» при запуске CLI из командной строки:

%JBOSS_HOME%\bin\jboss-cli.bat --connect
%JBOSS_HOME%\bin\jboss-cli.bat -c

Другие параметры запуска включают в себя:

параметр Описание
—controller = хост: порт Определяет местоположение JBoss для подключения. К любому автономному серверу JBoss или контроллеру домена можно подключиться. По умолчанию это localhost: 9999.
—gui Запускает CLI в режиме GUI. Подробнее об этом ниже.
—file = / путь / к / script.cli Указывает путь к скрипту CLI для запуска. Расширение «cli» — это просто соглашение, оно может быть чем угодно.
—user = ИМЯ_ПОЛЬЗОВАТЕЛЬ Имя пользователя для пользователя управления JBoss. Это не требуется при локальном подключении, только для удаленных серверов.
—password = ПАРОЛЬ Пароль для пользователя управления JBoss. Это не требуется при локальном подключении, только для удаленных серверов.
—command = ЦМД Эта опция позволяет вам выполнить одну команду против CLI, не входя в интерактивный режим.
—commands = CMD1, CMD2 Эта опция (обратите внимание на «s») позволяет вам запускать несколько команд в списке через запятую. Между ними не может быть пробелов.      

CLI может использоваться как большинство оболочек и обеспечивает завершение табуляции. Нажатие вкладки, не начав вводить команду, выведет список доступных опций.

Более наглядный способ взаимодействия с CLI доступен с  помощью  параметра запуска —gui :

Название изображения

На снимке экрана ниже я щелкнул правой кнопкой мыши   узел data-source = * , и мне предложили список параметров команды. Всякий раз, когда отображается « ресурс = * », это не реальный ресурс, а общее представление ресурса, который может быть создан.

Название изображения

Команды CLI обычно принимают следующую форму:

/resourceType=resourceName/:operation 
  name(name=attributeName,value=attributeValue)

Сначала у вас есть  путь ресурса CLI . Это может быть несколько уровней, поэтому я мог бы обратиться к источнику данных ExampleDS следующим образом: 

/subsystem=datasources/data-source=ExampleDS/

После пути к ресурсу указывается  имя операции . Для ExampleDS это может быть либо «атрибут записи», либо «неопределенный атрибут».

Во второй строке находятся  параметры операции , которые будут просто именем атрибута и значением для его установки.

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

/subsystem=datasources/data-source=ExampleDS/:write-attribute(name=max-pool-size,value=30)

Это также можно сделать с помощью графического интерфейса. После ввода правильного значения для операции записи атрибута поле  cmd>  будет заполнено командой:

Название изображения

Нажатие на кнопку «Отправить» откроет вкладку «Вывод», чтобы показать тот же вывод, который вы получите, если запустить из командной строки:

Название изображения

Примечание.  Чтобы увидеть измененное значение, атрибуты ресурсов необходимо обновить, закрыв и открыв узел

Одной из стратегий «наилучшей практики» для наилучшего использования графического интерфейса может быть:
1. Использование графического интерфейса для создания соответствующих команд.
2. Скопируйте и вставьте команды в новый файл.cli.
3. Логически объединяйте команды; например, сгруппируйте все связанные с JDBC команды в один файл, а затем все команды JMS в отдельный файл.
4. Зафиксируйте сценарий CLI в системе VCS (например, Git).
Этот метод не является предписывающим, но может быть полезен для создания книг сгруппированных команд, которыми можно поделиться с командой.
CLI имеет  пакетный режим,  который можно использовать как в сценарии, так и в интерактивном режиме. Это можно использовать следующим образом:

#  Remove H2 data source and driver
   batch
   /subsystem=datasources/data-source=ExampleDS:remove
   /subsystem=datasources/jdbc-driver=h2:remove
   /subsystem=datasources:remove
   holdback-batch h2


#  Remove EJB3
   batch
   /subsystem=ejb3:remove
   /extension=org.jboss.as.ejb3:remove
   holdback-batch ejb3

#  Run batches
   batch h2
   run-batch

   batch ejb3
   run-batch

В приведенном выше примере видно, что команда « batch » запускает новый пакет. Этот пакет будет  атомарной транзакцией,  что означает, что в случае сбоя какой-либо команды весь пакет завершится неудачно и будет откатан.

Команда « holdback-batch $ name » сохраняет команды, введенные в пакете, в именованный пакет с именем $ name, который затем можно вызвать, введя « batch $ name ». Это вызовет   пакет $ name , и на этом этапе можно даже добавить дополнительные команды, но вероятным следующим шагом будет выполнение пакета с помощью « run-batch »
. Преимущество пакетов заключается не только в их атомарности; их также можно использовать для логической группировки команд, а затем очень просто упорядочить их, чтобы убедиться, что необходимые команды выполняются в правильном порядке.

Иногда правильная команда не всегда известна заранее. Использование поля «фильтр» в нижней части графического интерфейса полезно, но в тех случаях, когда графический интерфейс недоступен, пользователь сообщества создает ссылку для JBoss EAP и WildFly:
http://wildscribe.github.io/index. HTML

Кроме того, для любой команды доступна справка, набрав «$ command —help » на интерактивной консоли, например:

Название изображения

Конечно, можно сказать больше о CLI JBoss, но написание большего количества блогов все же не так полезно, как практическое применение и проверка. Что делает этот подход к конфигурации настолько мощным, так это возможность объединения с инструментами DevOps, такими как Chef, которые могут создать целую среду в доменном или автономном режиме за считанные минуты и с точно известной конфигурацией.