• 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.

ZD&T Enterprise Edition - Instalar Emulador de Mainframe

ZD&T Enterprise Edition - Instalar Emulador de Mainframe

Seguimos con la instalación de IBM Z Development & Test Environment Enterprise Edition. ZD&T está basado en la herramienta zPDT (IBM z Systems Personal Development Tool). En esta entrada, nos vamos a centrar instalar el emulador que se usa en la herramienta zPDT, que es el software que emula el Mainframe.

 

El Redbook de zPDT, donde se explica cómo usar el emulador, es el siguiente:

 

Antes de hacer instalar el emulador, debemos instalar el servidor de licencias. Revisad este post para hacer la instalación:

Este servidor de licencias es necesario para poder ejecutar el emulador y también para poder desencriptar los discos *RES1.ZPD que vienen con las distribuciones ADCD. El proceso de desencriptado lo que hace es “marcar” estos dos discos con la licencia, para evitar que sea compartido/vendido por internet. En caso de que se comparta o se venda por internet, se podría identificar la licencia y el cliente asociado.

 

Como dijimos en la entrada de la instalación del servidor de licencias, este emulador no puede estar instalado en la misma máquina que la herramienta para la administración web o que el servidor de licencias. Por este motivo, me he creado una nueva máquina virtual en VMware ESXi con Ubuntu Desktop 18.04.4.

 

Instalar únicamente el emulador es para aquellos usuarios que no quieren tener la herramienta web. Por ejemplo, solo quieren tener un sistema con un emulador instalado. Esta opción es más “rápida”, pero es más difícil de administrar.

 

NOTA: Antes de empezar la instalación, hay que asegurarse de tener espacio para almacenar los discos del sistema. Unos 300GB para la versión ADCD z/OS 2.4 de Noviembre 2019. Además, de tener espacio para nuestros discos de usuario.

 

Antes de empezar, debemos cumplir estos prerrequisitos (comandos para instalarlos en Ubuntu):

apt-get -y install iptables

dpkg --add-architecture i386

apt-get -y update

apt-get -y install libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 lib32stdc++6

apt-get -y install ftp

apt-get -y install perl

apt-get -y install zip

apt-get -y install unzip

apt-get -y install gzip

apt-get -y install bc

apt-get -y install libasound2

apt-get -f install

apt-get dist-upgrade

 

Para hacer la instalación, seguiremos estos pasos:

 

Copiamos el paquete de instalación a esta máquina. En mi caso, se llama ZDT_Install_EE_V12.0.5.0.tgz. Abrimos un terminal y vamos a la ruta en la que lo hemos copiado.

Cambiamos los permisos a 775:

chmod 755 ZDT_Install_EE_V12.0.5.0.tgz

Descomprimimos el fichero con el comando:

tar -xzvf ZDT_Install_EE_V12.0.5.0.tgz

Ejecutamos el programa para hacer la instalación:

./ZDT_Install_EE_V12.0.5.0.x86_64

001 watermark

 

Aparecerán las distintas opciones para la instalación. En este caso, elegimos la opción 4 para instalar el emulador.

002 watermark

 

Para instalar, 1 - Install.

003 watermark

 

Después de pulsar intro (un rato…), si estamos de acuerdo con la licencia, aceptamos.

004 watermark

 

Esta opción sirve para compartir la IP del sistema Linux (en este caso, Ubuntu) con el z/OS. De esta forma no es necesario darle una nueva IP estática a z/OS para poder interactuar directamente con el sistema z/OS.

Para responder una cosa u otra, tendréis que tener en cuenta vuestra configuración ya que si hacéis la configuración automática, hará cambios en el sistema Linux, el firewall de Linux y la definición TCPIP de z/OS.

En mi caso, le daré a Y, para probar cómo funciona.

005 watermark

 

También podemos decidir si queremos que nos instale las dependencias de forma automática. El sistema debe poder acceder a internet. Si instalamos los prerrequisitos anteriormente, podemos responder N.

006 watermark

 

Esperamos un poco y el emulador quedará instalado. Durante la instalación, se crea el usuario ibmsys1. Debemos cambiar la password de este usuario usando el comando:

passwd ibmsys1

007 watermark

 

