En esta segunda parte terminaremos la configuración de ZOWE 1.9.0 y veremos un poco el producto para conocerlo. Además, comentaré algunos errores que he encontrado durante el proceso debido al emulador.
Aprovecho para recordar que 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
Vamos a la última parte de la configuración antes de arrancar el producto.
Seguiremos los pasos indicados en:
https://docs.zowe.org/v1-9-x/user-guide/configure-xmem-server.html
La primera parte habla de copiar los módulos de la imagen a una librería de usuario. Supongo que esa parte es necesaria cuando se sigue el otro procedimiento de instalación. En este caso, yo los dejaré donde están.
Ahora copiamos los miembros ZWESISTC y ZWESASTC de la librería **.SZWESAMP a nuestra PROCLIB.
Editamos ambas tareas para indicar la librería de módulos y parmlib correctas. En mi caso, ZOWE.V190.SZWEAUTH y ADCD.Z23B.PARMLIB.
Vamos al miembro ZWESISCH de la librería **.SZWESAMP y copiamos el contenido el miembro SCHEDxx correspondiente de nuestra PARMLIB.
Activamos la configuración de forma dinámica con el comando:
/SET SCH=xx
Ahora añadimos la librería de módulos a APF.
SETPROG APF,ADD,DSNAME=ZOWE.V190.SZWEAUTH,VOLUME=PRD004
Para sistemas con SMS:
SETPROG APF,ADD,DSNAME=ZWES.SISLOAD,SMS
Aparecerá la confirmación.
Además, lo añadimos en el miembro PROGxx de PARMLIB correspondiente.
El manual indica lo siguiente:
Step 5: Configure an IVSF cryptographic services environment
To generate symmetric keys, the user ZWESVUSR who runs ZWESVSTC requires READ access to CSFRNGL in the CSFSERV class.
En mi caso, en RACF ya lo tenía definido como UNIVERSAL ACCESS READ, por lo tanto, entiendo que debería ser suficiente.
Por último, copiamos el fichero de parámetros ZWESIP00 de **. SZWESAMP a nuestra PARMLIB (la que pusimos al editar las STCs).
¡Uno de los momentos más esperados! Arrancar “cross memory server”.
/S ZWESISTC,REUSASID=YES
También es posible arrancarlo con el parámetro COLD (si estamos haciendo un cambio de versión o la primera vez, por ejemplo):
/S ZWESISTC,PARM=’COLD’
Aparentemente, ha arrancado.
Ahora vamos a preparar la STC de ZOWE.
Copiamos el miembro ZWESVSTC de la librería **.SZWESAMP a nuestra PROCLIB.
En mi caso, voy a editar la tarea para indicar la ruta de la instancia (podríamos indicarla con el comando de arranque también).
Arrancamos la tarea con el comando:
/S ZWESVSTC
Si queremos indicar la instancia podemos usar el comando:
/S ZWESVSTC,INSTANCE='$ZOWE_INSTANCE_DIR'
Arrancará correctamente pero tardará unos 30 minutos más o menos (en mi caso, al ser un entorno emulado). Podemos comprobar las tareas ZWE* en la opción DA.
Durante ese tiempo, estará consumiendo el 100% de CPU y casi no se podrá trabajar con el sistema. Después bajará el consumo, pero seguirá con el arranque.
Simplemente dejamos que haga sus procesos y pasado ese tiempo, todo será estable. Para confirmar que ha arrancado todo, en un sistema emulado que normalmente no debería tener carga, se puede comprobar que el uso de CPU es mínimo (1% o 2%, por ejemplo).
Lo que más suele tardar parece que es el “API Discover”.
Todos estos procesos que usan java (z/OSMF, ZOWE, etc.) suelen tardar bastante en ejecutar en entornos emulados.
Arrancado esta tarea podemos encontrar errores del tipo:
Error 0: Could not contact z/OS MF on 'https://S0W1.DAL-EBIS.IHOST.COM:00443/zosmf/info' - Error: connect ETIMEDOUT xxx.xxx.xxx.xxx:443
Error 1: ZOWE_EXPLORER_HOST
Esto ocurre porque debemos configurar correctamente el nombre del host en z/OS (si no lo teníamos hecho anteriormente).
Para arreglarlo, simplemente buscamos la tarea RESOLVER para saber los parámetros que usamos.
NOTA: Es posible que el sistema en el que estamos no tenga tarea RESOLVER en PROCLIB, pero si esté arrancado (se puede arrancar con el arranque de OMVS). Se puede revisar los parámetros con un comando que veremos más abajo.
Nos fijamos en el parámetro GLOBALIPNODES. Debemos editar ese fichero.
También podemos usar el comando: F RESOLVER,DISPLAY
Simplemente hay que poner la IP del sistema en nombre correspondiente.
Refrescamos la configuración del RESOLVER con el comando:
F RESOLVER,REFRESH
Si hacemos el comando: TSO PING S0W1.DAL-EBIS.IHOST.COM debería responder correctamente y al arrancar de nuevo ZOWE debería hacerlo sin errores.
Si usamos la IP y el puerto 8544 (parámetro ZOWE_ZLUX_SERVER_HTTPS_PORT del fichero instance.env), deberíamos acceder a la web.
NOTA: Primero entramos usando la IP para ver los errores que nos podemos encontrar.
https://192.168.1.14:8544
Si intentamos abrir JES Explorer, dirá que no puede encontrar el servidor s0w1.dal-ebis.ihost.com
Esto ocurre porque no puede resolver ese nombre, por lo tanto, tenemos que definirlo en el fichero “host” del sistema cliente para indicar la IP correspondiente.
En Windows se encuentra en la ruta “C:\Windows\System32\drivers\etc” y en Ubuntu (por ejemplo) hay que editar “/etc/host”.
Ahora si entramos usando la dirección https://s0w1.dal-ebis.ihost.com:8544 veremos el error (usando Firefox y Chrome):
Código de error: SSL_ERROR_NO_CYPHER_OVERLAP
Esto ocurre por el tipo de cifrado. Afecta a los navegadores Firefox y Chrome. Con Microsoft Edge, aparentemente, funciona bien, pero no todo) y por este motivo no podré profundizar demasiado con este producto.
En mi caso, no he conseguido arreglarlo porque parece más bien un problema del emulador de Mainframe que uso yo (también puede ser un error en mi configuración, pero si intentamos acceder a API Catalog, el software se cae. Creo que es problema del tipo de CIPHER.).
En estos enlaces indican cómo arreglarlo para el emulador de ZD&T (o ZPDT).
https://github.com/zowe/zlux/issues/144
https://github.com/zowe/api-layer/issues/565
De forma opcional, podemos añadir los certificados en el navegador. Lo pongo por curiosidad, pero, en principio, no es necesario.
En pasos anteriores, generamos unos certificados autofirmados en la ruta “/global/zowe/keystore”.
Lo vamos a descargar por FTP para instalarlos en el sistema.
ftp xxx.xxx.xxx.xxx
cd '/global/zowe/keystore/local_ca'
get localca.cer
Una vez descargado, hacemos doble clic y pinchamos en “Instalar certificado…”. Haciendo esto, lo reconocerá en Google Chrome y Microsoft Edge, pero no en Firefox (lo veremos después).
Podemos instalarlo para el usuario o para el equipo.
Pinchamos en Examinar para indicar dónde guardarlo.
Debemos añadirlo en “Trusted Root Certification Authorities”.
Una vez hecho, pulsamos Aceptar, Siguiente y Finalizar.
Para importarlo en Firefox, vamos a Opciones -> “Privacidad & Seguridad”. Al final de la página veremos el botón “Ver certificados”.
Pulsamos en “Importar” y añadimos el mismo certificado.
Marcamos en “Confiar en esta CA para identificar sitios web”.
Ya tendremos el certificado.
Al acceder la web, aparecerá como “Conexión segura”.
Por último, “daremos una vuelta rápida” por esta web para no alargar mucho más la entrada. Para tener todas las opciones disponibles, ya que debido al emulador y el cifrado tuve muchos errores, usaré Microsoft Edge.
La interfaz será similar a la de un sistema operativo (barra de tareas, menú de aplicaciones, ventanas, notificaciones) y tendremos distintas aplicaciones que vienen con el producto.
Podemos la aplicación que emula un terminal 3270.
Si abrimos otra aplicación como JES Explorer, veremos que es similar a SDSF para poder ver las salidas de los jobs y ejecutarlos.
Nos pedirá el usuario.
Podremos usar varios filtros para ver las salidas que queramos.
Si hacemos clic en la salida de algún job, podremos ver directamente una parte de la salida.
Si hacemos clic con el botón derecho, tendremos las opciones: Open (para ver la salida completa), Purge Job (eliminar la salida) y Get JCL (ver el job y poder submitirlo).
Al ver una salida, hay algunas palabras clave que da una ayuda.
En el caso de la palabra “TIME”, la ayuda no es muy adecuada… porque según donde aparezca esa palabra, hace referencia a una cosa o a otra.
Ejemplo de una parte de la salida.
Ejemplo del job ejecutado (igual que dar SJ). A la derecha aparecerá el botón “submit” para ejecutarlo.
Si abrimos la utilidad “MVS Explorer”, encontraremos algo similar a buscar por la opción 3.4 de ISPF.
Tendremos el listado de miembros que contiene un dataset (color azul).
Podremos indicar el tipo de fichero que estamos tratando para que remarque las palabras clave (color rojo).
Además, tiene una opción para abrir el miembro en una nueva ventana (color verde).
Si hacemos clic derecho sobre uno de los miembros, veremos otras opciones disponibles, como ejecutar un job.
Ahora abriremos “API Catalog” (esta parte de la entrada la completé en otro sistema, ya que con mi emulador tenía problemas por los cifrados y no podía mostrarlo).
Si nos diese el error de la imagen, no dejará aceptar el sitio como seguro. Una forma de poder hacerlo es abriendo una nueva pestaña del navegador y poniendo la ruta de la web, pero cambiando el puerto 8544 por el 7554. De esta forma podremos aceptar la web como segura y se abrirá el API Catalog.
Podemos ver otra definición de puertos en “/usr/lpp/zowe_instance/instance.env”.
Una vez aceptado “el riesgo”, podremos logarnos (con el IBMUSER, se puede acceder).
Aparecerán aquellas API que tenemos disponibles.
Si entramos en alguna de las APIs, veremos la forma de usarlas.
Podemos hacer una prueba básica de que funciona cogiendo lo que indica en “Base URL” y ponerlo en un navegador, por ejemplo:
https://tu_direccion:7554/api/v1/jobs
En este caso, devuelve datos, por lo tanto, funciona correctamente. Debería funcionar igual de bien en una aplicación que hagamos.
Además, esta petición también permite los parámetros: prefix, owner y status.
Voy a probar el parámetro PREFIX. Por ejemplo:
https://tu_direccion:7554/api/v1/jobs?prefix=zowe*
¡Importante el asterisco del final!
Vemos que también devuelve los datos correspondientes.
Espero que os haya gustado y hayáis aprendido. En la siguiente entrada, haremos una subida de versión de este producto a la versión 1.12.0.