Ir al contenido principal

WSO2 Update Tool | Cómo aplicar parches y actualizaciones con el modelo 2.0

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:

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.