Si queremos confirmar que está bien instalado, podemos usar el comando:

dpkg -l | grep z1091

008 watermark

 

Ahora vamos a cambiar la configuración para indicar nuestro servidor de licencias que instalamos en la entrada anterior. Para hacerlo vamos a la ruta /usr/z1090/bin y ejecutamos el comando:

./clientconfig

009 watermark

 

Como servidor de licencias está basado en software, pondré la IP del sistema en el que instalé el servidor de licencias.

010 watermark

 

Una vez hecho (y con el servidor de licencias funcionando), usamos el siguiente comando para comprobar que funciona:

NOTA: Cuando lo hice la primera vez, no conectó con el servidor de licencias porque la licencia la puse más tarde. Con hacer un reinicio del sistema donde estoy instalando el emulador zPDT, quedó solucionado y mostró la información de la licencia.

 

./query_license

011 watermark

 

Ahora vamos a crear la instancia (es decir, la configuración de discos y demás recursos que arrancaremos) del emulador. Para hacer esto, lo primero es tener los discos del sistema que arrancaremos. En mi caso, la versión que usaré es la ADCD z/OS 2.4 Edición Noviembre 2019.

Lo primero, nos logamos con el usuario ibmsys1 y guardamos los discos en la ruta /home/ibmsys1/volumes

 

Los discos *RES1.ZPD debemos desencriptarlos.

012 watermark

 

Ahora nos tenemos que asegurar que el owner de todos los volúmenes sea un usuario que no sea root (por ejemplo, ibmsys1). Además de dar permisos “755”. Usaremos los comandos:

chown ibmsys1 *

chgrp zpdt *

chmod 755 *

En mi caso, el owner y el grupo estaban bien, pero los permisos no. En la imagen se pueden ver las diferencias.

013 watermark

 

Para desencriptar los volumes *RES1.ZPD usaremos los siguientes comandos:

cd /usr/z1090/bin

./Z1091_ADCD_install fichero_entrada fichero_salida

Por ejemplo:

./Z1091_ADCD_install /home/ibmsys1/volumes/A4RES1.ZPD /home/ibmsys1/volumes/A4RES1

./Z1091_ADCD_install /home/ibmsys1/volumes/SARES1.ZPD /home/ibmsys1/volumes/SARES1

Al ejecutar el comando, me apareció el siguiente error:

error while loading shared libraries: libawsDiskItf.so

Al parecer, esto puede ser por no usar el usuario que NO es root (ibmsys1), pero yo estaba usando ese usuario… Incluso creé el usuario ibmsys2, que tampoco era root, pero el error era el mismo. Comprobé que esa librería existía en /usr/z1090/bin

014 watermark

 

En este punto, estaba un poco perdido (incluso reinstalé Ubuntu y no funcionaba), pero me dio por probar otro programa (el que inicia el emulador, awsstart) y vi que también daba error al cargar otra librería diferente, que, además, estaba en /usr/z1090/bin.

Esto me dio que pensar que el problema estaba en alguna variable de entorno que no estaba bien definida. Al comprobar el fichero oculto “.bashrc” dentro de /home/ibmsys1, vi que intenta definir unas variables, pero debe haber algún error en el fichero y no lo hace.

015 watermark

 

Al dar esos comandos a mano en un terminal con el usuario “ibmsys1”, todo empezó a funcionar.

export PATH=/usr/z1090/bin:$PATH

export LD_LIBRARY_PATH=/usr/z1090/bin:$LD_LIBRARY_PATH

export MANPATH=/usr/z1090/man:$MANPATH

ulimit -c unlimited

ulimit -d unlimited

ulimit -m unlimited

ulimit -v unlimited

016 watermark

 

Aunque esto funcionase, el problema seguía existiendo, porque al reiniciar había que dar los comandos de nuevo.

Investigando un poco más, esto ocurre porque cuando se crea el usuario, el “shell” que le asigna es /bin/sh, en vez de /bin/bash.

Se puede comprobar con el comando “getent passwd” y buscamos el usuario.

017 watermark

 

Lo podemos cambiar con el comando:

chsh -s /bin/bash ibmsys1

018 watermark

 

019 watermark

 

Con esto cambiado, ya es posible reiniciar el sistema que funcionará correctamente. Después de esto, pude extraer los discos correctamente.

