• principal_3

    Desde 2015, enseñando sobre el sistema operativo z/OS de IBM en esta web. z/OS se utiliza en máquinas llamadas Mainframe.

  • principal_1

    Para realizar el contenido, utilizo el producto de IBM llamado z/Development and Test Environtment Personal Edition. Este software permite emular un Mainframe y así poder utilizar z/OS para aprender.

  • principal_2

    Es utilizado por grandes empresas (bancos, aseguradoras...). Aquí aprenderás a instalar y configurar productos relacionados con z/OS.

  • principal_4

    ADCD es una distribución de z/OS que contiene productos de IBM como IMS, DB2, CICS, ZOWE, TWS, NetView, System Automation, etc.

z/OS Management Facility 2.3 - z/OSMF - Instalación

z/OS Management Facility 2.3 - z/OSMF - Instalación

En esta ocasión veremos cómo instalar z/OSMF (z/OS Management Facility). Esta herramienta sirve para poder administrar distintas partes del sistema operativo en un entorno web más moderno. Además es requisito previo para la instalación de ZOWE (Proyecto “Open Mainframe” - Open Mainframe - Zowe).

Según la versión de sistema operativo (v2.2, v2.3, v2.4), es más fácil la instalación ya que se ha ido simplificando el proceso (al final, un proceso más sencillo puede ser la diferencia entre que los clientes lo usen o no). Además, es posible que algunos pasos de este tutorial ya los tengamos hechos. Antes de ejecutar los jobs, revisad.  

En esta entrada es muy sencilla y nos centramos en la versión 2.3. En versiones anteriores, el proceso puede ser distinto.

Usaremos el siguiente manual de IBM:

IBM z/OS Management Facility Configuration Guide v2.3

Un prerrequisito es tener JAVA v8 64bits en el sistema, pero lo normal es tenerlo ya.

NOTA: Si fuese necesario actualizarlo, se puede descargar Java 8 para z/OS desde el siguiente enlace:

IBM - Java for z/OS

El fichero “PAX.Z” es el producto y el fichero “Readme” indica cómo instalarlo. Es bastante fácil.

001 watermark

 

Una forma de saber las versiones que tenemos disponibles en el sistema una forma sería mirar la ruta por defecto (/usr/lpp/java) desde 3.4 de ISPF y ver las carpetas que tenemos.

002 watermark

 

En mi caso, tengo varias. Los enlaces simbólicos (syml) “current_31” y “current_64”, apuntan a la versión que tenemos en uso. En mi caso, uso la versión 8.

003 watermark

 

Para ver más detalles sobre la versión que tenemos, entramos a OMVS (TSO OMVS) y buscamos la ruta de la versión java que queremos comprobar.

Por ejemplo, “/usr/lpp/java/J8.0_64/bin” y usamos el comando “java –version”.

004 watermark

 

Antes de empezar, comprobamos que tenemos montados los ficheros correspondientes en las rutas adecuadas:

Para zOS Liberty, hay que montar el ZFS “**.SBBLZFS” en “/usr/lpp/liberty_zos”. En el caso de versiones ADCD, ese ZFS podría llamarse “ZFS.*.WLP”. El contenido que encontraremos en el directorio Unix será similar a esta imagen (pueden cambiar las versiones).

005 watermark

 

Para z/OSMF, el producto ya debería estar montado porque lo contiene el “**.ROOT”, que es la base de OMVS. El contenido será similar a la imagen. Debemos comprobar que el “Syml” “liberty” redirige a la versión en uso de Liberty que vimos anteriormente (/usr/lpp/liberty_zos/versión_en_uso).

En versiones anteriores, Liberty estaba en la carpeta “wlp” de zOSMF.

006 watermark

007 watermark

 

Volvemos al manual y buscamos el capítulo “Chapter 3. Setting up z/OSMF for the first time”. Se describen tres pasos: definir la seguridad, definir la configuración y preparar la inicialización del servidor.

Definir la seguridad.

NOTA: Antes de ejecutar este job, comprobad que no tengáis las definiciones ya creadas de alguna instalación anterior.

