ZOWE es un software de código abierto que sirve para interactuar con z/OS usando interfaces más modernas (REST API). La verdad es que tengo curiosidad por comprobar por mí mismo lo que aporta este software y cómo funciona, por lo tanto, vamos a implementarlo.
Antes de empezar, hay un “trial” de 3 días de ZOWE en la web de IBM que es interesante (además, podéis probar a hacer esta entrada en ese sistema. Hay que tener alguna cosa en cuenta, pero es posible y funciona bien):
https://www-01.ibm.com/events/wwe/ast/mtm/zowe.nsf/enrollall?openform
También me gustaría recomendar unos videos de Youtube del canal de Bill Pereira:
Zowe - Demos
https://www.youtube.com/playlist?list=PLM85SdWDWtebJ13Kww8rxKlDlWe72D7b3
Descargaremos ZOWE desde el siguiente enlace:
En este caso, se trata de la versión 1.9.0 que es la que permite la instalación por SMPE. Además, en una entrada posterior, podría hacer subida de versión.
Para la instalación, usaremos la siguiente documentación:
https://docs.zowe.org/stable/Zowe_Documentation.pdf
Para instalarlo usando SMPE:
https://docs.zowe.org/stable/user-guide/install-zowe-smpe.html
Antes de instalarlo, hay que cumplir los siguientes requisitos:
https://docs.zowe.org/stable/user-guide/systemrequirements.html
- z/OS y z/OSMF 2.2 o posterior
- js 6.14.4, v8.x (excepto v8.16.1) y v12.x o posterior.
- Java 8
- 833 MB de espacio para el zFS (File System)
En el caso de Node.js, la información es un poco contradictoria porque según el enlace que mires indica esas versiones o puede indicar la versión 8.16.0 y posteriores.
NOTA: Se puede descargar Java 8 para z/OS desde el siguiente enlace:
https://developer.ibm.com/javasdk/support/zos/
En mi caso, ya dispongo de z/OSMF 2.3, por lo tanto, empezaré instalando Node.js.
https://emuframe.com/index.php/116-z-os-management-facility-2-3-z-osmf-instalacion
Usaré este enlace como referencia:
https://zowe.github.io/docs-site/latest/user-guide/install-nodejs-zos.html
Node.js tiene una versión de prueba que NO se puede usar en entornos de Producción.
Lo descargamos desde aquí:
https://www.ibm.com/products/sdk-nodejs-compiler-zos/pricing
Para Node.js también es necesario tener el servicio de criptografía arrancado (ICSF). En el caso de no tenerlo configurado, podemos seguir los siguientes pasos:
https://docs.zowe.org/stable/user-guide/install-nodejs-zos.html#configuring-icsf
En mi caso ya tengo el servicio de criptografía arrancado, por lo tanto, empezaré transfiriendo Node.js al sistema z/OS.
Utilizaré la versión “ibm-6.17.0.0-trial-node-v6.17.0-os390-s390x.pax.Z” que no es posible descargar, pero la tenía guardada desde hace un tiempo. El motivo de usar esta versión es que no requiere ninguna PTF para z/OS 2.3. Versiones más recientes de Node.js requieren esas PTFs instaladas y, en este momento, no dispongo de ellas.
Siento no poder hacer el tutorial con una versión más reciente, pero tengo que ajustarme a lo que tengo disponible. ¡Espero que funcione!
Seguiremos las siguientes instrucciones para la instalación:
https://docs.zowe.org/stable/user-guide/install-nodejs-zos.html#installing-the-pax-edition-of-node-js-z-os
Empezamos transfiriendo el software al sistema. Para ello, voy a crear un nuevo zFS que contenga el producto (podemos crearlo con bastante espacio por si queremos tener dos versiones a la vez). Lo montaré en el punto /usr/lpp/nodejs. Además crearé otro directorio llamado “versions” en “/usr/lpp/nodejs/versions” para subir ahí el software.
NOTA: Podéis descargar el job al principio de la entrada.
Terminará correctamente.
** ES NECESARIO AÑADIR ESTE MONTAJE A BPXPRMxx PARA AÑADIRLO CUANDO SE HAGA IPL
MOUNT FILESYSTEM('IBMUSER.ZFS.NODEJS')
MOUNTPOINT('/usr/lpp/nodejs')
MODE(RDWR) /* can be MODE(READ) */
TYPE(ZFS) PARM('AGGRGROW') /* zFS, with extents */
Ahora ya podemos transferir el software. Como en otras ocasiones, usaremos CMD de Windows.
ftp XXX.XXX.XXX.XXX
cd /usr/lpp/nodejs/versions
binary
put node-v6.17.0.pax.Z
Entramos en OMVS (TSO OMVS) para descomprimir el producto.
Vamos a la ruta a la que subimos el software:
cd /usr/lpp/nodejs/versions
Descomprimimos el producto con el comando:
pax -rf node-v6.17.0.pax.Z -x pax
Una vez descomprimido, podemos comprobar los ficheros. Más adelante, también podemos borrar el fichero comprimido, por si queremos tener espacio para subir una nueva versión en el futuro.
NOTA: De forma opcional, podemos renombrar el directorio por un nombre más corto.
Ahora vamos a establecer las variables “PATH” y “NODE_HOME”.
Comandos:
export PATH=/usr/lpp/nodejs/versions/node-v6.17.0/bin/:$PATH
export NODE_HOME=/usr/lpp/nodejs/versions/node-v6.17.0
Comprobamos la versión con el comando:
node --version
NOTA: De forma opcional podemos subir otras versiones de Node.js al mismo directorio “versions” (si lo hemos creado con suficiente espacio, claro).
En mi caso, si intento ejecutar la versión 8.17.0, fallará por falta de PTFs. El error será:
CEE3501S The module CXXRT64 was not found.
En el siguiente enlace se indican las PTFs necesarias (UI61308, UI61375 y UI61747 para z/OS 2.3):
https://www.ibm.com/support/knowledgecenter/SSTRRS_8.0.0/com.ibm.nodejs.zos.v8.doc/smpe.htm
Seguimos con la instalación de ZOWE. Seguiremos los pasos indicados en:
https://docs.zowe.org/v1-9-x/user-guide/install-zowe-smpe.html#download-the-zowe-smp-e-package
Empezamos creando el zFS que contendrá el software para la instalación.
NOTA: Podéis descargar el job al principio de la página.
Terminará correctamente.
Ahora ya podemos transferir el software. Como la vez anterior, usaremos CMD de Windows.
ftp XXX.XXX.XXX.XXX
cd /etc/zowe
binary
put AZWE001.pax.Z
Ya hemos transferido el producto, ahora lo extraemos.
NOTA: Podéis descargar el job al principio de la entrada. CUIDADO con las mayúsculas, usad “CAPS OFF”.
Terminará correctamente.
Tendremos lo siguiente:
Ahora vamos a modificar y ejecutar los jobs necesarios para la instalación.
Entramos en la librería “**.ZOWE.AZWE001.F1”.
Empezamos por el job ZWE1SMPE.
Añadimos una cabecera al job y editamos la variables: CSIHLQ, TZONE, DZONE, CSIVOL.
En mi caso, tuve que quitar el comentario en el parámetro “VOLUMES” al no usar SMS.
Terminará correctamente.
Entramos al job ZWE2RCVE. Esto hará el “receive” del producto.
Añadimos una cabecera al job y editamos las variables: Ñhlq y Ñcsihlq.
Ejecutamos el job.
Terminará correctamente.
Entramos el job ZWE3ALOC y añadimos una cabecera.
Editamos las variables: Ñthlq, Ñtvol, Ñdhlq, Ñdvol
Además, si no usamos SMS, quitaremos el comentario de las líneas que hacen referencia al volumen (son varias).
Una vez hecho, lo ejecutamos.
Terminará bien.
Vamos al job ZWE4ZFS y añadimos la cabecera. Este job creará un ZFS y lo montará en la ruta “/usr/lpp/zowe”
Editamos los parámetros: Ñfsdsn, Ñfsvol (si no usais SMS), Ñdsprefix y -PathPrefix- (este lo sustituyo por /).
Una vez hecho, ejecutamos el job.
Terminará correctamente.
Para evitar que se nos olvide, lo añadimos al fichero BPXPRMxx.
MOUNT FILESYSTEM('ZOWE.V190.ZFS')
MOUNTPOINT('/usr/lpp/zowe')
MODE(READ) /* can be MODE(READ) */
TYPE(ZFS) PARM('AGGRGROW') /* zFS, with extents */
*Siguiendo el manual, el zFS de ZOWE debe ser READ ONLY.
Seguimos con el job ZWE5MKD.
Editamos los parámetros: Ñdsprefix y -PathPrefix-. Deben coincidir con los usados en el job
Terminará correctamente.
Entramos en el job ZWE6DDEF y añadimos la cabecera.
Editamos los parámetros: Ñcsihlq, Ñtzone, Ñdzone, Ñthlq, Ñdhlq, Ñtvol, Ñdvol.
Según bajamos en por el job, iremos quitando los comentarios del parámetro VOLUME para indicar el mismo que usamos en el job ZWE3ALOC.
Seguimos bajando hasta el último paso en el que se permite cambiar la ruta del directorio Unix. Simplemente hay que modificar el parámetro -PathPrefix- por el que usamos en el job anterior.
Una vez hecho, ejecutamos el job.
Terminará correctamente.
Vamos al job ZWE7APLY y añadimos la cabecera.
Ajustamos las variables: Ñcsihlq y Ñtzone
Ejecutamos la primera vez el job con APPLY CHECK.
Ahora lo volvemos a ejecutar sin “CHECK”.
Terminará bien.
Veremos que las librerías TARGET, ahora tienen contenido.
Por último, entraremos en el job ZWE8ACPT.
Ajustamos las variables: Ñcsihlq y Ñtzone
Ejecutamos la primera vez el job con ACCEPT CHECK.
Terminará bien.
Ahora lo ejecutamos de nuevo sin “CHECK”.
Terminará correctamente.
Ahora empezaremos la parte de configuración del producto.
En el siguiente enlace aparecen los pasos para configurar la parte de seguridad.
https://docs.zowe.org/v1-9-x/user-guide/configure-zos-system.html#user-ids-and-groups-for-the-zowe-started-tasks
Vamos a la librería **. SZWESAMP y entramos en el job ZWESECUR. Añadimos la cabecera.
En el parámetro PRODUCT indicamos el producto de seguridad que tenemos. En mi caso, RACF.
El resto de parámetros los dejaré por defecto.
Antes de ejecutar el job, revisadlo para confirmar que se ajusta a vuestra instalación.
Terminará correctamente.
El siguiente paso es para crear los certificados para acceso por https.
https://docs.zowe.org/v1-9-x/user-guide/configure-certificates.html#generate-certificate-with-the-default-values
Copiamos el fichero de ejemplo “/usr/lpp/zowe/bin/zowe-setup-certificates.env” en “/etc/zowe/”. Si este directorio no existe, se crea.
Ahora lo editamos para ajustar los parámetros. En mi caso, puse HOSTNAME y IPADDRESS correspondientes (para la IP con TSO NETSTAT HOME, para el hostname, más adelante en esta instalación explico cómo comprobarlo) y VERIFY_CERTIFICATES a false.
Entramos en OMVS (TSO OMVS) y vamos a la carpeta de ZOWE:
cd /usr/lpp/zowe/bin/
Ejecutamos el script para crear los certificados con los valores por defecto.
./zowe-setup-certificates.sh –p /etc/zowe/zowe-setup-certificates.env
En mi caso tardó un rato en generarlo (unos 30 minutos, creo).
Ahora vamos a crear el directorio para nuestra nueva instancia.
https://docs.zowe.org/v1-9-x/user-guide/configure-instance-directory.html
Lo primero es hacer un zFS y montarlo en la ruta que queramos.
NOTA: Podéis descargar el job al principio de la página.
Lo añadimos en fichero BPXPRMxx correspondiente:
MOUNT FILESYSTEM('IBMUSER.ZFS.ZOWE.INSTANCE')
MOUNTPOINT('/usr/lpp/zowe_instance')
MODE(RDWR) /* can be MODE(READ) */
TYPE(ZFS) PARM('AGGRGROW') /* zFS, with extents */
Entramos en OMVS (TSO OMVS) y vamos a la carpeta de ZOWE:
cd /usr/lpp/zowe/bin/
Ejecutamos el script para crear los certificados con los valores por defecto.
./zowe-configure-instance.sh –c /usr/lpp/zowe_instance
Esperamos a que termine.
Ajustamos el fichero de configuración que ha creado.
/usr/lpp/zowe_instance/instance.env
En mi caso, edito el parámetro NODE_HOME para indicar la ruta de la versión que hemos puesto. También desconocía la posible ruta por defecto para NODEjs, ni que hubiese una versión ya instalada.
Ajustamos la IP a la de nuestro sistema y el HOST.
El resto de opciones las dejamos por defecto.
Hasta aquí la primera parte de la configuración. En la segunda parte terminaremos de instalar el producto.