Closed acuevas-dgtic closed 3 years ago
Estic revisant la documentació del JBoss EAP 7.2 i no veig que es pugui fer exactament el mateix que amb els datasources, però si que es proporciona de forma general un sistema per automatitzar la gestió de la configuració. Li diven "Management CLI", i permet executar scripts, mitjançant el jboss-cli.bat/.sh de fins el directori bin.
El jboss-cli necessita connectar-se al servidor que estigui en marxa, o pot iniciar el servei únicament a efectes de fer els canvis necessaris de configuració. Se li poden passar comandes directament amb una consola o amb un fitxer.
Per exemple, amb el servidor aturat, fent: bin/jboss-cli.bat
embed-server --std-out=echo
/subsystem=keycloak/realm=GOIB:add(auth-server-url=http://localhost:8180/auth,ssl-required=EXTERNAL)
stop-embedded-server
Això arrancarà el servidor només a efectes de canvis de configuració, afegirà el REALM GOIB a dins el subsystem keycloak al fitxer standalone.xml i aturarà el servidor.
Si el servidor ja està en marxa a localhost, i cream un fitxer keycloak-config.cli
amb el següent contingut:
/subsystem=keycloak/realm=GOIB:add(auth-server-url=http://localhost:8180/auth,ssl-required=EXTERNAL)
/subsystem=keycloak/secure-deployment=projectebase-back-1.0.0.war:add(realm=GOIB,resource=goib-default,use-resource-role-mappings=true,public-client=true,principal-attribute=preferred_username,verify-token-audience=true)
I executam bin\jboss-cli.bat -c --file=keycloak-config.cli
El -c
és perquè es connecti a la instància que està en marxa a localhost.
Això introduirà el següent dins la configuració:
<realm name="GOIB">
<auth-server-url>http://localhost:8180/auth</auth-server-url>
<ssl-required>EXTERNAL</ssl-required>
</realm>
<secure-deployment name="projectebase-back-1.0.0.war">
<realm>GOIB</realm>
<resource>goib-default</resource>
<use-resource-role-mappings>true</use-resource-role-mappings>
<public-client>true</public-client>
<principal-attribute>preferred_username</principal-attribute>
<verify-token-audience>true</verify-token-audience>
</secure-deployment>
Llavors entenc que un fitxer keycloak-config.cli
amb aquestes comandes per crear el realm
i els secure-deployment
seria el que necessitaríem.
A efectes del seu ús de forma automatitzada, en el cas d'un docker, caldria tenir en compte el següent:
embed-server
i stop-embeded-server
a l'script.set NOPAUSE=true
abans del jboss-cli.bat
per evitar que es quedi aturat amb un "Press any key to continue..."Una altre qüestió que podria ser interessant, és que permet el deploy d'arxius .cli
. Es tractaria d'un arxiu JAR que conté les aplicacions a fer deploy, més un script per fer el deploy i un per fer l'undeploy.
És a dir, podríem tenir un fitxer JAR que contengués:
El fitxer deploy.scr podria contenir les comandes per introduir les modificacions necessaries al JBoss, des d'instal·lar drivers (es podria empaquetar el driver dins aquest JAR), fins a crear datasources (o també empaqutar el fitxer projectebase-ds.xml dins el JAR) o la configuració del keycloak de la que parlam. El undeploy.scr conté les comandes que s'han d'executar quan es fa undeploy.
Per tant, fent deploy d'un sol fitxer projectebase.cli serviria per configurar i arrancar l'aplicació.
Para facilitar el uso de imágenes docker, sería deseable poder tener ficheros de configuración de keycloak de las aplicaciones en ficheros independientes del standalone.xml. Algo tipo aplicacion-keycloak.xml como se hace con los datasources. Desconozco si esto se puede hacer.