MVS/OPS es una aplicación web que hace más sencillo operar un S/370 con MVS, como por ejemplo el tk4-, al permitir ver y/o introducir comandos en la consola, operar con el lector de tarjetas, consultar los listados de la impresora o gestionar la unidad de cinta desde un navegador.
Para utilizar autenticación de usuarios en la aplicación, la versión original usa una base de datos mySQL. Teniendo en cuenta que solo se utilizan dos tablas simples parece excesivo (aparte de que mySQL requiere más memoria), por eso, he modificado la aplicación para usar en su lugar SQLite3. Esta es la versión que se trata en este documento.
Es importante tener en cuenta que la máquina virtual trae instalado el perl#5.8.8-3, esta versión no soporta mvs-ops, por tanto deberá desinstalarse (en lugar de usar pkgadd -u
para dejar la instalación limpia), instalando en su lugar un perl mas actualizado (versión 5.32.1 o posterior), también necesita el módulo perl-enum, es decir (los números de versión pueden ser posteriores a los indicados):
pkgrm perl pkgadd perl#5.32.1-0.pkg.tar.gz pkgadd perl-enum#1.12-0.pkg.tar.gz
Para terminar la preparación, se descomprime el archivo mvs_ops.tgz (la versión original se encuentra en el apartado Descargas).
Copiar el script bin/hercprt
a un directorio en donde sea ejecutable y se incluya en el PATH
, como por ejemplo /opt/bin
o /usr/local/bin
.
bin/hercprt
y comentar la línea 142 (se añade el #):
# die("$0: running on a pltaform than does not support setuid running") if ( ! defined(&getpwnam) );
Editar el script de arranque mvs
añadiendo la línea indicada antes de export HERCULES_RC
(penúltima línea).
/opt/bin/hercprt -f conf/tk4-.cnf -o prt -u www
/opt/bin
deberá ajustarse al directorio donde se ha copiado hercprt
y www
deberá ser el usuario que ejecuta el servidor web.
Cambiar el dueño de los directorios jcl
, prt
y tapes
al usuario que ejecuta el servidor web (www
). Copiar los JCL que vienen en la distribución al directorio correspondiente y cambiar su dueño.
Crear la carpeta /var/www/htdocs/ops/
y copiar el contenido de la carpeta www
.
En la carpeta lib
copiar los archivos .SAMPLE
a los mismos nombres excluyendo el .SAMPLE
. Editarlos y configurar sus parámetros, sirviendo como modelo los ejemplos siguientes:
<?php define("SECURED", true); $sites = array( "tk4-plus" => array( "Description" => "OS/VS2-MVS 3.8j (tk4-) ISPF", "CONSOLE" => "/root/tk4-plus/log/3033.log", "READER" => "localhost:3505", "HERCCONS" => "localhost:8038", "PRTDIR" => "/root/tk4-plus/prt", "JCLDIR" => "/root/tk4-plus/jcl", "TAPEDIR" => "/root/tk4-plus/tapes", "IPLCMD" => "", "FONT" => "Courier" ) ); define("PDF_PAGESIZE", "a4"); define("PDF_ORIENTATION", "L"); ?>
Cambiar los permisos de /root
haciendolo legible para todos (incluyendo el usuario www), con el comando chmod o+rx /root
.
Editar el archivo de configuración del Tk4-plus conf/tk4-.cnf
y modificar las líneas:
0002 3211 prt/prt002.txt ${TK4CRLF} 000E 1403 prt/prt00e.txt ${TK4CRLF} 000F 1403 prt/prt00f.txt ${TK4CRLF}
por
0002 3211 localhost:3202 sockdev 000E 1403 localhost:3214 sockdev 000F 1403 localhost:3215 sockdev
Se crea una carpeta y dentro la base de datos, utilizando la herramienta sqlite3
. También se copia el script createdb.sql
(Sustituyendo en el comando cp
el ????? por la ruta donde están los archivos de mvs-ops.tgz
):
mkdir /var/www/db
cd /var/www/db
cp ?????/createdb.sql .
sqlite3 mvsops.db
La carpeta db
y el archivo mvsops.db
son un ejemplo, pero el nombre con la ruta completa habrá que indicarlo en el archivo de configuración. Es importante destacar que tanto este archivo como el directorio que lo contiene deberá tener permisos de lectura y escritura para el usuario que ejecuta el servidor web (habitualmente www
o www-data
).
Se ejecuta el script createdb.sql
, escribiendo las líneas en rojo:
sqlite> .read createdb.sql sqlite> .quit
Se puede borrar el script createdb.sql
que ya no es necesario.
Se asignan los permisos de lectura y escritura al archivo y a la carpeta (o bien se hace que sea el dueño) al usuario adecuado, ejemplo:
chown www.www mvsops.db chown www.www ../db
Iniciar el tk4-plus y cuando esté totalmente iniciado comprobar que en la carpeta prt
se han creado una serie de carpetas correspondientes a la colas del s/370 (A
- Z
)
(Re)Iniciar el servidor web
Con un navegador ir a la web, seleccionar MVS Operations
y en el formulario acceder con el usuario por defecto admin
y la clave admin123
(se recomienda cambiarla).
Se puede añadir una tarea a cron que elimine los listados más antiguos. Se edita /etc/crontab
y se añade esta línea (se ejectuará la tarea cada minuto):
*/1 * * * * /usr/bin/find /root/tk4-plus/prt/ -type f -mmin +15 -delete
donde se puede sustituir el +15 por el número de minutos que se conservan los listados.
No olvidar reinicar cron con /etc/rc.d/cron restart
.