Last modified by admin on 2026/07/18 17:45

Show last authors
1 = LYCloud (LYSaaS) {{id name="lycloud-lysaas" /}}=
2
3 == Manual de referencia y uso {{id name="manual-de-referencia-y-uso" /}}==
4
5 = Convenciones {{id name="convenciones" /}}=
6
7 Para este documento, se supone que LYSaaS se encuentra instalado en **/opt/lysaas**.
8
9 = Importante {{id name="importante" /}}=
10
11 Para una referencia rápida sobre cómo crear nuevas instancias o instalar un componente sobre las actuales, revisar directamente el apartado **//Generación de una nueva instancia SaaS//** y el apartado **//Instalación / actualización de un componente en una instancia SaaS//**.
12
13 = Configuración de puertos de una instancia {{id name="configuración-de-puertos-de-una-instancia" /}}=
14
15 Al ejecutar **//Configurar.sh//**, el proceso verificará si dicha instancia es una instancia LYSaaS o no. Esto dependerá de que el archivo **///OXP_HOME/utils/saas/cfg/InstanceConfiguration.cfg//** exista, y que además la propiedad instanceID esté seteada en un valor mayor a 0.
16
17 En caso de estar configurado como instancia LY SaaS, la pantalla de configuración impedirá indicar los puertos (1099 para JNP, 8080 para Web, 8443 para SSL), dado que los mismos deben tener estos valores por defecto a fin de poder realizar el shifting de manera automática a partir de dichos valores:
18
19 [[image:image1.png]]
20
21 El valor de shifting para cada puerto dependerá de la configuración general de LYSaaS, alojada en el archivo **/opt/lysaas/cfg/GeneralConfiguration.cfg**, bajo la configuración **portStep**.
22
23 Luego de clickear Guardar, el paso final del Configurar realiza el shifting correspondiente, en función del número de instancia:
24
25
26 {{code}}
27 \[echo\] Configuracion especial de puertos del Servidor Libertya SaaS.
28 \[echo\] Instancia: 1
29 \[echo\] Directorio binarios SaaS: /home/usuario/workspace/org.libertya.saas/bin
30 \[echo\] Ejecutando binario: setInstancePorts.sh
31 \[exec\] Invocando job de Ant con valor 1 recibido por argumento...
32 \[exec\] Buildfile: /home/usuario/workspace/org.libertya.saas/bin/instanceJobs.xml
33
34 \[exec\] setInstancePorts:
35 \[exec\] \[echo\] instanceID: 1. portStep: 1000. increment: 1000
36 \[exec\] \[echo\] Actualizando jboss-service.xml en conf
37 \[exec\] \[echo\] 1098 -\> 2098
38 \[exec\] \[echo\] 1099 -\> 2099
39 \[exec\] \[echo\] 4444 -\> 5444
40 \[exec\] \[echo\] 4445 -\> 5445
41 \[exec\] \[echo\] 8083 -\> 9083
42 \[exec\] \[echo\] Actualizando server.xml en jbossweb-tomcat55.sar
43 \[exec\] \[echo\] 8080 -\> 9080
44 \[exec\] \[echo\] 8443 -\> 9443
45 \[exec\] \[echo\] 8009 -\> 9009
46 \[exec\] \[echo\] Actualizando jboss-service.xml en http-invoker.sar
47 \[exec\] \[echo\] 8080 -\> 9080
48 \[exec\] \[echo\] Actualizando uil2-service.xml en jms
49 \[exec\] \[echo\] 8093 -\> 9093
50 \[exec\] \[echo\] Actualizando jboss-service.xml en jboss-ws4ee.sar
51 \[exec\] \[echo\] 8443 -\> 9443
52
53 \[exec\] BUILD SUCCESSFUL
54 \[exec\] Total time: 0 seconds
55 {{/code}}
56
57 Como el proceso tiene que ser idempotente, es por eso que en el archivo **//LibertyaEnv.properties//** mantiene los valores originales 1099, 8443 y 8080 para los puertos; a partir de los cuales es posible aplicar el corrimiento cuantas veces sea necesario, incluso si se cambia el instanceID a un valor distinto. **Es por ésto que en dicho archivo quedan guardados los valores sin el corrimiento.**
58
59 **IMPORTANTE**: Dada la lógica del script, si por ejemplo se modifica el **//número de instancia//** o el **//portStep,//** no es suficiente con disparar el proceso setInstancePort.sh para modificar una instancia ya //shifteada// dado que el script buscará los valores originales de los puertos (1099, 8080, etc.); será necesario ejecutar nuevamente Configurar.sh en este caso para luego sí ejecutar el shifting.
60
61 **Nota**: como regla general es posible invocar el shifting las veces que sea necesario utilizando el script //**/opt/lysaas/bin/setInstancePorts.sh** <número_de_instancia>//. Como requisito, es necesario que la instancia sea configurada mediante Configurar.sh previamente.
62
63 **Nota**: Del mismo modo, también es factible ejecutar ConfigurarAuto.sh, el cual realizará la misma operatoria. Como requisito, es necesario que la instancia al menos haya sido configurada mediante Configurar.sh al menos una vez, siempre y cuando no se modifique la configuración del **número de instancia** o **portStep**.
64
65 **Nota**: Para finalizar la ejecución de alguna instancia JBoss correctamente, es necesario contar al menos con la revisión 1383 de LY Standard, dado que ese commit incluye una corrección que permite especificar un puerto JNP distinto al tradicional (1099).
66
67 = Inicio automático JBoss de una instancia {{id name="inicio-automático-jboss-de-una-instancia" /}}=
68
69 Para poder especificar que una instancia de Libertya inicie automáticamente, se deberá utilizar el script **/opt/lysaas/bin/deployAutostartDaemon.sh**. Este script realiza las siguientes actividades:
70
71 1. Copia desde el directorio template el archivo libertyad hacia **/etc/init.d**, concatenándole al final el número de instancia. Por ejemplo **libertyad** pasa a ser **libertyad1**.\\
72 1. Modifica el archivo recién copiado, reemplazando por ejemplo /ServidorOXP por /ServidorOXP1 y libertya.pid por libertya1.pid (lógicamente según el número de instancia pasado)\\
73 1. Invoca al comando correspondiente para registrar al script como un servicio (esto dependiendo de la distribución Linux en donde se esté trabajando).
74
75 Recibe un unico argumento (obligatorio):
76
77 1. Número de instancia sobre la cual desea aplicarse el script (1, 2… etc.); el cual será utilizado para realizar el renombre de archivos correspondiente.
78
79 Ejemplo:
80
81
82 {{code}}
83 ***deployAutostartDaemon.sh 4***
84 {{/code}}
85
86 **Nota**: El script **libertyad** es tomado a partir del directorio template, cuya ubicación base debe estar correctamente especificado en el archivo **/opt/lysaas/cfg/GeneralConfiguration.cfg**, bajo la propiedad **templateLocation**. Al momento de escribir este manual, el archivo libertyad base es el correspondiente a la revisión 1383 de LY Standard.
87
88 **IMPORTANTE**: Se debe configurar la **//osPlatform//** en **/opt/lysaas/cfg/GeneralConfiguration.cfg**, indicando si la distribución del S.O. es **Debian** o **RedHat**. A partir de dicha configuración, se ejecutará el script de manera acorde.
89
90 **IMPORTANTE**: El ant job definido utiliza **chkconfig** (bajo RedHat) o **update-rc.d** (bajo Debian) para incluir el script al iniciar el sistema. Adicionalmente, el script de inicio automático utiliza la funcionalidad **start-stop-daemon** para lograr esta tarea. Por consiguiente, es importante garantizar que estas aplicaciones se encuentran instaladas en el equipo previamente a utilizar el deployAutostartDaemon.
91
92 = Generación de una nueva instancia SaaS {{id name="generación-de-una-nueva-instancia-saas" /}}=
93
94 A fin de poder generar una nueva instancia de Libertya SaaS, se cuenta con el script **newInstance.sh**. El mismo se apoya en los templates de deploy existentes, en función de las necesidades funcionalidades del caso (versión de LY CORE, localización, etc.). Al invocar el script se deberá seleccionar el template de deploy correspondiente. Por ejemplo:
95
96
97 {{code}}
98 **newInstance.sh 8 ../deploy/Core15.03\_LocAR1.5\_AttributeSet1.2.xml**
99 {{/code}}
100
101 El script recibe entonces 2 argumentos:
102
103 1. Número de instancia a generar. Esto definirá el nombre del directorio de Libertya (por ejemplo ServidorOXP8) y el nombre de la base de datos (por ejemplo libertya_prod8).\\
104 1. Ubicación del archivo de deploy con las actividades a realizar. En el ejemplo se instalará la versión 15.03 de Libertya CORE, más la localización Argentina, versión 1.5, más Conjunto de Atributos, versión 1.2. Los templates de deploy actualmente existentes residen en el directorio **/opt/lysaas/deploy**
105
106 El script principal en conjunto con el script de instalación realizan todas las actividades necesarias:
107
108 1. Copia del template correspondiente desde el repositorio de binarios\\
109 1. Copia del template correspondiente desde el repositorio de BBDD\\
110 1. Instalación de componentes adicionales\\
111 1. Configuraciones a nivel BBDD si correspondiera\\
112 1. Configuración del servidor\\
113 1. Shifting de puertos\\
114 1. Configuración automática de inicio de JBoss al iniciar el equipo
115
116 Lógicamente, las actividades a realizar variarán según el archivo de deploy seleccionado. Una vez finalizadas las actividades, el último paso del script principal es el de dejar iniciado el servidor de la nueva instancia mediante **//service libertyad8 start//.**
117
118 **NOTA**: el nombre base de la base de datos se encuentra definido en el archivo general de configuración **/opt/lysaas/cfg/GeneralConfiguration.cfg**, bajo la propiedad **instanceBaseDBName** (por ejemplo libertya_prod, al cual luego se concatenará el numero de instancia)
119
120 = Instalación / actualización de un componente en una instancia SaaS {{id name="instalación-actualización-de-un-componente-en-una-instancia-saas" /}}=
121
122 A fin de poder actualizar una instancia de Libertya SaaS, se cuenta con el script **installUpgrade.sh**. El mismo se apoya en los templates de deploy existentes, en función de la disponibilidad de componentes existente. Al invocar el script se deberá seleccionar el template de actualización correspondiente. Por ejemplo:
123
124
125 {{code}}
126 **installUpgrade.sh 3,5,8 ../upgrade/Install\_MsvInvoicing1.0.xml**
127 {{/code}}
128
129 El script recibe entonces 2 argumentos:
130
131 1. Número de instancia/s a actualizar (si es más de una, deberán estar separadas por coma **sin dejar espacios**).\\
132 1. Ubicación del archivo de deploy con las actividades a realizar. En el ejemplo se instalará la versión 1.0 de Facturación Masiva. Los templates de actualización actualmente existentes residen en el directorio **/opt/lysaas/upgrade**
133
134 El script principal en conjunto con el script de actualización realizan todas las actividades necesarias:
135
136 1. Detener el servidor correspondiente según el número de instancia\\
137 1. Copia de los binarios que sean necesarios\\
138 1. Instalación del componente a nivel BBDD\\
139 1. Configuración adicionales post-instalación\\
140 1. Reiniciar el servidor
141
142 = Ejecución de sentencias SQL {{id name="ejecución-de-sentencias-sql" /}}=
143
144 Para la ejecución de sentencias SQL a una o varias instancias, es posible utilizar el script **queryFile.sh**. El mismo permite definir las instancias sobre las cuales ejecutar la o las sentencias SQL, las cuales deben estar almacenadas en un archivo para tal fin. Por ejemplo:
145
146
147 {{code}}
148 **queryFile.sh 3,5,8 /tmp/sentences.sql**
149 {{/code}}
150
151 El script recibe entonces 2 argumentos:
152
153 1. Número de instancia/s a actualizar (si es más de una, deberán estar separadas por coma **sin dejar espacios**).\\
154 1. Ubicación del archivo SQL con las sentencias a ejecutar.
155
156 El script ejecutará el conjuno de sentencias especificado en el archivo sobre cada una de las instancias especificadas como argumento.
157
158 = Backup de instancias {{id name="backup-de-instancias" /}}=
159
160 Es posible realizar copias de respaldo de las instancias mediante una simple invocación:
161
162 **backupInstance.sh <número_de_instancia>**
163
164 El proceso se encargará de:
165
166 1. Generar, comprimir y copiar a destino un dump de la base de datos para la instancia en cuestión\\
167 1. Comprimir y copiar a destino el ServidorOXP para la instancia en cuestión\\
168 1. Comprimir y copiar a destino el directorio de factura eletrcónica para la instancia en cuestión (si es que este existe)
169
170 La ubicación destino es configurada en el archivo GeneralConfiguration.cfg, bajo las siguientes propiedades:
171
172 *. backupUser: Usuario del host en donde se almacenan los backups\\
173 *. backupHost: Host en donde se almacenan los backups\\
174 *. backupPort: Port de conexion en donde se almacenan los backups\\
175 *. backupDir: Ubicacion en donde se almacenan los backups\\
176 *. backupDateSuffix: Sufijo de fecha de los archivos de backup
177
178 La propiedad //backupDateSuffix// es un valor que respeta java.text.SimpleDateFormat y permite especificar un sufijo de fecha para cada archivo, lo cual brinda completa libertad en cuanto al número de backups por instancia a salvaguardar.
179
180 Por ejemplo, si no se especifica sufijo alguno y se realizaran backups diarios, el backup será pisado diariamente. Si por el contrario se indca que el sufijo sea el día de la semana, se tendrá 7 backups por instancia (que luego serán pisados con el correr del tiempo por nuevas versiones), y si se indica día del mes, se tendrán 31 backups por instancia.
181
182 **IMPORTANTE:** Debe garantizarse que todas las condiciones se cumplan para realizar la copia de respaldo, o sea: haber generado el usuario en el host destino, permitir acceso SSH mediante el port correspondiente, haber generado el directorio de backups, etc.
183
184 **IMPORTANTE:** Es necesario haber configurado previamente un acceso desatendido (sin prompt de password) al equipo bajo destino para usuario backupUser. Para ésto, en el equipo SaaS deben ejecutarse los siguientes comandos:
185
186 ssh-keygen -t rsa (en caso de que no exista clave)\\cat /root/.ssh/id_rsa.pub | ssh root@<//backupHost>// ‘cat >> /root/.ssh/authorized_keys’
187
188 Cabe mencionar que debe existir el directorio /root/.ssh en el equipo destino.
189
190 = Manual del Desarrollador {{id name="manual-del-desarrollador" /}}=
191
192 = Definicion de nuevas actividades de deploy y/o upgrade {{id name="definicion-de-nuevas-actividades-de-deploy-yo-upgrade" /}}=
193
194 Para la definición de nuevas actividades, simplemente se deben seguir los lineamientos generales de actividades ant, basándose en alguna actividad preexistente.
195
196 Cabe destacar que existe un número predefinido de etapas que se ejecutarán, tanto en un deploy como en un upgrade, a saber:
197
198 1. Deploy
199 11. deployDatabase: creación de la bbdd a partir de un dump\\
200 11. deployBinaries: copia de los archivos binarios (core, componentes, etc.)\\
201 11. installPlugins: instalación de los componentes (si corresponde) mediante PluginInstall\\
202 11. configureInstance: eventuales actividades adicionales\\
203 1. Upgrade
204 11. deployBinaries: actualización de archivos binarios (ej. nuevo componente)\\
205 11. installPlugins: instalación de los componentes (si corresponde) mediante PluginInstall\\
206 11. configureInstance: eventuales actividades adicionales
207
208 Es importante además respetar la utilización del archivo de configuración con la estructura de archivos disponibles en el template llamado **//TemplateDefinition.cfg//**, **reflejando en dicho archivo cualquier modificación de la estructura de archivos del template**.
209
210 == **Contenido TemplateDefinition.cfg** {{id name="contenido-templatedefinition.cfg" /}}==
211
212 Este archivo de configuración es parte de la configuracion general de Libertya SaaS. En el mismo se especifican las ubicaciones de los recursos disponibles en la estructurade template disponibles para su utilización en nuevas instancias o actualizaciones. Las actividades correspondientes deberán apoyarse en éste al momento de referenciar recursos del template. **Toda modificación en la estructura de archivos del template debera ser reflejada en este archivo de configuración.** A continuación se presenta una parte del mismo a modo de ejemplo:
213
214 # ====================================================\\# ============= BASES DE DATOS DE DEPLOY =============\\# ====================================================
215
216 # BBDD Libertya 15.03 Internacional\\db.core.15.03i.dump=db/core/15.03/dump_libertya_1503.sql
217
218 # BBDD Libertya 15.03 LocaleAR\\db.core.15.03ar.dump=db/core/15.03/dump_libertya_1503ar.sql
219
220 # ==================================================\\# ============= BINARIOS LIBERTYA CORE =============\\# ==================================================
221
222 # Libertya CORE 15.03\\bin.core.15.03.ServidorOXP=bin/core/15.03/ServidorOXP_V15.03.zip
223
224 # =======================================\\# ============= COMPONENTES =============\\# =======================================
225
226 # ——————-\\# — Libertya WS —\\# ——————-
227
228 # Libertya WS, version 50 la cual se apoya en Libertya CORE 15.03\\bin.plugin.LYWS.1503.50=bin/components/lyws/1503.50/org.libertya.ws.axis.war_r50GC.zip