Para este paso, usaremos el ejemplo SYS1.SAMPLIB(IZUSEC) que es válido si se usa RACF.

Es muy importante revisar todo el job para comprobar que se ajuste a las definiciones de nuestro sistema.

008 watermark

 

Nos fijamos en el nombre que asigna al perfil (IZUDFLT) ya que lo tendremos que poner en la configuración más adelante.

009 watermark

 

Por defecto, se crearán 3 grupos: IZUADMIN, IZUUSER, IZUUNGRP.

También nos fijamos en la ruta “HOME” porque en el siguiente paso definiremos las librerías y tenemos que tenerlo en cuenta si las creamos en otro directorio.

010 watermark

 

Otro punto importante de este job son el “keyring” y los certificados. Esto sirve para la conexión SSL y es importante tenerlos bien definidos para evitar tener problemas al acceder y, además, la tarea IZUSRV1 dara un abend.

Ambos certificados duran hasta el 17/05/2023 según el job de ejemplo.

011 watermark

 

El “keyring” será IZUKeyring.IZUDFLT. Después lo pondremos en el fichero de parámetros de la tarea.

Los certificados serán:

  • Certificado CA. Tendrá la etiqueta zOSMFCA.
  • Certificado Servidor. Tendrá etiqueta IZUDFLT. Para este certificado, debemos indicar un nombre de host (parámetro CN), que debe coincidir con el nombre de host que tengamos definido en TCPIP.

012 watermark

 

Si todo el job nos parece adecuado a nuestro sistema, lo ejecutamos. Debería terminar correctamente.

NOTA: En mi caso no lo ejecuto porque ya tengo las definiciones realizadas.

Una vez ejecutado hacemos a mano un refresco de la configuración de los certificados (no tengo muy claro que el job lo haga). Usamos el comando de TSO (opción 6 de ISPF, por ejemplo):

SETROPTS RACLIST(DIGTCERT, DIGTRING) REFRESH

013 watermark

 

Comprobamos el estado de los certificados con los siguientes comandos:

Para ver el “keyring”: RACDCERT LISTRING(IZUKeyring.IZUDFLT)

Para los certificados del usuario IZUSVR: RACDCERT LIST ID(IZUSVR)

Para ver un certificado concreto:

RACDCERT LIST (LABEL('zOSMFCA')) CERTAUTH

RACDCERT LIST (LABEL('DefaultzOSMFCert.IZUDFLT')) ID(IZUSVR)

Muy importante el estado “TRUST”. Si no es TRUST, no funcionará por mucho que lo tengamos añadido.

014 watermark

015 watermark

 

Si tuviésemos que borrarlos por algún motivo (que estemos en 2023 y tengáis que generarlos de nuevo, por ejemplo) podemos usar los siguientes comandos de TSO (opción 6 de ISPF):

RACDCERT DELETE (LABEL('zOSMFCA')) CERTAUTH

RACDCERT DELETE (LABEL('DefaultzOSMFCert.IZUDFLT ')) ID(IZUSVR)

Y luego, refrescar la configuración:

SETROPTS RACLIST(DIGTCERT, DIGTRING) REFRESH

Para exportar el certificado CA a un dataset y luego poder descargarlo para añadirlo al navegador, por ejemplo, usaremos:

RACDCERT CERTAUTH EXPORT(LABEL('zOSMFCA')) DSN('IBMUSER.ZOSMFCA.CRT') FORMAT(CERTDER)

 

Al parar/arrancar las tareas relacionadas con z/OSMF debería funcionar.

Definir la configuración.

Para este paso, usaremos el job SYS1.SAMPLIB(IZUMKFS). Con este job crearemos los filesystem necesarios dentro de la parte UNIX. Antes de ejecutarlo, comprobad que no estén creados ya. Es posible que el VSAM “SIZUUSRD” ya exista, por lo tanto, si no está montado, lo montamos. Además comprobamos que las carpetas que crea el segundo paso del job, existan. Si no existen, podemos lanzar el segundo paso para crear las carpetas “home/…” y “/configuration/workflow”. Además de asignar los permisos correspondientes (chmod y chown).

