En este artículo se hablará de cómo aplicar parches y cómo hacer actualizaciones en WSO2 Update Tool modelo 2.0
Seguiremos el siguiente índice:
Conceptos
-
Update: es una colección de corrección de errores, nuevas características, correcciones de seguridad o mejoras. Los updates se distribuyen a través de levels. Cuando un update es aplicado a un producto, el level del producto se incrementa en uno.
-
Hotfix: son correcciones inmediatas proporcionadas para bugs reportados por clientes. Un hotfix es entregado en un archivo zip, se recomienda su aplicación en incidentes críticos que no han sido corregidos en updates anteriores.
Nota: los comandos cambian de acuerdo al sistema operativo utilizado:
-
GNU/Linux:
{WSO2_HOME}/bin/wso2update_linux
-
MacOS:
{WSO2_HOME}/bin/wso2update_darwin
-
Windows:
{WSO2_HOME}/bin/wso2update_windows.exe
Requisitos
La herramienta de actualización de WSO2 requiere salida a internet para las siguientes direcciones desde los equipos en los que se encuentran instalados los productos de WSO2:
Host |
Puerto |
443 |
|
443 |
|
443 |
Preparación
En este escenario se actualizará Identity Server 5.10.0 en un sistema Debian GNU/Linux 10.0 y con la versión 1.8.051 del JDK. Previo a iniciar el proceso de actualización es recomendable validar la versión actual de la herramienta de actualización de WSO2 a través del siguiente comando que mostrará la versión instalada:
{WSO2_HOME}/bin/wso2update_linux version
Iniciamos sesión para confirmar si existe una versión más reciente de la herramienta y si es así actualizarla:
{WSO2_HOME}/bin/wso2update_linux -u user@user.com -p password123
Nota: los parámetros -p y -u son opcionales
La última versión de la herramienta puede ser descargada manualmente desde la siguiente URL: https://product-dist.wso2.com/downloads/update-tool/release/update.zip
Cambio al modelo 2.0
Para realizar una actualización a través de la nueva herramienta de WSO2 es necesario realizar el cambio de modelo, lo anterior implica actualizar el producto de WSO2 al último timestamp disponible
Corroboramos que existen actualizaciones disponibles para nuestra producto de WSO2
{WSO2_HOME}/bin/wso2update_linux check
Nota: Al realizar esta acción se eliminará la carpeta wum y los archivos que se encuentran en dicha carpeta {WSO2_HOME}/updates/wum
Al venir del modelo anterior (WUM) el level del producto será -1 (wso2is-5.10.0.0) también se mostrará el último level disponible, hasta el momento 49 junto con el número de actualizaciones disponibles (193) y el número de actualizaciones críticas (8)
El siguiente paso es actualizar el producto de WSO2 al último timestamp disponible utilizando la herramienta de wum.
Al completar la actualización actualizamos el producto con el último level disponible utilizando la WSO2 Update Tool
{WSO2_HOME}/bin/wso2update_linux -b /datos/backup/ -u user@user.com
Nota: Si no se actualiza el modelo pueden ocurrir errores al buscar o realizar actualizaciones
Actualizar productos
Conocer el level actual del producto
{WSO2_HOME}/bin/wso2update_linux check
Validar si existen actualizaciones disponibles
{WSO2_HOME}/bin/wso2update_linux check
Actualizar a un level (2) específico:
{WSO2_HOME}/bin/wso2update_linux -l 2 -b /datos/backup/
Actualizar productos (WUM diff)
En el nuevo modelo de actualización existe una versión similar al wum diff que permite crear un update para actualizarlo posteriormente:
Crear un update que comienza en el level 1 y termina en el level 2
-e, –end-level string Ending update level
-s, –start-level string Starting update level
{WSO2_HOME}/bin/wso2update_linux create-update -s 1 -e 2
Aplicar un update creado previamente
{WSO2_HOME}/bin/wso2update_linux apply-update <ruta_update>
Revertir una actualización
Dentro de la carpeta /datos/backup/backup (especificada con el parámetro -b) se crearán las carpetas con los respaldos creados:
Revertir un update y restaurar el último backup generado
{WSO2_HOME}/bin/wso2update_linux --revert
HOTFIX
Un hotfix es una actualización proporcionada por WSO2 para solventar incidentes críticos reportados por clientes a través de un ticket, el equipo de WSO2 proporcionará un archivo .zip
Para aplicar el hotfix se debe ejecutar el siguiente comando indicando la ruta del archivo zip
{WSO2_HOME}/bin/wso2update_linux apply-hotfix <HF_zip>
Una vez que el hotfix sea liberado en un level se recomienda desinstalar el hotfix y actualizar el producto al level indicado:
{WSO2_HOME}/bin/wso2update_linux --revert-hotfix
Portal updates
Al instalar una actualización en un producto de WSO2 se registrará en el portal de actualizaciones de WSO2: https://updates-info.wso2.com
En el menú Browse Account se muestran los productos instalados, con la última actualización instalada y la actualización recomendada:
En el menú Update levels se pueden buscar las actualizaciones disponibles por producto y level
Al seleccionar Download se genera un reporte en formato PDF con las actualizaciones seleccionadas, instrucciones, archivos modificados, eliminados, etc.
Al seleccionar una actualización se muestra información del issue resuelto
Resolver conflictos
Si hay algún archivo como puede ser css, js, jsp, etc. que ha sido modificado, habrá conflicto al aplicar una actualización, por lo que se requerirá realizar un merge.
Nota: WSO2 recomienda NO modificar los archivos jar y car originales
WSO2 recomienda mantener la misma identación (spaces/tabs) en archivos jag, js o json, de lo contrario pueden ocurrir conflictos
En el siguiente ejemplo se modificaron los archivos wso2-default.min.css y pom.properties dentro del authenticationendpoint, al realizar un update ocurren conflictos con los archivos
Cuando existan conflictos al intentar actualizar un producto se crearán 3 versiones del archivo en conflicto Ej.:
-
wso2-default.min.css: archivo actual con modificaciones instalado en el producto de WSO2
-
wso2-default.min.css.new: nueva versión del archivo con los cambios descargados en el último level
-
wso2-default.min.css.original: versión original del archivo sin modificaciones ni las últimas actualizaciones disponibles
Se deberá crear un nuevo archivo wso2-default.min.css.final se recomienda que contenga los nuevos cambios del archivo .new, estos cambios se pueden obtener a través de un diff
diff wso2-default.min.css.new wso2-default.min.css.original
Al concluir se debe volver a ejecutar la actualización nuevamente con el parámetro –continue
Esto eliminará los archivos .new, .original y .final reemplazando el archivo wso2-default.min.css con wso2-default.min.css.final.
Docker
La WSO2 Update Tool permite crear una imagen de docker con las actualizaciones y modificaciones realizadas de forma más simple utilizando el siguiente comando:
{WSO2_HOME}/bin/wso2update_linux create-docker
Errores comunes
WSO2 Update Tool reemplazara los templates (*.j2) modificados, eliminando cualquier cambio agregado. Al aplicar la actualización no habrá conflicto con los archivos, por lo que no se visualizan errores o se avisa de la eliminación de los cambios.
Si WSO2 Update Tool no puede encontrar un archivo que ha sido eliminado del producto (Ej. wso2-default.min.css) no permitirá avanzar con la actualización. Esto devolverá un conflicto hasta que exista el archivo.
WSO2 Update Tool no tiene soporte para arquitecturas arm.