Is there a way to deploy modules to Wildfly via scripting (as in, without manually modifying XML files)? I know about the jboss-cli.sh
command to add module
but is there a way to either directly modify my standalone.xml
/domain.xml
or do some equivalent thing that will tell Wildfly to load the module?
Said another way...
I've discovered two ways to deploy modules:
1) Hot deploy a jar directly by copying it into $KEYCLOAK_HOME/standalone/deployments
(Per the README in that directory, this method is not recommended for production deployments but it works without any manual work afterward.)
2) run jboss-cli.sh --command="module add --name=com.example.MySpi"
then manually edit standalone.xml
(or domain.xml
) to have your module in the "providers" list, like so:
<subsystem xmlns="urn:jboss:domain:keycloak-server:1.1">
<web-context>auth</web-context>
<providers>
...
<provider>module:com.example.MySpi</provider>
</providers>
...
</subsystem>
... and finally restart the server.
I'd like to use the recommended way, but without manually editing an XML file. Is there a recommended path for this?
You can do something like
jboss-cli.sh --command="/subsystem=keycloak-server:list-add(name=providers, value=module:com.example.MySpi)"
Basically you can script everything that is in standalone.xml with jboss-cli. To find out more how your configuration looks internally, you may try /subsystem=keycloak-server:read-resource(recursive=true)
within jboss-cli.