Как развернуть модуль / провайдера / spi через скрипт?

Есть ли способ развернуть модули в Wildfly с помощью сценариев (например, без изменения файлов XML вручную)? Я знаю о команде jboss-cli.sh для add module, но есть ли способ либо напрямую изменить мой _3 _ / _ 4_, либо сделать что-то эквивалентное, что скажет Wildfly загрузить модуль?


Сказал по-другому ...

Я обнаружил два способа развертывания модулей:

1) Разверните банку напрямую, скопировав ее в $KEYCLOAK_HOME/standalone/deployments (согласно README в этом каталоге, этот метод не рекомендуется для производственных развертываний , но впоследствии он работает без какой-либо ручной работы .)

2) запустите jboss-cli.sh --command="module add --name=com.example.MySpi", затем вручную отредактируйте standalone.xml (или domain.xml), чтобы ваш модуль был в списке "поставщиков", например:

<subsystem xmlns="urn:jboss:domain:keycloak-server:1.1">
  <web-context>auth</web-context>
  <providers>
    ...
    <provider>module:com.example.MySpi</provider>
  </providers>
  ...
</subsystem>

... и, наконец, перезапустите сервер.

Я бы хотел использовать рекомендованный способ, но без ручного редактирования XML-файла. Есть ли для этого рекомендуемый путь?


person inanutshellus    schedule 27.09.2019    source источник
comment
Можете ли вы добавить дополнительные части раздела, в котором находится тег <providers/>, или ссылку на какую-либо документацию? Скорее всего, вы можете добавить его через интерфейс командной строки с помощью операции управления, но я не знаю, где это находится.   -  person James R. Perkins    schedule 27.09.2019


Ответы (2)


Вы можете сделать что-то вроде

jboss-cli.sh --command="/subsystem=keycloak-server:list-add(name=providers, value=module:com.example.MySpi)"

По сути, вы можете создать скрипт для всего, что находится в standalone.xml, с помощью jboss-cli. Чтобы узнать больше, как ваша конфигурация выглядит внутри, вы можете попробовать /subsystem=keycloak-server:read-resource(recursive=true) в jboss-cli.

person Erhard Siegl    schedule 28.09.2019
comment
Эта команда должна автоматически обновлять standalone.xml и, следовательно, выдерживать перезагрузки. - person Erhard Siegl; 01.10.2019

Извините, я пока не могу добавлять комментарии, поэтому добавляю это здесь.

Мне пришлось добавить параметр --connect в команду выше, иначе он жаловался на no connection to the controller.

Тогда вся команда будет такой:

jboss-cli.sh --connect --command="/subsystem=keycloak-server:list-add(name=providers, value=module:com.example.MySpi)"

person ieggel    schedule 22.10.2019
comment
Добро пожаловать в Stack Overflow, @ieggel, и спасибо за добавление! Надеюсь, этот вопрос вам тоже помог! - person inanutshellus; 22.10.2019
comment
Определенно помогло мне, так как я также искал способ автоматизированного способа регистрации модуля поставщика вместо того, чтобы вручную изменять файл XML. Спасибо !. - person ieggel; 23.10.2019
comment
Если вы не хотите запускать сервер, вы можете использовать встроенный сервер wildfly, чтобы редактировать standalone.xml без запуска Keycloak. Просто запустите embed-server --server-config=standalone.xml - person Paul; 06.01.2021
comment
Похоже, он заблокирован в версии docker. - person SalahAdDin; 07.02.2021