Herramientas para personalización de instalaciones
En el proceso de desarrollo con GeneXus, surge la necesidad de personaliza archivos en el momento de la instalación cuando se quiere instalar la misma versión para diferentes clientes o en diferente infraestructura.
En el pasaje a producción, en algunos ambientes se puede utilizar la personalización a través de variables de ambientes (por ejemplo con Docker / Kubernetes) pero en otros ambientes esto no es una posibilidad válida, y hay que cambiar archivos de configuración para lograr que todo funcione correctamente.
Algunas de las cosas que es necesario personalizar son los siguientes archivos
- web.config y client.exe.config
- client.cfg
- PDFReport.ini
- CloudServices.config
- rewrite.config
- log.config y log.console.config
- log4j.xml
- connection.gam
- dockerfile
- web.xml
- appsettings.json
Con seguridad me faltan varios mas.
El formato de estos archivos es variado (xml, json, txt, ini) y por lo tanto las herramientas que usamos para hacer su personalización también varia.
La personalización puede hacerse con una sustitución de archivos completa o con una modificación de algunas líneas del mismo. Esto es necesario cuando necesitamos por ejemplo la ultima version que sale de la KB del web.config, pero queremos modificar a que base de datos, usuario y password se conecta.
En ese caso, hay que tener una herramienta que permita sustituir parte del archivo xml por otra parte.
También debe agregar esa texto, en caso que no exista la entrada correspondiente en el archivo.
Como son archivos que pueden tener jerarquía o anidaciones, estas sustituciones o agregados no son triviales.
A lo largo de los años, hemos ido acumulado algunas herramientas para hacer la tarea de la personalización de archivos para producción y están especializados por formato.
IniFile - Edición batch de archivos INI
Es útil por ejemplo para el client.cfg
Ejemplo que cambia en la sección del ini de DataStore DEFAULT, el usuario y si no esta lo agrega.
INIFILE client.cfg [com.name|DEFAULT]] USER_ID=Elj20MqY44RPdvT8FEpDD0==
jq - Edición batch de archivos json
jq '.Connection-Default-User = "Elj20MqY44RPdvT8FEpDD0=="' appsettings.json > new_appsettings.json
Es muy poderoso y la sintaxis no es trivial, pero hace su trabajo.
fnr para archivo de texto
Cuando se tiene un archivo de texto y se quieren hacer sustituciones de búsqueda sencilla o usando expresiones regulares, se puede usar fnr
ctt para xml
Esta herramienta es útil para cambiar el web.config, client.exe.config, rewrite.config, log.config, log.console.config, etc.
Necesita archivos de configuración de las transformaciones, en xml, que es un poco pesado, pero no es difícil de programar. El ejemplo de abajo, sustituye el executionTimeout y le pone 1800 en el web.config
Comentarios
Publicar un comentario
1) Lee el post
2) Poné tu opinión sobre el mismo.
Todos los comentarios serán leidos y la mayoría son publicados.