NOTA: Para ejecutar este job es necesario tener permisos de superusuario en OMVS.

En el primer paso definimos el fichero y debemos indicar el volumen (volser) donde guardarlo.

016 watermark

 

Si seguimos bajando, veremos que se crean los directorios que vimos en el job anterior (/var/zosmf/data/home/izusvr).

017 watermark

 

Si todo es correcto, ejecutamos el job.

IMPORTANTE: Hay añadir el montaje del fichero IZU.SIZUUSRD en el montaje del BPXPRMxx correspondiente. En este tutorial, lo recordaremos más adelante.

NOTA: Como ya tengo estos ficheros definidos, lo voy a ejecutar con otros nombres de directorio solo para ver el resultado del job. Lo recomendable es dejarlo por defecto.

018 watermark

 

019 watermark

 

Terminará correctamente.

020 watermark

 

Tendremos los ficheros creados y montados.

021 watermark

022 watermark

 

Comando: D OMVS,FILE

023 watermark

 

Ahora vamos a copiar el fichero de parámetros de ejemplo de SYS1.SAMPLIB(IZUPRM00) a nuestra PARMLIB.

024 watermark

 

Vamos a revisar algunas de las opciones del fichero (para el resto, se pueden revisar en el manual):

HOSTNAME -> Con “*” indicamos que use el host local.

HTTP_SSL_PORT -> Indicamos un puerto que no esté en uso. El 443 por defecto.

INCIDENT_LOG UNIT -> Unidad de disco, por ejemplo, SYSALLDA, 3390, etc.

JAVA_HOME -> Ruta hasta la versión de java que queremos usar.

KEYRING_NAME -> Dejar por defecto, porque ya fue definido en el job IZUSEC.

LOGGIN -> Especificaciones para las trazas de errores. Dejar por defecto.