020 watermark

 

Ahora que tenemos todos los volúmenes para usarlos, vamos a crear el “devmap”. Se puede hacer de forma manual, pero hay un script que lo hace directamente. Para ejecutarlo:

cd /opt/ConfigGuideSample

perl create_devmap.pl ruta_volumenes > generateddevmap

Por ejemplo:

perl create_devmap.pl /home/ibmsys1/volumes > generateddevmap

En mi caso, falló porque faltaba el paquete “net-tools”. Tras instalarlo (apt-get install net-tools), funcionó correctamente.

021 watermark

 

El resultado es:

023 watermark

 

024 watermark

 

Ahora copiaremos los ficheros “generateddevmap” y “runzpdt” del directorio “/opt/ConfigGuideSample” al directorio en el que tenemos los volúmenes (/home/ibmsys1/volumes).

025 watermark

 

Iniciamos el emulador con el comando:

./runzpdt -d <devmap name> -l <loadparm option>

Por ejemplo:

./runzpdt -d generateddevmap -l cs

026 watermark

 

Empezará a arrancar:

027 watermark

 

028 watermark

 

Para responder pondremos:

oprmsg 'R 00,I'

029 watermark

 

Para activar la consola, conectamos un terminal 3270 con la IP del sistema y el puerto “3270”. Usamos los comandos:

oprmsg 'v cn(*),activate'

oprmsg 'v 700,console'

030 watermark

 

Sorprendentemente, ¡este sistema no arrancará! Cuando VTAM intente arrancar dirá que hay un módulo que no está en una librería APF.

031 watermark

 

El arranque se quedará parado.

032 watermark

 

Con el comando “D PROG,APF”, vemos las librerías que están que están autorizadas:

OPRMSG: LABEL:    FORMAT=DYNAMIC

OPRMSG: LABEL:    ENTRY VOLUME DSNAME

OPRMSG:       1  A4RES1 SYS1.LINKLIB

OPRMSG:       2  A4RES1 SYS1.SVCLIB

OPRMSG:       3  A4RES1 SYS1.SHASLNKE

OPRMSG:       4  A4RES1 SYS1.SIEAMIGE

OPRMSG:       5  A4RES1 SYS1.MIGLIB

OPRMSG:       6  A4RES1 SYS1.SERBLINK

OPRMSG:       7  A4RES1 SYS1.SIEALNKE

OPRMSG:       8  A4RES1 SYS1.CSSLIB

OPRMSG:       9  A4RES1 GIM.SGIMLMD0

OPRMSG:      10  A4RES1 SYS1.SHASMIG

OPRMSG:      11  A4RES2 CSF.SCSFMOD0

OPRMSG:      12  A4RES2 ISF.SISFLOAD

OPRMSG:      13  A4RES1 SYS1.SBDTCMD

OPRMSG:      14  A4RES1 SYS1.SBDTLIB

OPRMSG:      15  A4CFG1 USER.Z24A.LINKLIB

OPRMSG:      16  A4CFG1 FEU.Z24A.LINKLIB

OPRMSG:      17  A4SYS1 ADCD.Z24A.LINKLIB

OPRMSG:      18  A4CFG1 USER.Z24A.VTAMLIB

OPRMSG:      19  A4CFG1 FEU.Z24A.VTAMLIB

OPRMSG:      20  A4SYS1 ADCD.Z24A.VTAMLIB

OPRMSG:      21  A4RES1 FFST.SEPWMOD2

OPRMSG:      22  A4RES1 FFST.SEPWMOD4

OPRMSG:      23  A4RES2 NFS.NFSLIBE

OPRMSG:      24  A4RES1 TCPIP.SEZATCP

OPRMSG:      25  A4RES1 TCPIP.SEZALNK2

OPRMSG:      26  A4RES2 TCPIP.SEZADSIL

OPRMSG:      27  A4RES1 TCPIP.SEZALPA

OPRMSG:      28  A4RES1 TCPIP.SEZALOAD

OPRMSG:      29  A4RES1 ISP.SISPLOAD

OPRMSG:      30  A4RES1 SYS1.VTAMLIB

OPRMSG:      31  A4RES1 SYS1.SISTCLIB

