В 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, которые могут создать целую среду в доменном или автономном режиме за считанные минуты и с точно известной конфигурацией.