RESTAPI_FILE y COMMON_TSO -> Indicar los datos de acceso tipo: ACCT (número de cuenta, por ejemplo, ACCTÑ o ACCT#), REGION y PROC (procedimiento logon TSO, por defecto, IZUPROC)

SAF_PREFIX -> Prefijo clase APPL de RACF que vimos anteriormente.

CLOUD_SAF_PREFIX -> Prefijo de RACF para IBM Cloud Provisioning and Management for z/OS (esta herramienta puede ser usada para hacer deploy de nuevos CICSes, IMSes, DB2…).

CSRF_SWITCH -> Recomendable mantener a ON para evitar ataques CSRF Más información sobre CSRF

SERVER_PROC y ANGEL_PROC -> Nombre las tareas.

AUTOSTART -> Recomendable mantener a LOCAL para auto iniciar el servidor. Revisar documentación para SYSPLEX.

WLM_CLASSES -> En mi caso no lo uso. Lo pongo comentado.

PLUGINS -> Funciones adicionales para z/OSMF. En mi caso, los activo todos. El listado es:

025 watermark

026 watermark

027 watermark

028 watermark

 

Preparar la inicialización del servidor

Lo primero son las STC: IZUANG1, IZUSVR1 y IZUINSTP. Es importante usar las correspondientes a la versión z/OS 2.3 porque han sido modificadas y no es posible reutilizar las de versiones anteriores. Pueden estar en SYS1.IBM.PROCLIB o SYS1.PROCLIB (según el tipo de producto que tengamos: ServerPac, CustomPac o CBPDO).

El servidor se “auto iniciará” con el sistema, es decir, no es necesario arrancarlo mediante “COMMNDxx” o algún producto de automatización tipo IBM System Automation.

De forma opcional, en SYS1.SAMPLIB hay otro procedimiento llamado IZUSRV2 para arrancar z/OSMF manualmente. En el manual se puede encontrar como “z/OSMF standalone”.

029 watermark

 

Si queremos podemos copiarlos a otra PROCLIB.

En cuanto a la tarea IZUSVR1, en el parámetro IZUPRM podemos configurarlo de dos formas:

Indicándolo en IEASYSxx o en la tarea. Añado dos tablas para ver las diferencias.

Sin incluirlo en IEASYSxx

030 watermark

 

Incluyéndolo en IEASYSxx

031 watermark

 

En mi caso, lo voy a incluir en IEASYSxx y dejaré la opción “PREV” en la tarea IZUSVR1 ya que es la recomendación de IBM.

032 watermark

033 watermark

 

Copiaremos el procedimiento de logon de TSO del que hablamos anteriormente cuando vimos los parámetros del miembro IZUPRMxx. Está en SYS1.PROCLIB (o SYS1.IBM.PROCLIB) y se llama IZUFPROC.

034 watermark

 

Por último, revisamos que en el miembro BPXPRMxx tengamos el parámetro IPCMSGQBYTES definido con, al menos, el valor 20971520.

Para ponerlo de forma dinámica, usaremos el comando: SETOMVS IPCMSGQBYTES=20971520

035 watermark

 

Comprobamos el valor actual con el comando: D OMVS,L

036 watermark

 

Además, si no lo hemos hecho anteriormente, incluimos el montaje del data set IZU.SIZUUSRD que creamos anteriormente.

MOUNT    FILESYSTEM('IZU.SIZUUSRD')

         MOUNTPOINT('/var/zosmf')  

         TYPE(ZFS)                 

         MODE(RDWR) NOAUTOMOVE     

037 watermark

 

En principio, hemos terminado la instalación. Vamos a iniciarlo manualmente con los comandos:

START IZUANG1

START IZUSVR1,IZUPRM=PREV (o START IZUSVR1,IZUPRM=xx, siendo el xx el fichero que vayamos a usar)

La tarea IZUANG1 arrancará correctamente.

038 watermark

 

La tarea IZUSRV1, en mi sistema tardó unos 25 minutos en arrancar completamente. Además, con un consumo de CPU bastante alto. Desconozco si es por ser un sistema emulado.

Según he leído, es debido a una reorganización de ficheros que hace cuando arranca la tarea.

En la versión 2.4 del producto, han añadido un parámetro llamado KCINDEX, que se puede poner “N” para que no haga la reorganización del “Knowledge Center”. IBM recomienda hacer un arranque normal completo y luego, ya se podría usar:

S IZUSVR1,KCINDEX=N

Ese parámetro también estaría disponible si se añade la siguiente PTF:

https://www.ibm.com/support/pages/apar/PH06678

NOTA: Si veis que ha arrancado y aun así la web va muy lenta, podéis dejar un rato que la tarea haga sus procesos. Pasado ese rato, ya funcionará todo correctamente.

039 watermark

040 watermark

 

Ahora accedemos a la web. Recomiendo Firefox, porque con Chrome podría dar errores de certificados dentro de la tarea del tipo:

CWWKO0801E: Unable to initialize SSL connection. Unauthorized access was denied or security settings have expired. Exception is javax.net.ssl.SSLException: Received fatal alert: certificate_unknown

https://ip_mainframe:puerto/zosmf/

En mi caso:

https://192.168.1.14/zosmf/

Si hemos puesto el puerto 443, no es necesario indicarlo ya que al ser https, es el puerto por defecto.

Accedemos con nuestro usuario, en mi caso, IBMUSER.

041 watermark

 

Podéis navegar por las distintas opciones. Por ejemplo, entrar a TSO desde la opción ISPF.

042 watermark

 

Ponemos las opciones

043 watermark

 

Pulsamos OK.

044 watermark

 

Podremos navegar por el terminal vía web, igual que hacemos con la herramienta de escritorio.

045 watermark

 

Podéis ver esta entrada del blog con un vídeo dónde se muestran otras opciones:

Modernizando z/OS - z/OSMF 2.3

 

Espero que os haya gustado la entrada y hayáis conseguido instalarlo.

 

¡Hasta la próxima!

 

Publish modules to the "offcanvs" position.