OPRMSG:      32  A4RES2 CEE.SCEERUN

OPRMSG:      33  A4RES2 CEE.SCEERUN2

OPRMSG:      34  A4RES1 CBC.SCLBDLL

OPRMSG:      35  A4RES1 CBC.SCLBDLL2

OPRMSG:      36  A4PRD2 IGY630.SIGYCOMP

OPRMSG:      37  A4PRD1 EQAE10.SEQABMOD

OPRMSG:      38  A4PRD1 EQAE10.SEQAAUTH

OPRMSG:      39  A4PRD1 FAN140.SEAGLPA

OPRMSG:      40  A4PRD1 DIT130.SDITMOD1

OPRMSG:      41  A4PRD1 FELE10.SFEKAUTH

OPRMSG:      42  A4PRD1 FELE10.SFELLPA

OPRMSG:      43  A4PRD1 FEUC04.SFEUAUTH

OPRMSG:      44  A4PRD2 CSQ911.SCSQLINK

OPRMSG:      45  A4PRD2 CSQ911.SCSQAUTH

OPRMSG:      46  A4PRD2 CSQ911.CSQ9.SCSQAUTH

OPRMSG:      47  A4PRD2 CSQ911.SCSQSNLE

OPRMSG:      48  A4PRD2 CSQ911.SCSQANLE

OPRMSG:      49  A4PRD2 CSQ911.SCSQMVR1

 

El problema de este arranque es que la tarea VTAM tiene el dataset “NET621.SCNMLNK1” en la DD VTAMLIB, pero este dataset no está APF autorizado, haciendo que ninguno de esa concatenación esté APF autorizado.

Para resolverlo y que el sistema arranque, añadimos el dataset a la lista APF de forma dinámica.

SETPROG APF,ADD,DSNAME=NET621.SCNMLNK1,VOLUME=A4PRD3

033 watermark

 

Ahora ya podemos arrancar VTAM. Comando:

S VTAM

034 watermark

 

Ahora arrancará correctamente.

035 watermark

 

Esperamos a que arranque todo.

036 watermark

 

Ya podremos acceder al sistema.

037 watermark

 

Ahora aprovechamos para arreglar el error en la librería correspondiente.

Confirmamos que la librería NET621.SCNMLNK1 está en la concatenación de la DD VTAMLIB.

038 watermark

 

Para saber el miembro PROGxx en el que debemos añadir el dataset, podemos hacer lo siguiente:

Consultar el miembro LOADCS (porque arrancamos con el loadparm CS) y mirar parámetro SYSPARM, que hace referencia al miembro IEASYS, en este caso, IEASYSCS.

039 watermark

 

Comprobar el parámetro PROG del miembro IEASYSCS.

040 watermark

 

Añadir la librería al miembro PROGAB. Ya está definida para futuros IPLs.

041 watermark

 

Para parar el emulador, utilizaremos los comandos de “shutdown” que existen en estos sistemas (que existan aquí no quiere decir que estén en otros sistemas “reales”).

En mi caso, como he arrancado con el LOADPARM “CS”, pararé con el comando “S SHUTDOWN”.

Otro comando que sirve para parar es el “S SHUTALL”. Hay más disponibles, pero principalmente uso esos dos.

Una vez haya parado todo, después del comando “$PJES2”, haremos el comando “QUIESCE” en la consola de z/OS. Es una forma de parar los procesadores.

Después en el terminal del emulador (en Ubuntu), daremos el comando “awsstop” para parar el emulador.

042 watermark

 

De forma opcional, podemos instalar el terminal x3270 y configurar el arranque del emulador para tener la consola en este terminal.

Para instalar x3270:

apt-get install x3270

043 watermark

 

Después, hay que añadir este comando al fichero Devmap:

command 2 x3270 -model 3 localhost:3270

NOTA: “model 3” es un terminal de 32 líneas y “model 4” es de 43.  Debemos usar el puerto que tengamos configurado.

De esta forma, cuando arranquemos el emulador, arrancará el terminal y tendremos la consola.

044 watermark

 

Ya hemos comprobado que funciona correctamente. En la próxima entra instalaremos la utilidad web y aprenderemos a usarla.

 

 

Publish modules to the "offcanvs" position.