Saltar al contenido principal

Crear y borrar instancia de zCX usando Workflows de z/OSMF

z/OS Container Extensions permite ejecutar aplicaciones Linux en z/OS (arquitectura s390x).
Es una instancia de un sistema Linux configurada para ejecutar Docker.
En z/OS lo veremos como una STC más, pero podremos ejecutar aplicaciones en Docker conectando por SSH.
La gran ventaja es poder aprovechar toda la velocidad y seguridad del Mainframe para ejecutar este tipo de cargas de trabajo usando los procesadores zIIP

Como es de las primeras veces que voy a probar esto, posiblemente, alguien con más conocimientos lo haría mejor, pero lo importante es aprender para ir haciéndolo mejor. Además, es una buena forma de aprender a trabajar con Docker “sin salir” del mundo z/OS.

El proceso para crear y borrar una instancia de zCX se hace mediante Workflows de z/OSMF. Es un proceso bastante automático que, si lo hacemos bien desde el principio, no tendremos que intervenir.

Debemos tener en cuenta el espacio necesario (según lo que vayamos a instalar en la instancia, pueden ser necesario 40GB o más), los recursos que asignaremos a esta instancia (CPU, memoria) y también hay que asignar una IP virtual a esta instancia (DVIPA para zCX).

Definir procesadores zIIP para IBM ZD&T

Primero explicaré las acciones previas que realicé en el sistema.

En el fichero de configuración del emulador, definí 3 procesadores zIIP.

info

Estos procesadores son gratuitos con la licencia.

Emuframe image

Cuando arranquemos el sistema, veremos el mensaje FREE-ZIIP.

Emuframe image

Modificar rutinas ACS

En el caso de mi sistema, también ajusté un poco las rutinas ACS (de forma simple) para la asignación las clases SMS correspondientes. Esto ya depende de cada sistema.

NOTA

Muestro los cambios que he hecho por si yo mismo lo necesito cuando actualice el sistema a una nueva versión de ADCD.

Emuframe image

La DATACLAS CXDC está definida con el tipo de data set Extended.

Emuframe image

Emuframe image

Emuframe image

Configuración TCP/IP

Ahora voy a mostrar la configuración de comunicaciones. Cada uno tendrá que ajustarla a su instalación.

Esta configuración es válida para ZD&T.

La IP que tendrá la instancia ZCX será 10.1.3.10.

Emuframe image

También muestro cómo está definido el perfil de TCPIP.

tip

Con este comando podemos ver los nombres de los dispositivos de red.

ifconfig

Emuframe image

Emuframe image

Además, en mi router añadí una regla para poder conectar al sistema ZCX desde otro ordenador de mi red.
La puerta de enlace es la IP que tiene el sistema Ubuntu en el que está instalado el emulador.

Emuframe image

También en sistema en el que tengo instalado del emulador puse una ruta para llegar a las IPs 10.1.3.* usando el adaptador tap0 (que crea el emulador).

sudo ip route add 10.1.3.0/24 dev tap0

Emuframe image

Crear Workflow en z/OSMF

De forma previa, también añadí los discos correspondientes para tener el espacio necesario para crear la instancia.

Vamos a empezar a crear la instancia. Para ello, vamos a z/OSMF. En Workflows, vamos al menú Actions y elegimos Create Workflow…

Emuframe image

Elegimos el sistema y como fichero de Workflow y fichero de variables usaremos los siguientes:

/usr/lpp/zcx_zos/workflows/provision.xml
/usr/lpp/zcx_zos/properties/workflow_variables.properties

Para el fichero workflow_variables.properties, yo lo copiaré a otra ruta y utilizaré ese porque puede ser que en el otro fichero no nos deje modificar algunas variables:

/var/zcx_zos/workflow_variables.properties

Emuframe image

En mi caso, me asigno todas las tareas a mi usuario, ya que yo haré todas.
Clic en Finish.

Emuframe image

Entramos en la primera tarea.

Emuframe image

Tenemos que ir rellenando los datos según lo que hayamos planificado. Pondré los que yo usaré.

Emuframe image

En mi caso, usaré 8GB de memoria porque así lo requiere una aplicación que instalaré en el futuro.
Cada uno que lo ajuste según sus necesidades.

Emuframe image

La IP que usaré es la que definí en pasos anteriores (10.1.3.10). Uso los DNS de Google (8.8.8.8 y 8.8.4.4).

Emuframe image

Voy a poner 8GB de espacio para el ROOT porque así lo requiere una aplicación que instalaré en el futuro. Indicaré la STORCLAS CXROOTSC

