Vamos a continuar explorando IBM Z Development & Test Environment Enterprise Edition. En esta ocasión nos centraremos en instalar la utilidad web y en desplegar un sistema z/OS a partir de una imagen. Esta herramienta sirve para administrar nuestros sistemas emulados de forma sencilla. Además, también proporciona acceso por REST APIs para poder crear nuestros propios procesos y automatizar la administración.
Seguiremos esta parte del manual de instalación:
Además, el enlace al manual de usuario:
La herramienta web puede estar instalada en el mismo sistema que el servidor de licencias, pero, en este caso, lo haré separado. El motivo, simplemente, que prefiero no trastear con el servidor de licencias, porque esta versión es un trial y “si lo rompo”, me tocará molestar a terceras personas para que me generen una nueva licencia.
Por este motivo, me he creado una nueva máquina virtual en VMware ESXi con Ubuntu Desktop 18.04.4.
Los pasos de instalación son iguales que cuando instalamos el servidor de licencias.
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
En esta ocasión, elegimos instalar la opción 1.
Opción 1 para instalar.
Si estamos de acuerdo, aceptamos.
Además, nos dirá que va a crear un usuario llamado “zdt” para ejecutar la herramienta web.
También nos pedirá la ruta donde instalarlo y si queremos usar el puerto por defecto, 9443. En mi caso, lo dejo todo por defecto.
Ahora nos indicará si queremos cambiar la password del usuario para acceder a la herramienta web. Por defecto, el usuario es “zdtadmin” y la contraseña “password”, sin comillas.
En mi caso, voy a cambiar la contraseña.
Una vez termine la instalación, tendremos que arrancar el servidor. Usaremos el comando:
/opt/ibm/zDT/bin/startServer.sh
Una vez arrancado, indicará la ruta de acceso.
En mi caso, uso la IP del sistema para acceder al servidor:
https://192.168.1.32:9443/ZDTMC/login.html
Veremos la pantalla de acceso. Usaremos el usuario “zdtadmin” y la password que pusimos anteriormente.
Aparecerá un mensaje que nos da instrucciones en caso de tener que migrar nuestra instalación anterior a esta. En mi caso, es una instalación nueva.
Veremos las distintas opciones disponibles. No voy a explicar lo que hacen todas, ya que vienen explicadas en el manual de usuario.
Si vamos a hacer todo el “recorrido” para hacer el despliegue de la imagen ADCD en un sistema nuevo.
Voy a empezar por la opción “Almacenamiento de imágenes”. Esta opción sirve para conectar con el “repositorio” de imágenes (discos de los sistemas que queramos) mediante FTP (puerto 21, por defecto) o SSH (puerto 22, por defecto).
Desconozco si el almacén de imágenes puede estar en el mismo servidor que la herramienta web. En mi caso, instalaré FileZilla Server (servidor FTP) en otro PC para hacer el almacén de imágenes (el motivo es que en ese PC tengo más espacio disponible).
Una vez instalado FileZilla Server en Windows (no pongo pantallazos, es una instalación muy sencilla), voy a crear un usuario para ZD&T. Lo llamaré “ibmsys1”.
Ahora voy a crear una serie de directorios y almacenaré la versión ADCD que tengo (ADCD z/OS 2.4 Noviembre 2019).
En mi caso la ruta será “E:\zdt_ftp\adcd\november2019\volumes”. La carpeta “zdt_ftp” será la ruta raíz a la que se accederá por FTP. El nombre del resto de directorios los he puesto siguiendo el manual.
Dentro de la carpeta que contiene la versión ADCD (“november2019”, en mi caso), debemos guardar el fichero ADCDTOOLS.XML que descargamos junto al producto. La utilidad web utiliza este fichero para obtener información de los volúmenes.
En la carpeta “volumes” tendré los discos del sistema.
Ahora asignaré la carpeta “zdt_ftp” al usuario de FTP “ibmsys1”.
Además, yo tuve que permitir la conexión entrante de la aplicación “FileZilla Server” en el Firewall de Windows. Si permitía la conexión solo al puerto 21, al intentar obtener los datos de las imágenes fallaba, porque al entrar en “Passive Mode” utiliza puertos al azar (aunque se pueden definir puertos personalizados).
Imagen Firewall de Windows.
Ahora en la herramienta web de ZD&T, vamos a la opción “Almacenamiento de imágenes”.
Marcamos la opción “Protocolo de transferencia de archivos” (FTP) y rellenamos los datos.
Guardamos y probamos la conexión. Debería aparecer el mensaje “¡La conexión es correcta!”.
Volvemos a la pantalla principal y entramos en la opción “ADCD” de la derecha. También, podríamos entrar directamente en la opción que aparece en la izquierda, pero la opción de la derecha explica cómo distribuir los discos para que funcione correctamente (lo que hicimos más arriba con las carpetas de Windows: E:\zdt_ftp\adcd\november2019).
Comprobamos que hemos hecho bien los pasos y pulsamos en “IMAGEN de ADCD”.
Aquí elegiremos la versión ADCD de la que crearemos la imagen. Me ha sorprendido que permite seleccionar componentes que queramos para incluirlos o no.
Como yo quiero que este sistema ocupe poco (por temas de espacio), elegiré solo el sistema z/OS y z/OSMF. Después, pulsaremos el botón “Crear imagen”.
Aparecerá un mensaje confirmando la creación.
Entramos en “Licencias de emulador” para definir el servidor de licencias.
Ponemos la IP del servidor de licencias (si lo tenemos instalado en el mismo sistema que la utilidad web, se puede poner 127.0.0.1).
El siguiente paso es definir el sistema de destino, es decir, el sistema en el que se instalará el emulador y la imagen creada, pero antes debemos instalar un servidor SSH en la máquina de destino.
En mi caso, me he creado un nuevo sistema usando el mismo Ubuntu 18.04, pero…
¡MUY IMPORTANTE! El idioma del sistema de destino debe ser INGLÉS.
Si el sistema no está en inglés, al desplegar las imágenes en el sistema de destino, tendremos errores del tipo:
[10/08/20 23:36:36:239 CEST] 0009bae0 W Unexpected exception.
[10/08/20 23:48:52:225 CEST] 0009bd63 E is not a supported CPU architecture.
[10/08/20 23:48:52:537 CEST] 0009bd63 com.ibm.zdt.rest.v1.services.BaseJPAService E [ZDT-LOG-SEVERE] deployLinuxValidation exception: For input string: ""
Esto ocurre porque la aplicación lanza comandos y espera la respuesta del mensaje en inglés.
Después, he instalado el servidor SSH usando el comando:
apt-get install openssh-server
Una vez instalado, podemos comprobar que accedemos usando la utilidad “PUTTY”.
En mi caso, voy a utilizar un usuario root de la máquina de destino para distribuir los discos en la máquina de destino. Es necesario crear el usuario “ibmsys1” como no-root en la máquina de destino. Además, hay que crear el grupo “zpdt” y asignar el usuario “ibmsys1” a este grupo.
Crear el grupo “zpdt”.
addgroup zpdt
Crear usuario “ibmsys1”. Además, le asignamos al grupo “zpdt”. Este comando crea automáticamente el directorio “/home/ibmsys1”.
useradd -m -g zpdt -s /bin/bash ibmsys1
passwd ibmsys1
Como usaré el usuario ibmsys1 para hacer el despliegue, debemos darle permisos “sudo” sin password.
Hay dos opciones:
- La rápida, pero menos segura:
ibmsys1 ALL = (root) NOPASSWD: ALL
- La correcta es dar permisos a los scripts que usará:
ibmsys1 ALL=(root) NOPASSWD: /bin/chown root /home/ibmsys1/zdt/zdtInstall/zdt_modify_files_byRoot.sh, /home/ibmsys1/zdt/zdtInstall/zdt_modify_files_byRoot.sh, /home/ibmsys1/zdt/zdtInstall/zdt_install_dependencies_byRoot.sh, /home/ibmsys1/zdt/zdtInstall/zdt_config_user_byRoot.sh, /home/ibmsys1/zdt/zdtInstall/zdt_install_product_byRoot.sh, /home/ibmsys1/zdt/zdtInstall/zdt_config_network_byRoot.sh, /home/ibmsys1/zdt/zdtInstall/zdt_cleanup_byRoot.sh, /bin/chown ibmsys1 /home/ibmsys1/zdt/zdtInstall/zdt_env.sh,/home/ibmsys1/zdt/zdtInstall/zdt_env.sh, /bin/chown ibmsys1 /home/ibmsys1/zdt/zdtInstall/zdt_start.sh, /home/ibmsys1/zdt/zdtInstall/zdt_start.sh, /bin/chown ibmsys1 /home/ibmsys1/zdt/zdtInstall/zdt_ipl.sh,/home/ibmsys1/zdt/zdtInstall/zdt_ipl.sh
NOTA: No debe haber saltos de línea. Sustituid “/home/ibmsys1” por vuestro directorio de despliegue.
IMPORTANTE: Los seis últimos comandos son obligatorios para poder parar y arrancar el sistema de forma automática.
Debemos incluir esto en “/etc/sudoers”.
Comando:
visudo
Debemos incluirlo toda la sentencia en la misma línea. Guardamos (Control+O) y salimos (Control+X).
Volvemos a la página principal de la utilidad web y pinchamos en “Entornos de destino”.
Pinchamos en “Añadir entorno de destino”.
El tipo de entorno será Linux.
Ponemos una etiqueta al servidor, la IP y el puerto de SSH (por defecto, 22). Marcamos “Ajustar valores avanzados”.
En “Sintaxis del mandato de gestión de privilegios” elegimos “sudo”. El resto de opciones las dejo por defecto.
En la última pantalla, solicitará la IP del z/OS emulado. Poned una que se ajuste con vuestra configuración.
En mi caso, voy a dejar la que aparece por defecto y ya la cambiaré más adelante porque si ponemos una IP incorrecta podemos tener problemas con el despliegue de la imagen.
ATENCIÓN: Durante el despliegue, se cambiará la configuración IP del sistema, si ponemos una configuración errónea, no conectaremos con el servidor de licencias y el sistema z/OS no arrancará.
El despliegue se quedará parado sin posibilidad de hacer nada, habrá que reiniciar el servidor de la utilidad web y, posiblemente, la instancia (en mi caso, hasta reinstalar la instancia).
Se añadirá correctamente.
Volvemos a la pantalla inicial y entramos en “Supervisar y Gestionar”.
En la parte de las imágenes nos podemos fijar que la imagen que creamos tiene los dos componentes que elegimos y ocupa unos 151 GB.
En entornos de destino es importante fijarse en la instancia que hemos añadido. Debe aparecer con el “check verde”. Si apareciese un aspa roja, significa que no es posible conectar con el servidor de destino (quizá por el SSH o el puerto 22 bloqueado) y no se podrá desplegar la imagen.
Si durante un despliegue encontramos errores, podemos descargar el log (mensajes y consola) desde la opción de la imagen.
Volvemos a la página principal y entramos en “Desplegar”.
Elegimos la imagen y servidor de destino que queramos (si tenemos varios). Pinchamos en “Desplegar imagen”.
Nos solicitará la forma de inicio de sesión. Podemos elegir entre credenciales y certificado. En mi caso, credenciales. Como directorio de despliegue pondré “/home/ibmsys1”.
La contraseña para el usuario IBMUSER que usaré es “sys1”.
Usaré la siguiente configuración. Usad los parámetros que se ajusten a vuestro entorno.
Aparecerá un mensaje indicando que el proceso se ha iniciado. Podemos comprobarlo pulsando en “Supervisar”.
Si hacemos clic en el porcentaje, veremos el detalle.
También podremos descargar el log.
En mi caso, la primera vez terminó en error porque puse los volúmenes “A4RES1” y “SARES1” desencriptados y el resto de volúmenes estaban descomprimidos. Es obligatorio poner los volúmenes ZPD (“A4RES1.ZPD” y “SARES1.ZPD”) y el resto comprimidos (“.gz”).
Una vez corregido, hacemos clic en “Reanudar despliegue”.
Después de desplegar los volúmenes tuve otro problema. El sistema perdía la conexión con el servidor de licencias. Esto ocurría porque configuré una IP incorrecta (diferente a la del pantallazo anterior) cuando definí el sistema de destino.
NOTA: Este log se puede encontrar en el sistema de destino. Ruta: /home/ibmsys1/zdt/log
En “zdt_start.sh.log” veremos los mensajes de consola y del emulador.
Reinstalé el sistema y volví a desplegar la imagen. En esta ocasión, todo terminó correctamente. El sistema arrancará automáticamente.
Ahora ya podemos conectarnos al sistema. La IP será la del sistema de destino y el puerto 3270.
El primer terminal que conectemos será consola (LU 700). Con el segundo (LU 701) ya podremos conectar a TSO.
Podemos parar el sistema de forma automática con la opción que se ve en la imagen.
En mi caso, no pude ejecutarlo.
Mirando el log, el error es porque no puede ejecutar los comandos:
Falta por añadir unos comandos en “/etc/sudoers” del sistema de destino:
/bin/chown ibmsys1 /home/ibmsys1/zdt/zdtInstall/zdt_env.sh,/home/ibmsys1/zdt/zdtInstall/zdt_env.sh
Ahora parará correctamente. Cuando queramos, podemos iniciar el sistema de nuevo.
Para iniciar el sistema automáticamente, debemos añadir los siguientes comandos en “/etc/sudoers”:
/bin/chown ibmsys1 /home/ibmsys1/zdt/zdtInstall/zdt_start.sh,/home/ibmsys1/zdt/zdtInstall/zdt_start.sh, /bin/chown ibmsys1 /home/ibmsys1/zdt/zdtInstall/zdt_ipl.sh,/home/ibmsys1/zdt/zdtInstall/zdt_ipl.sh
Ahora el sistema arrancará correctamente. Lo que “echo de menos” es algún indicativo de que el sistema está arrancando (algún spinner o algo que indique que está en proceso).
Espero que os haya parecido interesante esta utilidad web para desplegar el emulador de Mainframe y la imagen z/OS en nuevos sistemas.