Emuframe image

Emuframe image

Emuframe image

Aquí indicaré 40GB por requerimiento del software que instalaré en otro momento.

Emuframe image

Emuframe image

Emuframe image

Emuframe image

En los siguientes parámetros necesitaremos indicar una “key” pública para acceder por SSH al sistema. Podemos generar una nueva en el sistema cliente con el comando:

ssh-keygen -t rsa -b 4096 -C "admin@192.168.1.12“

Emuframe image

Podemos descargar el fichero para facilitar la copia de la clave:

ftp 192.168.1.12
cd /u/ibmuser/.ssh/
get id_rsa.pub

Emuframe image

Vamos a la siguiente parte de las variables.

Emuframe image

Por último, salvamos y finalizamos.

Emuframe image

Ejecutar Workflow z/OSMF para crear la instancia

Ya tenemos todos los parámetros definidos. En teoría, el resto de los pasos deberían ser automáticos, si no fallan. Seleccionamos el segundo paso y vamos al menú Actions.

Emuframe image

Opción Perform.

Emuframe image

Marcamos las siguientes opciones para que ejecute todos los pasos de forma automática y que use el fichero de variables de entrada.

Emuframe image

Todo terminará correctamente. Tendremos que entrar en el último paso para ver el comando de arranque de la instancia.

Emuframe image

Con el siguiente comando arrancaremos la instancia:

S GLZ,JOBNAME=ZCX001,CONF='/global/zcx/instances/ZCX001/start.json'

Pulsaremos en Finish.

Emuframe image

Daremos el comando en SDSF o consola.

Emuframe image

Empezará a arrancar, a formatear los ficheros, a hacer el arranque de la instancia, etc.

Emuframe image

Emuframe image

Cuando arranque la instancia, podremos conectar.

Emuframe image

Conectar al contenedor Docker

Vamos a OMVS (TSO OMVS) y pondremos el comando:

ssh admin@10.1.3.10 -p 8022

Emuframe image

Ya hemos accedido.
Ahora daré un comando para comprobar que funciona, por ejemplo, docker ps para ver lo que hay en ejecución.

Emuframe image

Veremos que está en ejecución el proceso de ssh. Salimos con exit.

Emuframe image

Hay que tener en cuenta que, durante el proceso de crear la instancia, un ZFS se montó mediante el Workflow.

info

Debemos tenerlo en cuenta para añadirlo en la PARMLIB y que se monte después de los IPLs.

Emuframe image

Borrar la instancia

Ahora voy a mostrar cómo borraríamos la instancia.

Empezamos entrando de z/OSMF y entramos en la opción Workflows. Desplegamos el menú Actions y elegimos Create Workflow

Emuframe image

Tendremos que elegir el sistema sobre el que aplicaremos el Workflow y elegir el Workflow a aplicar.
Los workflows de zCX, por defecto, están en la ruta /usr/lpp/zcx_zos/workflows/. En este caso, usaré:

/usr/lpp/zcx_zos/workflows/deprovision.xml

En este caso, no es necesario indicar un fichero de variables de entrada (Workflow variable input file).

Emuframe image

En mi caso, marco Assign all steps to owner user ID para no tener que asignármelos luego.
Pulsamos Finish.

Emuframe image

Veremos todos los pasos que tiene el workflow. Debemos entrar en el primero.

Emuframe image

Vamos a la pestaña Perform. Indicamos el nombre de la instancia y la ruta donde creamos las instancias. En mi caso:

ZCX001
/global/zcx/instances

Pulsamos en Save.

Emuframe image

Emuframe image

Pulsamos Finish.

Emuframe image

El segundo paso es para parar la instancia, si ya está parada, lo podemos dar por completo.
Entraré para mostrarlo.

Emuframe image

En SDSF o consola, daríamos el comando de parada, en mi caso:

P ZCX001

Una vez parada, pulsamos en Finish.

Emuframe image

Ahora vamos a ejecutar los pasos restantes de forma automática.
Seleccionamos el checkbox del paso 3. Vamos al menú Actions.

Emuframe image

Elegimos Perform.

Emuframe image

En este caso, debemos elegir Always keeps existing values y pulsamos OK.
Se empezarán a ejecutar todos los pasos restantes.

Emuframe image

En mi caso, se ejecutó todo directamente.
Todos los jobs terminaron bien y no tuve que hacer nada más.

Emuframe image

Además, si miro en TSO, aparecerán los mensajes indicando que los jobs han ido bien.
En menos de 1 minuto se ha hecho todo.

Emuframe image