Licencia
Copyright (C) 2022-2026 Soleta Networks Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
1. Introducción a OpenGnsys Enterprise 3
En este capitulo se ofrece una descripción de OpenGnsys Enterprise 3, incluyendo las funcionalidades soportadas, así como su arquitectura y componentes.
1.1. ¿Qué es OpenGnsys Enterprise 3?
OpenGnsys Enterprise es un software libre para el mantenimiento de aulas TIC de entornos educativos que permite la creación de imágenes de sistemas operativos Windows y Linux, así como el despliegue masivo de dichas imágenes.
Entre las funcionalidades más destacables, se encuentran:
-
Arranque de los ordenadores por medio de
Wake On LAN(WoL) así como el reinicio y apagado de los ordenadores gestionados. -
Soporte para
Secure Booten sistemas UEFI, permitiendo el arranque seguro de los clientes y garantizando la verificación de su integridad durante el proceso de arranque. -
Gestión de modos de arranque de los ordenadores por medio de PXE, haciendo uso para ello de
GNU Grub2como gestor de arranque tanto en red, por medio de TFTP y HTTP, como en disco, para iniciar alguno de los sistemas operativos disponibles en disco. Para ello es necesario un servidor de DHCP, aunque es posible hacer uso de una preinstalación deISC DHCP serversi no se dispone de un servidor DHCP en la red para la gestión de los ordenadores administrados. -
Un sistema
livebasado en Linux que permite la gestión administrativa de los ordenadores. -
Creación de imágenes de sistemas operativos Windows y Linux a partir de una instalación en un ordenador de referencia.
-
Particionado y formateado masivo de los ordenadores de una o varias aulas, ya sea un esquema MBR para equipamiento BIOS legacy o GPT para equipamiento UEFI.
-
Distribución de imágenes colaborativa de manera eficiente que permite a los ordenadores de un aula compartir un imagen de un sistema operativo entre sí. En este sistema el servidor que actúa como balanceador de carga entre los propios ordenadores del aula. No se trata de una solución P2P pero ofrece un rendimiento para transferencia de datos y su complejidad es menor.
-
Uso de un espacio de caché en el equipamiento para el almacenamiento de imágenes de sistemas operativos a restaurar, así como la restauración de imágenes desde caché. Esto permite mitigar los altos tiempos de descarga en entornos donde aún prevalecen redes de 100 Mbits.
-
Restauración de imágenes de sistema operativos Windows y Linux de manera masiva.
-
Ejecución de scripts de configuración nativos sobre los ordenadores gestionados, ya sea en Windows Powershell o en Linux Bash.
-
Gestión de UEFI, permitiendo el establecimiento del orden de arranque (
BootOrder) así como el establecimiento del arranque en el siguiente reinicio (BootNext) tras el cual vuelve al orden de arranque establecido (BootOrder).
OpenGnsys Enterprise soporta tanto equipamiento UEFI y legacy BIOS.
OpenGnsys Enterprise ofrecer un panel de control web centralizado y, alternativamente, una herramienta de línea de comandos, para llevar las tareas de administración mantenimiento descritas anteriormente.
OpenGnsys Enterprise dispone de un instalador para Ubuntu 22.04 LTS (Jammy Jelly) y ofrece actualizaciones del software por medio de un repositorio propio de paquetes APT, con el objetivo simplificar su mantenimiento y ofrecer una manera ágil la instalación de arreglos y nuevas funcionalidades.
1.1.1. Arquitectura y componentes en OpenGnsys Enterprise 3
La arquitectura de OpenGnsys Enterprise está basada en los siguiente componentes:
ogserver es el servidor principal de OpenGnsys Enterprise que proporciona
una API REST HTTP para el front-end web y la herramienta de línea de comandos.
Por medio de dicha API se envían órdenes a los ordenadores que están registrados
en el sistema. ogserver mantiene una base de datos de los ordenadores que son
administrados por este software, así como la configuración actual de dichos
ordenadores. El servicio ogserver comprueba la versión del esquema de la base
de datos y aplica de manera automática las actualizaciones necesarias a dicha
base de datos, por lo que no es necesario el mantenimiento por separado de
ficheros SQL con diferencias entre versiones del esquema de la base de datos.
ogcp es el panel de control web para la administración de OpenGnsys
Enterprise, es el componente preferido de los administradores de sistemas y
operadores de las aulas TIC.
ogcli es la herramienta de línea de comandos, alternativa a la web ogcp,
que permite realizar tareas administrativas de manera programática mediante
scripting. La salida de ogcli estructura la información que se imprime por
pantalla en formato JSON.
ogrelive es un sistema operativo live basada en Linux que se usa para la
administración de los ordenadores de las aulas. Si el administrador establece
el modo de arranque ogrelive el ordenador se descarga mediante la red
dicha imagen live y, siempre que haya una espacio de caché disponible,
almacena una copia del sistema live para acelerar el arranque en disco.
El sistema live ejecuta en la memoria RAM por lo que permite la ejecución de
tareas administrativas sobre los discos de los clientes mediante ogclient
tales como particionar, formatear, crear, restaurar y configurar las imágenes
de sistemas operativos a desplegar en el aula, así como la modificación
de la configuración UEFI del ordenador.
ogclient es el agente que se ejecuta en los ordenadores administrados.
El sistema operativo live arranque este software, que a su vez se conecta al
ogserver para informar sobre el estado del ordenador y queda a la espera de
órdenes administrativas. El ogclient recibe del ogserver las órdenes de
particionado, formateado, creación, restauración y configuración de imágenes de
sistemas operativos. Este agente funciona también en los sistemas operativos
Linux y Windows desplegados en el ordenador, lo que permite su gestión remota,
para realizar operaciones tales como configuraciones incrementales, reinicio
y apagado del ordenador. El ogclient registra su actividad en un fichero de
log. Para la transferencia de datos emplea tiptorrent y, alternativamente,
samba (CIFS).
tiptorrent es un software para la distribución colaborativa de imágenes de
sistemas operativos por red, ofrece una solución de menor complejidad a la
transferencia de imágenes mediante multicast y software P2P. ogclient hace
uso de este software para la transferencia de imágenes.
python-libfdisk es un binding de Python usado por ogclient que permite
particionar los ordenadores de un aula haciendo uso de la biblioteca libfdisk
disponible en el paquete de software util-linux.
2. Instalación y actualización de OpenGnsys Enterprise 3
En este apartado se describe la instalación de OpenGnsys Enterprise 3, así como las recomendaciones y requisitos previos, y el procedimiento actualización de OpenGnsys Enterprise.
2.1. Recomendaciones previas a la instalación de OpenGnsys Enterprise 3
Se recomienda desplegar OpenGnsys Enterprise en un servidor que disponga, como mínimo, de 8 Gbytes de memoria RAM, preferiblemente memoria ECC, y un espacio de disco de al menos 500 Mbytes y una tarjeta de red de al menos 1 Gbit.
Es recomendable el despliegue en una máquina virtual para facilitar la
realización de copias de seguridad, la creación de snapshots y la migración a
nuevo equipamiento de servidor.
2.1.1. Virtualización mediante QEMU, KVM y LibVirt
Recomendamos la instalación del servidor de OpenGnsys Enterprise en el sistema de virtualización Open Source Libvirt/QEMU/KVM, herramientas nativas en Linux. Este sistema hace uso de los sistemas de aceleración de máquinas virtuales disponibles en CPU modernas (Intel VT-x) así como técnicas de aceleración de paravirtualización VirtIO disponibles en Linux.
Libvirt ofrece un front-end gráfico y de línea de comandos de fácil uso que facilita la interacción con el software de máquina virtual QEMU sobre el que se despliega. KVM es el hipervisor de las máquinas virtuales.
El despliegue del servidor de OpenGnsys en un entorno virtualizado trae consigo beneficios importantes:
-
Realización de "snapshots" de las máquinas virtuales. Permite copias de seguridad en caliente,con la VM encendida, y en frio, con la VM apagada.
-
Migraciones de la máquina virtual a un nuevo hardware cuando esté disponible sin tener que instalar de nuevo el servidor de OpenGnsys.
-
Creación de una segunda máquina virtual de preproducción para el despliegue inicial de actualizaciones de OpenGnsys sobre una serie de aulas de pruebas para validar la correcta operatividad antes de la puesta en producción.
No obstante, es posible desplegar OpenGnsys Enterprise en otras tecnologías de virtualización existentes.
2.2. Requisitos para la instalación de OpenGnsys Enterprise 3
OpenGnsys Enterprise 3 requiere una instalación de Ubuntu 22.04 LTS (Jammy Jelly) para su despliegue, ofrecemos un script de instalación que facilita su despliegue.
2.3. Script de instalación de OpenGnsys Enterprise
La instalación OpenGnsys Enterprise se realiza mediante un instalador disponible en la zona de descargas de la web de OpenGnsys Enterprise.
Una vez descargado el instalador de la web de OpenGnsys Enterprise
(https://opengnsys.soleta.eu/download) procederemos a su ejecución como
root:
$ wget https://opengnsys.soleta.eu/installer.sh # bash installer.sh
El script de instalación solicita la siguiente información:
-
Usuario y contraseña del administrador de OpenGnsys por medio de
ogCP. -
Usuario y contraseña para la base de datos
MySQLque usaogserver. -
Contraseña del servidor de SAMBA.
-
Interfaz de red del servidor de OpenGnsys.
-
Dirección IP del servidor de OpenGnsys.
Specify your ogCP user name: Specify your ogCP password:
Specify MySQL database new user (to be used by ogServer): Specify your MySQL database password:
Specify password for your SAMBA server:
A continuación se solicita la interfaz de red del servidor de OpenGnsys, se muestra un listado con las interfaces disponibles en el sistema, en el ejemplo se muestra la interfaz ens3 está disponible.
Detected network interfaces: ens3 Introduce the default network interface:
Tras esto, se muestran las direcciones IP asociadas a la interfaz seleccionada y se solicita al usuario que especifique la dirección IP a utilizar.
Configured addresses in network device ens3: 192.168.122.78 Introduce your default OpenGnsys server IPv4 address:
Finalmente, se muestra la configuración previa a la instalación, solicitando confirmación al usuario.
Please, verify that your configuration below is correct. =================================== - ogCP user name: admin - ogCP password: test123 - MySQL database user name: admin - MySQL database password: mysecretpass - SAMBA server password: mysambapass - Default network device: ens3 - Server IP address: 192.168.122.78 =================================== Would you like to proceed with this installation of OpenGnsys Enterprise (y/n)?
| Anote esta información de configuración en un lugar seguro. |
| Es posible abortar de manera segura la instalación en este momento de confirmación tecleando 'n' y pulsando la tecla 'intro'. |
| No interrumpa el proceso de instalación si acepta proceder con la instalación de OpenGnsys Enterprise. |
2.4. Actualización de OpenGnsys Enterprise 3
El instalador de OpenGnsys Enterprise configura de manera automática el repositorio de APT propio que ofrece las actualización para su instalación de OpenGnsys Enterprise 3.
$ cat /etc/apt/sources.list.d/soleta.list
deb [trusted=yes] https://opengnsys.soleta.eu/ubuntu-jammy/ /
Por lo que el administrador sólo tiene que ejecutar las siguientes órdenes para mantener su instalación de OpenGnsys Enterprise 3 actualizada.
# apt update
# apt upgrade
| Es conveniente mantener actualizado su sistema OpenGnsys Enterprise 3 con la última versión de los paquetes disponible. |
Tras esto, es conveniente reiniciar los servicios ogserver y ogcp si
han sido actualizados.
# systemctl restart ogserver
# systemctl restart ogcp
2.5. Migración desde OpenGnsys 1.1.1d
Para migrar una instalación existente de OpenGnsys 1.1.1d a
OpenGnsys Enterprise 3 debe de realizar los siguientes pasos:
-
La exportación de la base de datos, denominada
ogAdmBDy su posterior importación. -
La copia de las imágenes de los sistemas operativos existentes.
Asegúrese de que ha detenido el proceso ogAdmServer antes de realizar la
exportación de la base de datos existente en su instalación de OpenGnsys 1.1.1d.
|
# mysqldump -u root -p ogAdmBD > dump-bd-111d.sql
# gzip dump-bd-111d.sql
Compruebe si emplea un nombre diferente a ogAdmBD para su base de datos.
|
Para la importación de la base de datos a OpenGnsys Enterprise, realice una copia de seguridad previa de la base de datos existente.
# mysqldump -u root -p ogAdmBD > dump-bd-oge-3.sql
# gzip dump-bd-oge-3.sql
y tras esto, pare el servicio ogserver:
# systemctl stop ogserver
y proceda a la importación de la base de datos:
# mysql -u root -p
mysql> drop database ogAdmBD;
mysql> create database ogAdmBD;
mysql> (pulse ctrl-D)
# mysql -u root -p ogAdmBD < dump-bd-111d.sql
y relance el servicio ogserver, que realizará la actualización de la base
de datos de manera automática.
# systemctl start ogserver
Compruebe que el estado de ogserver es correcto mediante:
# systemctl status ogserver
En caso de error, consulte /var/log/syslog para comprobar el error
de ogserver al actualizar la base de datos.
|
Si emplea la instalación de ISC DHCP server disponible en OpenGnsys 1.1.1d,
debe también importar el fichero de configuración /etc/dhcp/dhcpd.conf
existente a la nueva instalación de OpenGnsys Enterprise 3 y reiniciar el
servicio isc-dhcp-server.
Recuerde reemplazar grldr (arranque de Grub4DOS) por
grub/i386-pc/core.0 (Grub2) para arch 00:00 en la configuración de DHCP que
representa el equipamiento BIOS legacy.
|
| Opengnsys Enterprise 3 únicamente hace uso de Grub2 tanto para ordenadores UEFI y BIOS legacy. |
Recuerde copiar las imágenes de sistemas operativos existentes a la carpeta
/opt/opengnsys/images de su nueva instalación de OpenGnsys Enterprise 3.
Compruebe el propietario y los permisos de las imágenes importadas
pertenecen al usuario opengnsys y el grupo opengnsys.
|
Finalmente, realice dos operaciones:
-
Establezca el modo de arranque
ogrelivedesde la vista deCommandsen el desplegableClientsen el apartadoSet Boot Mode. -
Establezca
6.1.0-32-amd64como live por defecto.
| Los sistemas ogLive empleados en 1.1.1d no son compatibles con OpenGnsys Enterprise 3. |
| Soleta Networks ofrece soporte para la migración desde OpenGnsys 1.1.1d y versiones anteriores, para más información, contacte opengnsys@soleta.eu. |
3. Integración con el servidor de ISC DHCP preinstalado
En este apartado se describe la integración de la preinstalación del servidor de DHCP ISC en OpenGnsys Enterprise 3.
|
Si dispone de un servidor de DHCP externo, consulte con el administrador de DHCP. No obstante, este apartado le puede servir de referencia. |
|
En caso de disponer de una instalación de OpenGnsys 1.1.1d y hacer uso de un
servidor de DHCP externo, recuerde reemplazar |
3.1. Añadir un equipo cliente al servidor ISC DHCP
|
Es necesario asignar una IP a los equipos clientes a través del servidor DHCP para habilitar el arranque por red (PXE), puedes leer más detalles en esta sección. |
A continuación se describen los pasos para asignar una dirección IP estática
para un equipo cliente a través de la configuración del servidor DHCP
(dhcpd.conf)
Para ello bastará con incluir en el fichero /etc/dhcp/dhcpd.conf una entrada
host con los datos del cliente: un nombre, dirección MAC y dirección IP a
asignar.
A continuación se encuentra una entrada de ejemplo para un equipo con MAC 00:26:b0:e6:bc:18 al cual se le asigna la dirección IP 10.141.10.106.
host nombre_cliente { hardware ethernet 00:26:b0:e6:bc:18; fixed-address 10.141.10.106; }
Una vez actualizada la configuración del servidor DHCP debemos reiniciar el servicio ejecutando:
systemctl restart isc-dhcp-server.service
Para asegurarte de que el servidor de DHCP se inicia la próxima vez que hagas un reinicio del servidor, activa el servicio:
systemctl enable isc-dhcp-server.service
3.2. Depuración de problemas del servidor de DHCP
A continuación se listan mensajes de error o avisos habituales que se pueden encontrar en el log del servidor DHCP.
Puedes consultar el log del servidor DHCP ejecutando journalctl -u isc-dhcp-server
|
3.2.1. "DHCPDISCOVER from … : no free leases"
Si nos encontramos en el log del servidor DHCP mensajes como el siguiente:
DHCPDISCOVER from d0:bf:9c:03:3b:40 via eth0: network 10.1.0.0/16: no free leases
En tal caso se ha recibido una petición de un cliente cuya dirección física (MAC) no tiene asignada una dirección IP estática.
Asegúrate de:
-
La configuración del servidor DHCP incluye una asignación de IP estática para la MAC del cliente.
-
Reiniciar el servidor después de haber realizado cambios en la configuración del servidor DHCP.
| Este log puede ser normal si hay más servidores de DHCP en la red y su servidor solo se encarga del equipamiento registrado en OpenGnsys Enterprise 3. |
4. ogCP: web de administración de OpenGnsys Enterprise 3
ogCP (OpenGnsys Control Panel) es la web de administración de
OpenGnsys Enterprise 3.
Ofrece inicialmente un pantalla de validación del usuario administrador, tras la cual se da paso a una vista de estadísticas de uso y el estado general del despliegue.
La estructura de la web es la siguiente:
-
La barra lateral (
sidebar) generalmente muestra un árbol con los centros, aulas y equipos registrados. Si es una nueva instalación, aparece únicamente un centro por defecto sin aulas y equipamiento. No obstante, puede mostrar otra información según la vista seleccionada en la barra superior. -
La barra superior, que enumera la siguientes vistas:
-
Dashboardofrece la vista de estadísticas. -
Comandosofrece la vista de comandos que se puede realizar sobre los clientes. -
Imagesofrece la vista para la gestión de las imágenes, trales como el listado, borrado y consulta de los detalles de las imágenes. -
Ámbitosofrece la vista para gestionar el árbol de centro, aulas y ordenadores que aparece en elsidebar. -
Reposofrece la vista para gestionar repositorios, en caso de tratarse de una instalación en las que el servidor únicamente actúe como panel de control sobre los clientes, y las transferencia de datos se realicen en repositorios de proximidad a los clientes. -
Serverspara establecer las IPs asociadas al servidor, por defecto la instalación incluye una única IP inicial. -
Livespara la gestión de las imágeneslivedisponibles. -
Userspara la gestión de usuarios.
-
-
Marco principal, que muestra el contenido de la vista seleccionada.
4.1. Instalación de ogCP
El instalador de OpenGnsys Enterprise 3 disponible en
https://opengnsys.soleta.eu/download ya incluye a ogCP por defecto.
4.2. Acceso a ogCP: dirección del servicio
Para acceder a la página de validación ogCP, tiene que introducir la siguiente dirección en el navegador:
http://(ip_del_servidor):5000/
Si el servidor de OpenGnsys tiene una interfaz de red configurada
con la dirección 10.141.0.1, entonces puedes acceder a ogCP a través de la
dirección: http://10.141.0.1:5000
|
4.3. Restricción de acceso y soporte HTTPS para ogCP
ogCP dispone de un unit file para systemd que lanza el servicio ogCP tras
la instalación. Es posible realizar modificaciones en dicho unit file para
restringir el acceso a ogCP a una cierta dirección IP y activar el soporte
de HTTPS.
Para ello hay que definir un override en el unit file de ogcp para systemd,
puesto que no se recomienda la edición a mano del fichero del
fichero /lib/systemd/system/ogcp.service ya que los cambios realizados
manualmente se pierden tras una actualización de paquete ogcp.
Para definir un override del unit file que se instala en el paquete ogcp
se invoca el siguiente comando que abre un editor:
systemctl edit ogcp.service
En caso de querer exponer el acceso a ogCP desde una dirección IP específica
hay que hacer uso del parámetro --bind, por ejemplo, si solo se quiere exponer
el servicio a través de la interfaz `10.141.10.1
[Service] ExecStart= ExecStart=-/opt/opengnsys/ogcp/flask/bin/gunicorn --workers 1 --bind=10.141.10.1:5000 ogcp:app
Tras este cambio, es necesario relanzar el servicio ogCP:
# systemctl restart ogcp.service
|
Activación del certificado autofirmado snakeoil
Para activar el soporte de HTTPS es posible hacer uso del certificado digital
autofirmado make-ssl-cert generate-default-snakeoil que genera los ficheros: /etc/ssl/private/ssl-cert-snakeoil.key /etc/ssl/certs/ssl-cert-snakeoil.pem Al tratarse de un certificado autofirmado, el usuario obtendrá un aviso en el navegador que indica que el certificado no es fiable, para que dé su consentimiento. Por ello, consideramos que lo más conveniente generar certificados digital generados por una autoridad de certificación, tales como los ofrecido por Fábrica Nacional de Moneda y Timbre (FNMT) o el proyecto Let’s Encrypt. |
Para la activación de HTTPS, se puede emplear de nuevo la funcionalidad de
override que ofrece systemd:
systemctl edit ogcp.service
y hay que incluir los parámetros --keyfile y --certfile, tal y como se muestra en el ejemplo:
[Service] ExecStart= ExecStart=-/opt/opengnsys/ogcp/flask/bin/gunicorn --workers 1 --certfile=/etc/ssl/certs/ssl-cert-snakeoil.pem --keyfile=/etc/ssl/private/ssl-cert-snakeoil.key --bind=0.0.0.0:5000 ogcp:app
Tras este cambio, es necesario relanzar el servicio ogCP:
# systemctl restart ogcp.service
Una vez activado HTTPS, el acceso al portal de login de ogCP a través del
puerto 5000 se puede realizar a través de https://(ip):5000/, sustituyendo
(ip) por la dirección de la máquina que ejecuta ogCP.
|
Uso de gunicorn, un servidor HTTP WSGI para el despliegue de ogCP
gunicorn es un servidor HTTP WSGI es la opción recomendada para despliegues
en producción de ogCP. Este servidor viene incluido en el propio paquete |
4.4. Vista de administración de ogCP
En este apartado se describen las vistas de administración disponibles en ogCP y su función.
4.4.1. Login: Vista de validación de usuario
Se trata de la vista inicial que muestra ogCP al entrar a la web desde un
navegador. Para ingresar, introduzca el usuario administrador y contraseña
que ha especificado en la instalación de OpenGnsys Enterprise 3.
4.4.2. Dashboard: Vista de estadísticas
El dashboard es la vista principal que encontramos al acceder a ogCP. Contiene secciones que ofrecen una vista aérea del estado actual del despliegue.
-
Fecha y hora de los servidores donde se encuentran los ogServer.
-
Información general del servidor.
-
-
Nombre de servidor.
-
Tiempo desde el arranque del equipo que aloja ogServer.
-
Tiempo desde el arranque del servicio ogServer.
-
Clientes encendidos, hacer click lleva a una vista de detalle.
-
Número de imágenes, hacer click lleva a una vista de Imágenes.
-
Uso de disco.
-
Uso de memoria RAM.
-
Uso de swap.
-
Histórico de despliegues, muestra las últimas 10 imágenes desplegadas e información relevante a cada despliegue, permite inspeccionar la vista despliegues haciendo click en el símbolo
>de la esquina superior derecha. -
Uso del disco el repositorio de imágenes.
-
Datos de memoria RAM en el servidor.
-
Distribución del tipo de firmware en clientes registrados.
-
Listado de las últimas 10 imágenes creadas. Permite inspeccionar la vista últimas imágenes haciendo click en el símbolo
>de la esquina superior derecha. Hacer click sobre el número de clientes abre la vista de clientes del despliegue. -
Listado de ogLives y su uso en clientes.
-
Modos de arranque y su uso en clientes.
-
Clientes online
Listado de clientes online, la vista contiene:
-
Nombre de cliente.
-
Dirección IP de cliente.
-
Velocidad de enlace del cliente (disponible tras el encendido en modo live del cliente).
-
Estado del cliente, la leyenda superior asocia el color del indicador con el estado correspondiente.
-
Enlace a la vista de detalles de cliente.
Últimas Imágenes creadas
Listado de las últimas imágenes creadas.
La zona superior ofrece unos botones para la navegación paginada del historial.
La tabla contiene las siguiente columnas:
-
Nombre de la imagen.
-
Fecha de última creación/modificación.
-
Disponibilidad de la imagen.
Despliegues
Listado de despliegues de imagen en clientes.
La zona superior ofrece unos botones para la navegación paginada del historial.
La tabla contiene las siguiente columnas:
-
Nombre de la imagen.
-
Número de clientes sobre los que se ha realizado el despliegue. Hacer click sobre este campo abre la vista de clientes del despliegue.
-
Número de clientes con resultado fallido.
-
Fecha de comienzo de la operación y duración de la misma.
Clientes del despliegue
Listado de clientes asociado a un despliegue de imagen.
La tabla contiene las siguiente columnas:
-
Nombre del cliente.
-
Dirección IP del cliente.
-
Fecha y hora en la que la operación terminó.
-
Duración de la restauración.
-
Estado (éxito o fallo).
-
Enlace a la vista de detalles de cliente.
-
Enlace a los log de cliente.
4.4.3. Comandos: Vista de administración de ordenadores
En esta vista permite la gestión y mantenimiento en modo live de los
ordenadores registrados en OpenGnsys Enterprise 3, que son las siguientes:
-
Client: Comandos sobre ordenadores clientes
-
Arranque de uno de los sistemas operativos instalados en el ordenador
-
Manejo del espacio de caché disponible en el cliente
-
Búsqueda de cliente
-
Detalles de cliente
-
-
Setup: Configuración de los ordenadores clientes
-
Establecer el modo de arranque
-
Establecer el repositorio al que pertenece el cliente
-
Establecer el live empleado
-
Particionar y formatear de ordenadores cliente
-
-
Power: Opciones de energía de los ordenadores clientes
-
Encender ordenadores
-
Apagar ordenadores
-
Reiniciar ordenadores
-
-
Image: Gestión de imágenes en ordenadores
-
Crear una imagen a partir de un ordenador de referencia
-
Actualizar una imagen existente a partir de un ordenador de referencia
-
Restaurar una imagen a ordenadores de manera masiva
-
Descargar una imagen a la caché de ordenadores de manera masiva
-
-
Inventory: Gestión del inventario de los clientes
-
Consultar el inventario hardware de un ordenador
-
-
Run: Ejecución de scripts sobre los ordenadores
-
Ejecutar un script
-
Ejecutar un comando
-
Consultar la salida por pantalla de un script o comando
-
-
Logs de los ordenadores
-
Log del sistema
-
Log de tiempo real: muestra la actividad más reciente y se actualiza periódicamente
-
|
Órdenes disponibles en modo Linux y Windows
En modo |
4.4.4. Images: Vista de gestión de imágenes
En esta vista los usuarios pueden realizar todas las tareas relacionadas con la gestión y almacenamiento de imágenes.
Las tareas que podemos realizar son las siguientes:
-
Consultar las imágenes existentes
-
Consultar los detalles de la imágenes
-
Listar las imágenes existentes
-
Consultar el inventario de software asociado a una imagen
-
Eliminar una imagen
-
Editar las propiedades de una imagen
-
Importar imágenes entre repositorios (requiere copiado manual del fichero de imagen)
4.4.5. Ámbitos: vista de gestión de centros, aulas y ordenadores
En esta vista se puede gestiona todo lo relacionado con la estructura del árbol de ámbitos. En ella se definen los centros, aulas y equipos registrado en OpenGnsys Enterprise 3.
Las tareas que podemos realizar son las siguientes:
-
Clientes
-
Añadir un cliente
-
Editar un cliente
-
Mover uno o más clientes
-
Importar clientes de manera masiva
-
Borrar clientes
-
Buscar clientes
-
-
Aulas
-
Añadir un aula
-
Editar un aula
-
Eliminar un aula
-
Ver detalles de aula
-
-
Centros
-
Añadir un centro
-
Editar un centro
-
Eliminar un centro
-
Ver detalles de centro
-
-
Carpetas
-
Añadir Carpeta
-
Editar Carpeta
-
Eliminar Carpeta
-
| La primera acción a realizar en una nueva instalación de OpenGnsys Enterprise 3 consiste en la definición del árbol de ámbitos, registrando aulas y ordenadores mediante la funcionalidad de importación masiva de clientes disponible en esta vista. |
Asegúrese de que la MAC y dirección IP que establece para los clientes
importados coincide con la información disponible en el fichero de configuración
del servidor de DHCP que está empleando. En caso de usar la preinstalación
del ISC DHCP server realizada por el instalador de OpenGnsys Enterprise 3,
recuerde editar el fichero /etc/dhcp/dhcpd.conf para añadir las líneas
Host correspondiente a cada ordenador gestionado por OpenGnsys Enterprise
y reinicie el servicio isc-dhcp-server. En caso de emplear un servidor de
DHCP externo, consulte con el administrador del servidor de DHCP.
|
4.4.6. Repositorios: vista de repositorios
En esta vista se gestiona todo lo relacionado con los repositorios registrado. En una instalación nueva, únicamente aparece un repositorio que coincide con el propio servidor en el que se ha instalado OpenGnsys Enterprise 3.
Las tareas que podemos realizar son las siguientes:
-
Detalles de repositorio
-
Añadir repositorio
-
Borrar repositorio
-
Editar repositorio
4.4.7. Servidor: gestión del servidor
Las tareas que podemos realizar desde esta vista es la siguiente:
-
Editar la configuración del servidor para añadir nuevas direcciones IP asociadas al servidor.
| Esta vista es necesaria si el servidor dispone de más de una dirección IP y los ordenadores usan diferentes direcciones IP para alcanzarlo, por ejemplo, en un despligue con segmentación de red mediante VLAN. |
4.4.8. Usuarios: gestión de usuarios
En esta vista se define los usuarios de ogCP.
Las tareas que podemos realizar son las siguientes:
-
Consultar los usuarios existentes
-
Editar los datos de un usuario
-
Eliminar un usuario
| Puede definir usuarios con capacidades restringidas (operadores), para ello emplee la matriz de capacidades del usuario para definir el perfil de usuario. |
Añadir un usuario
Esta vista permite registrar un nuevo usuario en el sistema.
Para dar de alta al usuario, es necesario rellenar los siguientes campos:
-
Nombre de usuario: El identificador único que utilizará la persona para iniciar sesión en la plataforma.
-
Contraseña: La clave de seguridad secreta asociada a la cuenta.
-
Repetir contraseña: Una confirmación exacta de la clave anterior para evitar errores tipográficos al escribirla.
Si el usuario es administrador tendrá acceso a la funcionalidad completa de administración.
Desmarcar la casilla de administrador habilita la matriz de permisos y el listado de centros sobre los
que el usuario podrá operar.
4.5. Administración de ordenadores con ogCP
En este apartado se describe la administración de los ordenadores registrados en OpenGnsys Enterprise 3.
4.5.1. ¿Cómo encender ordenadores?
-
Seleccionar la vista de "Comandos".
-
Seleccionar los equipos a encender en la barra lateral (
sidebar). -
Seleccionar la opción "Encendido (WoL)" en el desplegable "Power".
-
En el marco principal se muestran los clientes seleccionados y el tipo WoL haciendo uso del tipo
Broadcast. Pulse el botónSubmitpara confirmar.
4.5.2. ¿Cómo apagar ordenadores?
-
Seleccionar la vista de "Comandos".
-
Seleccionar los equipos a apagar en la barra lateral (
sidebar). -
Seleccionar opción "Apagado" en el desplegable "Power".
-
En el marco principal se muestran los clientes seleccionados.
-
Para confirmar, pulsar el botón Enviar.
4.5.3. ¿Cómo reiniciar ordenadores?
-
Seleccionar la vista de "Comandos".
-
Seleccionar los equipos a reiniciar en la barra lateral (
sidebar). -
Seleccionar opción "Reiniciar" en el desplegable "Power".
-
En el marco principal se muestran los clientes seleccionados.
-
Para confirmar, pulsar el botón Enviar.
4.5.4. ¿Cómo particionar y formatear ordenadores?
-
Seleccionar la vista de "Comandos".
-
Seleccionar los equipos a configurar en la barra lateral (
sidebar). -
Seleccionar la opción "Particionar y Formatear" en el desplegable "Configurar".
-
En caso de seleccionar varios equipos se debe seleccionar el equipo base, a usar como plantilla en la próxima pantalla.
-
Primero seleccionar el disco objetivo (en caso de existir múltiples). Posteriormente elegir el esquema de particiones (MBR para ordenadores BIOS legacy y GPT para ordenadores UEFI).
-
Añadir las particiones (botón "Añadir una nueva partición") eligiendo su tipo de partición y sistema de ficheros.
-
Para confirmar, pulsar en el botón Aceptar.
| Si el ordenador es UEFI, recuerde usar el tipo de partición GPT y definir una partición EFI de tipo FAT32 de al menos 512 MiB si es el disco 1. |
| Si el ordenador es BIOS, recuerde usar el tipo de partición MBR y definir una partición BOOT de tipo BOOT de al menos 16 MiB si es el disco 1. |
4.5.5. ¿Cómo crear una imagen en base a un equipo de referencia?
-
Seleccionar la vista de "Comandos".
-
Seleccionar el equipo modelo en la barra lateral (
sidebar). -
Seleccionar la opción "Crear imagen" en el desplegable "Imagen".
-
Seleccionar disco y partición dentro de las opciones disponibles.
-
Especificar nombre de la imagen, descripción de la imagen, y el repositorio donde guardar la nueva imagen.
-
Para confirmar, pulsar el botón Crear.
|
Los sistemas Windows necesitan de la ejecución de los siguientes comandos antes de la primera creación de imagen:
|
4.5.6. ¿Cómo actualizar una imagen en base a un equipo de referencia?
-
Seleccionar la vista de "Comandos".
-
Seleccionar el equipo modelo en la barra lateral (
sidebar). -
Seleccionar la opción "Actualizar imagen" en el desplegable "Imagen".
-
Seleccionar disco y partición dentro de las opciones disponibles.
-
Seleccionar la imagen que se quiere actualizar.
-
Para confirmar, pulsar el botón Actualizar.
4.5.7. ¿Cómo restaurar una imagen en uno o varios equipos?
-
Seleccionar la vista de "Comandos".
-
Seleccionar el/los equipo/s en la barra lateral (
sidebar). Para múltiples equipos deben compartir el mismo esquema de particiones. -
Seleccionar la opción "Restaurar imagen" en el desplegable "Imagen".
-
Seleccionar disco y partición dentro de las opciones disponibles.
-
Seleccionar la imagen que se quiere restaurar y el método de transferencia (tiptorrent o unicast).
-
Para confirmar, pulsar el botón Restaurar.
4.5.8. ¿Cómo cambiar el modo de arranque por red de los equipos?
-
Seleccionar la vista de "Comandos".
-
Seleccionar el/los equipo/s en la barra lateral (
sidebar). -
Seleccionar la opción "Seleccionar modo de arranque" en el desplegable "Configurar".
-
Seleccionar un modo de arranque de los disponibles.
-
Para confirmar, pulsar el botón OK.
Mods de arranque disponibles
Los siguientes modos de arranque están disponibles para su selección:
-
Disk 1 Partition 1 (11): arranque desde el sistema en el disco 1 y partición 1.
-
Disk 1 Partition 2 (12): arranque desde el sistema en el disco 1 y partición 2.
-
Disk 1 Partition 3 (13): arranque desde el sistema en el disco 1 y partición 3.
-
Disk 1 Partition 4 (14): arranque desde el sistema en el disco 1 y partición 4.
-
Disk 1 Partition 5 (15): arranque desde el sistema en el disco 1 y partición 5.
-
Disk 1 Partition 6 (16): arranque desde el sistema en el disco 1 y partición 6.
-
Disk 1 Partition 7 (17): arranque desde el sistema en el disco 1 y partición 7.
-
Disk 1 Partition 8 (18): arranque desde el sistema en el disco 1 y partición 8.
-
grub: arranque al menú grub.
-
Memory Test (memtest): arranque a la herramienta de test de memoria RAM.
-
ogrelive (HTTP): arranque del entorno oglive transfiriendo el sistema de archivos a través del protocolo HTTP
-
ogrelive (TFTP): arranque del entorno oglive mediante la transferencia tradicional de archivos por el protocolo TFTP.
4.5.9. ¿Cómo añadir centros?
-
Seleccionar la vista de "Ámbitos".
-
Seleccionar la opción "Añadir centro" dentro del subapartado "Centro".
-
Especificar el nombre.
-
Si se desea se puede añadir un comentario.
-
Para confirmar, pulsar el botón Enviar.
4.5.10. ¿Cómo añadir aulas?
-
Seleccionar la vista de "Ámbitos".
-
Seleccionar el centro donde se quiere añadir la sala en el árbol de ámbitos izquierdo.
-
Seleccionar la opción "Añadir sala" dentro del subapartado "Sala".
-
Especificar el nombre y máscara de red.
-
Para confirmar, pulsar el botón Enviar.
4.5.11. ¿Cómo añadir ordenadores?
-
Seleccionar la vista de "Ámbitos".
-
Seleccionar la sala donde se quiere añadir el ordenador (en el árbol de ámbitos izquierdo).
-
Seleccionar la opción "Añadir cliente" dentro del subapartado "Cliente".
-
Especificar el nombre, IP, MAC, máscara de red.
-
Elegir la versión de ogLive para este equipo.
-
Seleccionar repositorio por defecto.
-
Especificar el modo de arranque.
-
Para confirmar, pulsar el botón Crear.
4.6. Fichero de configuración de ogCP
El fichero de configuración de ogCP está disponible en
/opt/opengnsys/ogcp/ogcp/cfg/ogcp.json.
Puede modificar el fichero de configuración para establecer el idioma, por el
momento hay traducciones disponible para el inglés, catalán y castellano que
puede establecer mediante el atributo "LANG" haciendo uso de: en, ca o es
respectivamente, tras lo cual debe reiniciar el servicio ogcp:
# systemctl restart ogcp.service
| El idioma por defecto de ogCP es el inglés, pueden aparecer traducciones incompletas si no hay traducciones disponibles. |
Utilice las vistas de servidor y de usuarios para modificar este fichero, evite cambios manuales en este ficheros.
En caso de olvidar la contraseña del usuario administrador, puede editar
este fichero y establecerla mediante: echo -n "contraseña deseada" | sha512sum
Todos los cambios hechos manualmente en el fichero de configuración requieren
que el usuario reinicie el servicio del ogCP.
4.7. Ejemplo de fichero de configuración de ogcp
{
"LANG": "en", (1)
"USERS": [ (2)
{
"USER": "admin", (3)
"PASS": "5b722b307fce6c944905d132691d5e4a2214b7fe92b738920eb3fce3a90420a19511c3010a0e7712b054daef5b57bad59ecbd93b3280f210578f547f4aed4d25", (4)
"ADMIN": true, (5)
"SCOPES": [ ] (6)
},
{
"USER": "user",
"PASS": "5b722b307fce6c944905d132691d5e4a2214b7fe92b738920eb3fce3a90420a19511c3010a0e7712b054daef5b57bad59ecbd93b3280f210578f547f4aed4d25",
"ADMIN": false,
"SCOPES": [
"Unidad Organizativa (Default)"
]
],
"SERVERS": [ (7)
{
"NAME": "Server 1", (8)
"IP": "127.0.0.1", (9)
"PORT": 8888, (10)
"API_TOKEN": "a0e9ab768cbe93dab5b1998e952bcdb7" (11)
}
],
"API_TOKEN": "70cc5ad321638712da6bbb3123132d"
}
| 1 | Parámetro de configuración del idioma. Soporta las cadenas "en", "es" y "ca". |
| 2 | Lista con todos los usuarios disponibles. |
| 3 | Nombre de usuario. Este es el nombre que utilizaremos en el formulario de login. |
| 4 | Hash de la contraseña que usaremos para autenticarnos. |
| 5 | Valor booleano que establece si un usuario tiene el rol de administrador. |
| 6 | Ámbitos sobre los que el usuario tiene permisos. |
| 7 | Lista con todos los servidores/ogServer a gestionar. |
| 8 | Nombre del servidor. Campo puramente visual que ayuda a los usuarios a identificar el servidor en el que están trabajando. |
| 9 | Dirección IP del servidor. |
| 10 | Puerto al que escucha ogServer. |
| 11 | Clave que requiere el ogCP para autenticarse contra el ogServer. |
4.8. Cómo definir scripts de postconfiguracion
OpenGnsys Enterprise 3 permite la ejecución automática de scripts de configuración tras la operación de restauración de imagen.
Esta característica permite automatizar la configuración de los clientes sin necesidad de modificar la imagen base. El ciclo de postconfiguración se divide en dos fases que se ejecutan en momentos distintos:
-
Scripts Live: Se ejecutan en caliente desde el entorno oglive justo al terminar la restauración.
-
Scripts de Sistema Operativo (Windows): Se inyectan en la partición restaurada y se programan para ejecutarse en el primer arranque del sistema operativo final.
Todos estos scripts se almacenan de forma centralizada en el servidor y se gestionan, asignan y ordenan directamente sobre cada imagen desde ogCP.
4.8.1. Creación de scripts live
Los scripts live se ejecutan inmediatamente tras terminar la restauración de imagen dentro del sistema oglive.
Los scripts deben añadirse en el directorio /opt/opengnsys/client/postconf/live/
en el servidor.
Variables de entorno especiales:
-
OG_DEVICE_PATH: contiene el device path a la partición objetivo de la restauración.
4.8.2. Creación de scripts Windows
Para sistemas Windows es posible definir scripts .cmd y .ps1 cuya ejecución se programará para el siguiente arranque del sistema para aquellas configuraciones que no sean posibles desde el sistema oglive.
El sistema se reiniciará tras terminar la ejecución de los scripts y la salida de ejecución
estará disponible en C:\postconf.log.
Los scripts deben añadirse en el directorio /opt/opengnsys/client/postconf/windows/
en el servidor.
4.8.3. Asignación de scripts a imágenes
La vista Images permite configurar los scripts de postconfiguración de cada imagen
a traves del menú Editar imagen.
Desde la vista podemos seleccionar los scripts live y windows que deseemos asignar a la imagen, así como su orden de ejecución arrastrando los elementos (orden de ejecución descendente).
4.9. Cómo ejecutar un comando en clientes
-
Seleccionar la vista de "Comandos".
-
Seleccionar el/los equipo/s en la barra lateral (
sidebar). -
Seleccionar la opción "Ejecutar comando" en el desplegable "Lanzar".
Variables de entorno especiales:
-
OG_DEVICE_PATH: contiene el device path a la partición objetivo de la restauración.
Permite la ejecución de comandos para entornos Linux, ogLive y Windows.
Requiere la correcta selección del intérprete a usar para la ejecución.
El elemento Partición corresponde al valor de la variable de entorno OG_DEVICE_PATH,
solo es posible seleccionar el valor de este campo para sistemas live.
4.10. Cómo ejecutar un script en clientes
-
Seleccionar la vista de "Comandos".
-
Seleccionar el/los equipo/s en la barra lateral (
sidebar). -
Seleccionar la opción "Ejecutar script" en el desplegable "Lanzar".
Variables de entorno especiales:
-
OG_DEVICE_PATH: contiene el device path a la partición objetivo de la restauración.
El elemento Partición corresponde al valor de la variable de entorno OG_DEVICE_PATH,
solo es posible seleccionar el valor de este campo para sistemas live.
La lista de scripts se obtiene a partir de los contenidos en el directorio /opt/opengnsys/client/shell/
en el servidor.
El intérprete es asignado automáticamente al seleccionar un script a partir de su extensión.
4.11. Inventario hardware
Esta vista permite analizar la composición del hardware de los clientes desplegados, ofreciendo tanto una perspectiva global como una inspección al detalle por equipo.
4.11.1. Resumen General
Ubicada en la parte superior, muestra métricas consolidadas del parque de equipos divididas en dos bloques principales:
-
Distribuciones de componentes: Gráficos de barras que agrupan a los clientes según su capacidad de almacenamiento, distribución de RAM, tipo de disco, núcleos de CPU y versiones de firmware.
-
Perfiles de hardware: Una tabla técnica que agrupa los equipos que comparten la misma configuración (mismos núcleos, RAM, cantidad de discos HDD/SSD y disponibilidad de GPU).
-
Descarga de datos: El botón Descarga de la zona superior genera un archivo
hardware_inventory.jsoncon la información de perfil de todos los clientes seleccionados.
4.11.2. Vista Detallada (Inspección por Cliente)
Ubicada en la parte inferior, permite auditar el desglose completo de componentes (CPU, RAM, Almacenamiento, GPU, Placa Base, etc.) de un equipo específico.
|
Al hacer clic en cualquier fila de las tablas de la sección superior, el sistema cargará automáticamente la lista de esos clientes específicos en el menú desplegable de la vista detallada para su libre selección e inspección rápida. |
4.12. Filtrado del árbol de ámbitos
La vista Comandos ofrece una funcionalidad de filtrado de árbol de ámbitos con el objetivo de permitir una selección mas eficiente de los clientes sobre los que se desea trabajar. Esta selección es posible mediante los botones disponibles en la zona central de la vista.
Una vez aplicado un filtro se ocultan los clientes que no corresponden al estado seleccionado y una selección de centro o aula solo marcará los clientes que son actualmente visibles.
El aplicado de un filtro no elimina selecciones previas con el fin de permitir selecciones progresivas con distintos filtros.
Ejemplo de uso:
Supongamos que se ha mandado una operación WOL mediate script a un conjunto de clientes de un aula y se desea realizar su selección en la vista Comandos para operar sobre ellos una vez arranquen.
Pulsando el botón de filtro WOL se actualizará la barra lateral exclusivamente mostrando los clientes que cumplan las condiciones de filtro. Podremos combinar los filtros y la barra lateral mostrar todos aquellos clientes que cumplan alguno de los estados impuestos por el filtro seleccionado.
Seleccionando la casilla del aula se marcarán todos los clientes que cumplan el filtro mientras que los que no serán ignorados y no verán su estado de selección modificado.
Eliminando el filtro podremos ver nuevamente la totalidad del árbol en la barra lateral, comprobando así que los clientes apagados no forman parte de la selección.
4.13. Búsqueda de clientes
El primer paso es acceder al menú de búsqueda de clientes en la vista Comandos o Ámbitos.
Una vez allí nos encontramos con el formulario de filtrado el cual no ha recibido cambios. Para este caso seleccionamos el live que deseemos cambiar y acto seguido pulsar el botón de búsqueda.
A continuación se nos presenta un bloque estructurado de Centro (botones verdes) y aulas (botones azules). Hacer click sobre alguno de los botones selecciona los clientes correspondientes al ámbito.
|
Solo se puede operar sobre aulas y clientes de un mismo centro al mismo tiempo con el fin de mantener el alcance de operaciones mas controlado. |
Haciendo click en la flecha triangular a la izquierda de cada botón de aula podemos desplegar el listado de clientes. Cada botón de cliente se puede pulsar individualmente para un control mas fino de la selección.
Cada botón de cliente respresenta visualmente su estado de selección (oscuro = seleccionado). Y también tenemos a disposición las burbujas de cliente que solemos encontrar en la mayoría de vistas para tener una visión global de toda la selección.
Finalmente, con la selección de clientes realizada se puede proceder a abrir la vista de la operación deseada y trabajar sobre los clientes.
5. Componentes en OpenGnsys Enterprise
En este apartado se describen los componentes que forman OpenGnsys Enterprise, explicando su función en el ecosistema y su uso.
5.1. ogServer: Servidor principal de OpenGnsys Enterprise
El ogServer es el componente de orquestación que ofrece una API REST HTTP para recibir órdenes administrativas y las envía a los equipos clientes conectados a OpenGnsys. El ogServer mantiene las información los clientes y su estado, tales como la velocidad de enlace y el resultado del último comando ejecutado.
Los front-ends de administración se comunican con el ogServer a través de una API REST HTTP. Para el cuerpo de las peticiones se usan el formato JSON. ogServer utiliza una base de datos MySQL para el almacenamiento de toda la información relacionada con la gestión con OpenGnsys. Por ejemplo, en la base de datos se guarda todo el esquema de centros, aulas y equipos que hemos definido.
5.1.1. Fichero de configuración: ogserver.json
El archivo de configuración para ogServer se encuentra en
/opt/opengnsys/etc/ogserver.json. Permite indicar la IP, puerto, token donde
escuchará el proceso de ogServer, autenticación para la conexión a la base de
datos, además de interfaz por defecto para Wake On Lan y directorio donde guardar
imágenes creadas por los clientes (también denominado repositorio).
{
"rest" : { (1)
"ip" : "127.0.0.1",
"port" : "8888",
"api_token": "5a5ca1172136299640a9f47469237e0a"
},
"database" : { (2)
"ip" : "127.0.0.1",
"port" : "3306",
"name" : "opengnsys",
"user" : "mysql",
"pass" : "mysql"
},
"wol" : { (3)
"interface" : "lo"
},
"repository" : { (4)
"directory" : "/opt/opengnsys/images"
}
}
| 1 | Configuración de red para el proceso de ogServer: IP, puerto y valor del token para autenticar peticiones de otras aplicaciones que traten de comunicarse con ogServer. |
| 2 | Autenticación para la base de datos: IP y puerto donde escucha MySQL, nombre de la base de datos, usuario y contraseña. |
| 3 | Interfaz por defecto para el envío de paquetes WakeOnLan. Aplicable cuando el servidor donde se ejecuta ogServer posee más de una interfaz de red. |
| 4 | Configuración del repositorio de imágenes. Indica la carpeta donde se almacenan y sirven las imágenes para los clientes. |
5.2. ogclient: Cliente de OpenGnsys para Live, Linux y Windows
ogclient es un agente que se ejecuta en los ordenadores administrados por OpenGnsys Enterprise 3. ogclient mantiene un canal de comunicación activo por medio del puerto tcp/8889 de ogserver, reporta su estado y la velocidad del enlace de red, y queda a la espera de recibir órdenes administrativas del ogserver, tales como particionar, formatear y restaurar una imagen de un sistema operativo.
ogclient es una software multiplataforma que permite la administración de
ordenadores que ejecutan el sistema operativo live, así como los sistemas
operativos Linux y Windows que se despliegan sobre los ordenadores
administrados.
Existen dos variantes de ogclient que hay que instalar en las imágenes de los sistemas operativos para poder realizar acciones administrativas posteriores al despliegue del sistema operativo:
-
ogclient para Linux
-
ogclient para Windows, tanto para la version 10 y 11.
|
ogclient sobre Linux y Windows soporta únicamente el reinicio, apagado y la ejecución de órdenes y scripts. |
|
Ambas versiones están disponibles en https://opengnsys.soleta.eu/download para su descarga e instalación. |
|
El sistema operativo |
5.2.1. Fichero de configuración: ogclient.json
El archivo de configuración para ogclient para el modo live se encuentra en
/opt/opengnsys/client/ogclient/cfg/ogclient.json. Permite indicar la IP y
puerto donde el ogServer espera la conexión de los clientes, el nivel de log,
el modo de funcionamiento y las credenciales de samba.
{
"opengnsys": {(1)
"ip": "192.168.56.10",
"port": 8889,
"log": "INFO",
"mode": "live",
},
"samba": {(2)
"activate": true,
"user": "opengnsys",
"pass": "og"
}
}
| 1 | Conexión con el ogServer y funcionamiento del ogclient: IP y puerto para la
conexión con el ogServer, nivel de logging (DEBUG, INFO, WARNING, ERROR
y CRITICAL), modo de operación (live, linux, windows y virtual). |
| 2 | Credenciales del servidor samba para el modo ogLive. |
5.2.2. Instalación en Linux
ogclient para Linux está soportado en versiones de Ubuntu iguales o superiores a 20.04.
ogclient para Linux requiere los paquetes python3-psutil y ethtool que se deben instalar previamente.
apt install python3-psutil ethtool
Descargue el fichero .deb de ogclient para Linux en la web de OpenGnsys Enterprise
en la dirección https://opengnsys.soleta.eu/download
A continuación se enumeran los pasos para su instalación:
-
Descargar el paquete
.debde ogclient para Linux. -
Instalar en el sistema con el comando
sudo dpkg -i {paquete}(sustituyendo{paquete}por el nombre del paquete de ogclient para linux) -
Durante la instalación especificar la IP del ogServer
-
Para reportes de inicio de sesión activar el servicio de usuario de la siguiente manera:
5.2.3. Instalación en Windows
Existe un instalador para Windows disponible en la sección de descargas de la web de OpenGnsys Enterprise en https://opengnsys.soleta.eu/download
Para su instalación basta con ejecutar el instalador. Durante el proceso se solicita al usuario indicar la ip del ogServer al cual ogclient para Windows se conectará.
Una vez finalizado el proceso de instalación ogclient para Windows está listo y funcionando como un servicio del sistema. Además reporta inicios y cierres de sesión de usuario.
Instalación gráfica
El instalador por defecto se ejecuta de manera gráfica. La primera vista es una confirmación de conformidad con la licencia del software.
Solo si se detecta una instalación previa se dará la opción a preservar la configuración para realizar una actualización del software (marcado por defecto), o en en caso contrario proceder con una instalación con nueva configuración.
Si en la vista anterior se ha desmarcado el checkbox de preservar configuración o si se el entorno no dispone de una instalación previa se muestra una vista donde es requerido introducir la IP del servidor.
Al pulsar Next se muestra un diálogo de confirmación.
La última vista es la de progreso de instalación.
Instalación desatendida
La flag /S indica un modo de ejecución silenciosa y sin interfaz gráfica.
Para hacer una instalación desatendida limpia simplemente se requiere de la IP del servidor:
ogclient_installer.exe /S ip=192.168.1.1
Actualizar ogClient preservando la configuración solo requiere no definir una dirección IP. El instalador detecta automáticamente la instalación previa y preserva la carpeta de configuración al completo:
ogclient_installer.exe /S
6. ogclient Live
6.1. Establecer temas para grub2
OpenGnsys Enterprise 3 instala grub2 en disco en cada restauración de imagen.
En caso de problemas transitorios en la red que impidan al equipo adquirir la
configuración de arranque mediante PXE, la instalación de grub2 en disco
permite al usuario arranque alguno de los sistemas operativos instalados en el
ordenador del aula.
Desde ogCP se ofrece un modo de arranque que permite explícitamente iniciar
un equipo desde la instalación de grub2 que está instalado en disco. Con este
modo de arranque, la configuración de grub2 obtenida por red da paso a la
configuración de grub2 existente en disco. Puede establecer este modo de
arranque desde ogCP en Commands → Setup → Set boot mode → grub.
De esta manera se da paso a grub2 en disco, mostrando al usuario un menú de
arranque básico en modo texto con una selección de los sistemas operativos
instalados en el ordenador.
OpenGnsys Enterprise 3 usa grub2 para la gestión de arranque de
equipamiento UEFI y BIOS legacy.
|
6.1.1. Instalación de un tema para grub2
Es posible mejorar la apariencia del menú que grub2 muestra haciendo uso de
un tema personalizado para grub2.
Para ello, cree la carpeta /opt/opengnsys/client/grub/themes que alojará los
temas a aplicar al instalar grub2 en disco, para ello invoque:
mkdir -p /opt/opengnsys/client/grub/themes
Tras esto, cambie a dicho directorio:
cd /opt/opengnsys/client/grub/themes
descargue el tema de ejemplo:
wget https://opengnsys.soleta.eu/grub2-theme-example.tgz
y descomprímalo mediante:
tar xvzf grub2-theme-example.tgz
esto creará una carpeta default con el tema por defecto.
Esta carpeta contiene el fichero theme.txt con la descripción del tema usando
la sintáxis de temas que ofrece grub2.
6.1.2. Despliegue del menú de grub2 personalizado en ordenadores
El menú de grub2 personalizado que instale en el servidor surte efecto tras
la restauración de una imagen de sistema operativo. Puede comprobar en los log
de cliente que el tema de grub2 se ha encontrado y que la personalización se ha
realizado correctamente.
Consulte el fichero /opt/opengnsys/log/client/A.B.C.D.log donde A.B.C.D es
la IP del ordenador, en el que puede apreciar una línea de log similar a la
que mostramos a continuación.
(2025-08-04 19:23:41) ogClient: [INFO] - Grub theme default detected, copying files to /mnt/sda1/EFI/grub/Boot/themes/default...
Tras la restauración, si establece el modo de arranque grub se muestra el
menú de grub2 personalizado.
6.1.3. Modificaciones del tema de grub2 de ejemplo
Puede modificar el fichero theme.txt disponible en el tema de ejemplo, no
obstante, la elaboración de temas personalizados toma tiempo, puede remitirse a
la documentación de grub2 themes para más información sobre la sintáxis del
fichero theme.txt.
En la carpeta /opt/opengnsys/client/grub/themes/default, dispone de un
fichero background.png con la imagen de fondo de color oscuro que se empleará
al mostrar el menú de arranque de grub2. Reemplace este fichero con la imagen
PNG con su propio fondo personalizado.
Al crear una imagen de fondo alternativa background.png, asegúrese
de que emplea las mismas dimensiones y resolución.
|
background.png: PNG image data, 1920 x 1080, 8-bit/color RGB, non-interlaced
Si desea usar un fondo claro es necesario aplicar más cambios en el tema para ajustar demás elementos, pues el tema de ejemplo está diseñado para fondo oscuro.
En general, la elaboración de temas de grub2 personalizados toma tiempo,
en el futuro ofreceremos un generador de tema que facilite esta tarea.
7. Kiosk
El componente Kiosk es una función integrada en ogClient, diseñada para proporcionar una interfaz simplificada y fácil de usar para los sistemas live.
Características generales: * Monitorización del sistema * Logs en tiempo real * Apagado y reinicio * Arranque de sistema operativo * Restauración de imagen en caché
7.1. Vista arranque
-
información de cliente: muestra la IP de la interfaz emplezada en comunicarse con el servidor, la dirección MAC, hostname y velocidad de enlace. Si la velocidad de enlace es inferior a 1 Gbps se mostrará resaltada en rojo.
-
Cabecera configurada por el usuario.
-
Listado de sistemas operativos instalados.
-
Botones de reinicio, restauración desde caché, arranque y apagado.
-
Pie de vista configurado por el usuario.
|
La restauración necesita de la imagen en caché. |
7.2. Vista monitor de sistema
La vista de monitorización de sistema se muestra automáticamente cuando se lanza una operación sobre el cliente. Se muestra un circulo rotativo en la esquina superior izquierda durante la duración de la operación indicando que el cliente está ocupado. Durante ese intervalo no es posible acceder a la vista de arranque.
A la izquierda observamos las gráficas de rendimiento: * Uso de memoria. * Uso de CPU. * Uso de disco. * Información de cliente.
A la derecha están los logs de cliente, los cuales se actualizan en tiempo real.
7.3. Atajos de teclado
-
F1: Abre la vista del monitor del sistema. -
F2: Abre la vista de arranque del sistema operativo. -
P: Abre el panel lateral.
7.4. Configuración
La configuración personalizada se carga desde:
-
/opt/opengnsys/kiosk/kiosk.json -
/opt/opengnsys/client/kiosk/kiosk.json(en el servidor)
Ejemplo de contenido de kiosk.json:
{
"locale": "es_ES",
"boot_view": {
"os_columns": 2
},
"restore": {
"enabled": true,
"password": {
"hash": "a3a4a958f3a172f5d875e05ac1dc71be2d30346d8e20b34c40cf2848412a8f62",
"salt": "1e88efdde64909e3523417e0feb6804c",
"type": "sha256"
}
},
"side_panel": {
"enabled": true
},
"theme": {
"main_color": [49, 69, 106],
"header": "/opt/opengnsys/kiosk/theme/header.png",
"footer": "/opt/opengnsys/kiosk/theme/footer.png"
}
}
Descripción de los parámetros:
-
locale: Fuerza el idioma de la interfaz. Los valores soportados sones_ESyca_ES. -
boot_view:-
os_columns: Número máximo de botones de sistemas operativos mostrados horizontalmente en la vista de arranque.
-
-
restore:-
enabled: Si esfalse, el botón de restauración se oculta en la vista de arranque. -
password:-
hash: Contraseña en formato hash (obligatorio si se utiliza contraseña). -
type: Algoritmo de hash utilizado. Puede sersha256obcrypt(sha256por defecto). -
salt: Valor necesario únicamente cuando se utilizasha256.
-
-
-
side_panel:-
enabled: Si esfalse, el panel lateral se oculta.
-
-
theme:-
main_color: Lista con los valores RGB [R, G, B] (0–255) utilizados como color principal del tema. -
header: Ruta de la imagen de la cabecera. -
footer: Ruta de la imagen del pie de página.
-
Si un parámetro no está definido en kiosk.json, se utilizará su valor predeterminado.
7.5. Restauración con contraseña
Si no se configura una contraseña o el valor de hash está vacío, el botón de restauración no estará protegido.
Cuando se configura una contraseña, la aplicación solicitará su introducción antes de iniciar la restauración y solo continuará si la contraseña es correcta.
7.5.1. Generación de contraseña con SHA256 (compatibilidad con Live Legacy)
Ejecute el comando:
$ password="test"; salt=$(openssl rand -hex 16); echo -n "${salt}${password}" | sha256sum | awk -v s="salt = $salt\nhash =" '{print s,$1}'
Ejemplo de salida:
salt = 1e88efdde64909e3523417e0feb6804c hash = a3a4a958f3a172f5d875e05ac1dc71be2d30346d8e20b34c40cf2848412a8f62
Añada los valores de salt y hash al fichero de configuración. No olvide definir type como sha256.
7.5.2. Generación de contraseña con BCRYPT (recomendado)
Ejecute el comando:
$ password="test"; echo "hash = $(htpasswd -nbB "" ${password} | cut -d: -f2)"
Ejemplo de salida:
hash = $2y$05$hIDv0LNiBOzp1JmCDgB22eDIdFvTHzHtI5RjFcQno5NcqB46RuKFu
Añada los valor hash al fichero de configuración. No olvide definir type como bcrypt.
8. ogCLI: interfaz de línea de comandos para OpenGnsys Enterprise
ogCLI es la interfaz de línea de comandos para OpenGnsys Enterprise. Ofrece
un alternativa al panel de control web y permite al usuario ejecutar
las tareas de administración de los equipos clientes de manera programática.
8.1. Instalación de ogCLI
ogCLI se instala por defecto en OpenGnsys Enterprise al usar el script de instalación
disponible en https://opengnsys.soleta.eu/download
|
ogCLI se encuentra empaquetado en los repositorios APT de
Soleta Networks. Su instalación es sencilla, ejecutando el siguiente comando:
# apt install ogcli
8.2. Fichero de configuración: ogcli.json
El fichero de configuración reside en /opt/opengnsys/etc/ogcli.json. Este fichero permite
indicar la dirección IP, el puerto y el API token del ogServer al que queremos conectarnos.
| La API token de ogServer puede consultarse en su fichero de configuración |
{
"api_token" : "XIW5aYT7sO58YQPn0GIvmo6YJiW0WWWkb", (1)
"ip": "192.168.56.10", (2)
"port": 8888 (3)
}
| 1 | API token de ogServer. |
| 2 | Dirección IP de ogServer. |
| 3 | Puerto donde escucha el ogServer, por defecto 8888. |
8.3. Obtener ayuda para los comandos en ogCLI
La mayoría de los comandos que podemos ejecutar en ogCLI disponen de la
opción --help para mostrar opciones específicas y subcomandos disponibles.
Podemos obtener todos los comandos disponibles con ogcli --help. Si un
comando requiere indicar un subcomando adicional, estos pueden obtenerse a
través de ogcli [comando] --help.
$ ogcli --help
usage: ogcli [-h] [{create,list,restore,request,set,setup}]
positional arguments:
{create,list,restore,request,set,setup}
Subcommand to run
optional arguments:
-h, --help show this help message and exit
ogcli list$ ogcli list --help
usage: ogcli list [-h] {clients,scopes,modes,hardware,client,images,disks}
positional arguments:
{clients,scopes,modes,hardware,client,images,disks}
optional arguments:
-h, --help show this help message and exit
8.4. Ejemplos de uso de ogCLI
A continuación se muestran ejemplos de los comandos de ogCLI junto a su salida por pantalla.
8.4.1. Listado del árbol de ámbitos: equipos, carpetas, aulas y centros.
Este comando permite solicitar a ogServer una lista con todos los ámbitos registrados en la base de datos. Un ámbito puede ser un centro, un aula, un equipo o una carpeta. Las carpetas son agrupaciones de aulas o equipos.
ogcli list scopes
Salida de ejemplo:
{
"scope": [{(1)
"id": 1,(2)
"name": "Unidad Organizativa (Default)",(3)
"scope": [{(4)
"id": 1,
"name": "Soleta",
"scope": [{
"id": 1,
"name": "uefi",
"scope": [{
"id": 2,
"ip": "10.141.10.101",
"name": "Robertorre",
"scope": [],
"type": "computer"
}],
"type": "folder"
}],
"type": "room"
}],
"type": "center"(5)
}]
}
| 1 | Comienzo del listado de ámbitos. |
| 2 | ID del ámbito. |
| 3 | Nombre del ámbito. |
| 4 | Ámbitos descendientes. |
| 5 | Tipo de ámbito (Centro, aula, equipo o carpeta). |
8.4.2. Listar clientes conectados a ogServer
Con este comando, ogCLI envía una petición a ogServer para recibir una lista con todos los clientes que estén conectados en ese momento.
Como resultado, imprime por pantalla un JSON con la información de los clientes conectados. Incluyendo dirección, modo de operación, resultado del último comando y velocidad de enlace.
ogcli list clients
{
"clients": [(1)
{
"addr": "192.168.56.11",(2)
"last_cmd": {
"result": "success"(3)
},
"speed": 1000,(4)
"state": "OPG"(5)
},
{
"addr": "192.168.56.12",
"last_cmd": {
"result": "failure"
},
"speed": 1000,
"state": "OPG"
}
]
}
| 1 | Array JSON con los clientes. |
| 2 | Dirección IP del cliente. |
| 3 | Resultado de la última operación. |
| 4 | Velocidad de enlace del cliente (Mbit/s). |
| 5 | Estado del cliente (ogLive: OPG, Linux: LNX, Windows: WIN, ogVDI: VDI, Cliente ocupado: BSY, Intento de arranque por red: WOL_SENT) |
8.4.3. Listar detalles de un cliente concreto
Con este comando, ogCLI envía una petición a ogServer para recibir los datos que figuran en la base de datos respecto a un cliente.
Como resultado, imprime por pantalla un JSON con dicha información donde podremos comprobar datos como nombre, dirección MAC, modo de arranque, entre otros.
ogcli list client --client-ip 192.168.56.11
{
"boot": "pxe",
"center": 1,
"hardware_id": 0,
"id": 1,
"ip": "192.168.56.11",
"livedir": "ogLive",
"mac": "0800270E6511",
"maintenance": true,
"name": "pc11",
"netdriver": "generic",
"netiface": "eth0",
"netmask": "255.255.255.0",
"remote": false,
"repo_id": 1,
"room": 1,
"serial_number": ""
}
8.4.4. Listar modos de arranque por red disponibles
Con este comando, ogCLI envía una petición a ogServer para recibir una lista con todos los modos de arranque por red que se han configurado en el servidor.
Imprime por pantalla un listado JSON los nombres de los diferentes modos de arranque.
Este nombre se usa en ogcli set mode.
ogcli list modes
soportados en la instalación de OpenGnsys.
{
"modes": [
"disk1-part2",
"oglive",
"disk1",
"disk1-part3",
"ogrelive",
"memtest-pxe",
"disk1-part1",
"oglive-admin",
"unknown"
]
}
8.4.5. Cambiar el modo de arranque por red de los clientes
Este comando envía una petición para cambiar la configuración de arranque por red de uno o varios clientes.
ogcli set mode --mode oglive --room-id 22
|
Para obtener el id del aula se utiliza el comando |
Salida de ejemplo: Sin errores, no hay salida por pantalla. Podremos comprobar preliminarmente
que el modo de arranque ha cambiado consultado los detalles de los clientes con
ogcli list client.
8.4.6. Encender equipos por red: Wake On Lan.
Este comando solicita al ogServer el envío del paquete mágico Wake on Lan a los clientes especificados para arrancarlos por red.
ogServer pondrá en estado WOL_SENT a los clientes que no estuvieran conectados
a él. Para comprobar que el equipo en efecto ha arrancado podremos comprobar su estado
con el comando ogcli list clients.
$ ogcli request wol --client-ip 192.168.56.11
$ ogcli request wol --room-id 8
$ ogcli request wol --center-id 26
Salida de ejemplo: Sin errores, no hay salida por pantalla.
8.4.7. Particionado y formateo
Este comando sirve para definir el esquema de particiones y formatearlas con el fin de prepararlo para la restauración de imágenes.
$ ogcli setup disk \
--type dos \ (1)
--num 1 \ (2)
--part 1,LINUX,EXT4,40G \ (3)
--part 4,CACHE,CACHE,10G \ (3)
--client-ip 192.168.56.11 (4)
| 1 | Esquema de partición que queremos que tenga el disco. Se puede elegir el
tipo MBR o GPT: --type dos o --type gpt |
| 2 | Número del disco objetivo (por defecto 1). Sirve para seleccionar el disco sobre el que queremos trabajar en caso de que el equipo tenga varios. |
| 3 | Datos específicos de la partición. Se define el número de la partición, el
tipo (EFI, WINDOWS, LINUX o CACHE), el sistema de ficheros (FAT32, NTFS, EXT4 o
CACHE) y el tamaño de la partición (M: Megabytes, G: Gigabytes, y T:
Terabytes): NUM,TIPO,FS,TAM |
| 4 | Cliente(s) objetivo. Se puede mandar esta orden a centro, aulas y clientes. |
Salida de ejemplo: Sin errores, no hay salida por pantalla
8.4.8. Listar imágenes del repositorio
Con este comando se solicita al ogServer una lista de imágenes presentes en la
carpeta destinada al repositorio de imágenes (Normalmente
/opt/opengnsys/images).
| ogCLI obtiene las imágenes del servidor donde se encuentra el ogServer. En caso de querer un listado de imágenes de otro repositorio es necesario cambiar la configuración de ogCLI para conectarse al ogServer presente en dicho repositorio. |
$ ogcli list images
{
"disk": {(1)
"free": 7406645248,
"total": 52573995008
},
"images": [(2)
{
"datasize": 5939200000,
"id": 9,
"modified": "Thu Jul 28 15:02:47 2022",
"name": "imgprueba",
"permissions": "744",
"repo_id": 1,
"size": 1869968426,
"software_id": 1,
"type": 1
},
...
}
| 1 | Apartado con información sobre el espacio total y disponible de la partición
donde está montada la carpeta /opt/opengnsys/images. |
| 2 | Array JSON con la información de las imágenes presentes en el repositorio. Los datos de mayor interés son el nombre e ID de la imagen, su tamaño (comprimido y sin comprimir en bytes), fecha de la última modificación e ID del repositorio en el que se encuentra. |
8.4.9. Crear imagen de la partición de un cliente modelo
Con este comando podemos iniciar la creación de una imagen de un sistema operativo de un equipo modelo.
$ ogcli create image --disk 1 --part 1 --name matematicas1 --desc "Windows 10 con Sage" --repo-id 1 --client-ip 192.168.56.11
Salida de ejemplo: Sin errores no hay salida por pantalla.
8.4.10. Actualizar imagen existente en base a la partición de un cliente modelo
Con este comando podemos realizar la actualización de una imagen creada anteriormente. Este comando debe usarse cuando se quiere sobreescribir una imagen.
$ ogcli update image --disk 1 --part 1 --id 20 --client-ip 192.168.56.11
Salida de ejemplo: Sin errores no hay salida por pantalla.
8.4.11. Restaurar imagen de sistema operativo en cliente
Con este comando podemos iniciar la restauración de una imagen sobre uno o varios clientes indicados.
$ ogcli restore image --id 1 --disk 1 --part 1 --client-ip 192.168.56.11
Salida de ejemplo: Sin errores no hay salida por pantalla.
|
Post configuración personalizada:
configureOsCustomExiste un mecanismo que permite la ejecución de un shell script personalizado en `bash' tras la restauración de una imagen (también referido como script de post-configuración) en `/opt/opengnsys/client/scripts/configureOsCustom. Si se crea un shell script en la ruta indicada, se invocará en la fase de post-configuración, tras la restauración de un sistema operativo. Este shell script se ejecuta únicamente en el modo ogLive, por lo que no se ejecuta durante el arranque del sistema operativo restaurado en cuestión. |
8.4.12. Listado de repositorios
El comando list repos permite obtener la información de los repositorios configurados
y registrados en el servidor.
$ ogcli list repos
{
"repositories": [
{
"id": 1,(1)
"name": "Repositorio (Default)",(2)
"addr": [(3)
"192.168.52.10"
]
},
{
"id": 21,
"name": "pruebas",
"addr": [
"192.168.52.11"
]
}
]
}
| 1 | Id del repositorio. |
| 2 | Nombre del repositorio. |
| 3 | Listado de las IPs del repositorio. |
8.4.13. Listado de sistemas live
Con este comando se solicita al ogServer una lista de los ogLive que están actualmente disponibles en el servidor para su distribución por PXE, detallando cuál se utiliza de manera predeterminada.
$ ogcli list live
{
"default": 2, (1)
"oglive": [(2)
{
"directory": "6.12.41+deb13-amd64",
"date": "2025-08-25 15:26:43",
"count": 0
},
{
"directory": "6.12.73+deb13-amd64",
"date": "2026-02-25 09:50:28",
"count": 0
},
{
"directory": "6.18.5+deb13-amd64",
"date": "2026-03-03 11:25:01",
"count": 8
}
]
}
| 1 | Valor de índice del live por defecto en la lista definida en el campo oglive. |
| 2 | Listado de los live disponibles, fecha de instalación y número de clientes asignados a arrancar con el live mediante PXE. |
8.4.14. Listado de hardware
Este comando permite consultar el inventario de componentes físicos de uno o varios clientes. El ogServer agrupa los componentes idénticos en perfiles para optimizar la gestión de las especificaciones de hardware en las aulas.
$ ogcli list hardware --client-ip 192.168.56.11 192.168.56.12 192.168.56.13
{
clients: {(1)
"192.168.56.11": 0,
"192.168.56.12": 0,
"192.168.56.13": 1
}
"profiles": [(2)
{ perfil 0 },
{ perfil 1 }
]
}
| 1 | Listado de clientes y su índice de perfil de hardware correspondiente en la lista profiles. |
| 2 | Listado de perfiles de hardware. Cada perfil tiene la siguiente estructura: |
{
"chassis": {
"format": "desktop"
},
"cpu": [
{
"vendor": "Advanced Micro Devices [AMD]",
"family": "AMD Ryzen 5 9600X 6-Core Processor",
"cores": 6,
"threads": 12,
"arch": "x86_64"
}
],
"disk": [
{
"type": "ssd",
"size": 250059350016,
"model": "Samsung SSD 850"
},
{
"type": "nvme",
"size": 480103981056,
"model": "Force MP510",
"vendor": "Phison Electronics Corporation"
}
],
...
}
8.4.15. Listado de contenido en disco
Con este comando se obtiene el esquema de particionado actual, los sistemas operativos instalados y el estado de las imágenes restauradas en el disco de un cliente específico.
$ ogcli list disks --client-ip 192.168.56.11
{
"partitions": [
{(1)
"disk": 1,
"partition": 0,
"code": "GPT",
"size": 244198584,
"used_size": 0,
"free_size": 0,
"filesystem": "DISK",
"image": 0,
"timestamp": "1970-01-01 01:00:00",
"software": 0
},
{(2)
"disk": 1,
"partition": 1,
"code": "EFI",
"size": 524288,
"used_size": 108486656,
"free_size": 427319296,
"filesystem": "FAT32",
"os": "unknown",
"image": 0,
"timestamp": "1970-01-01 01:00:00",
"software": 0
},
{(3)
"disk": 1,
"partition": 2,
"code": "NTFS",
"size": 102400000,
"used_size": 46798188544,
"free_size": 58059407360,
"filesystem": "NTFS",
"os": "Windows 11 Pro Education (25H2)",
"image": 363,
"timestamp": "2026-06-25 15:15:18",
"software": 0
},
{
"disk": 1,
"partition": 3,
"code": "CACHE",
"size": 61440000,
"used_size": 41502384128,
"free_size": 16938823680,
"filesystem": "CACHE",
"os": "unknown",
"image": 0,
"timestamp": "1970-01-01 01:00:00",
"software": 0
}
]
}
| 1 | La partición 0 de cada disco corresponde a la información del propio disco. Indica el tamaño total de disco y el esquema de particionado. |
| 2 | Ejemplo de partición sin imagen restaurada, el timestamp contiene el origen del UNIX epoch cuando no se ha realizado ninguna restauración
de imagen en una partición. |
| 3 | Partición sobre la que se ha restaurado un sistema. El campo os muestra el nombre del sistema operativo, image el id de la imagen restaurada,
timestamp el momento en el que se realizó la restauración y software corresponde al id de perfil de software asociado a la imagen. |
8.4.16. Arranque de sistema operativo
Este comando permite enviar una orden para que uno o varios clientes arranquen un sistema operativo concreto ya instalado en disco.
$ ogcli request session --room-id 8 --disk 1 --part 2
Sin errores no hay salida por pantalla.
8.4.17. Descarga de imágenes en caché
Con este comando se solicita a los clientes que inicien la descarga de una imagen específica desde el repositorio hacia su partición local de CACHE. Esto permite preparar los equipos de manera anticipada para futuras restauraciones.
$ ogcli fetch image --id 12 --room-id 8
Sin errores no hay salida por pantalla.
8.4.18. Espera del estado de los clientes
El comando ogcli wait clients permite esperar hasta que los clientes indicados alcancen un estado determinado.
$ ogcli wait clients \
--room-id 1 \ (1)
--state LINUX \ (2)
--timeout 40 (3)
| 1 | Selección de clientes. Permite indicar el conjunto de clientes objetivo mediante aula, centro o lista de IPs:
--room-id ID, --center-id ID, --client-ip IP [IP …] |
| 2 | Estado objetivo que deben alcanzar los clientes. Estados disponibles:
OFF, WOL_SENT, BUSY, LIVE (por defecto), LINUX, LINUX_SESSION, WINDOWS, WINDOWS_SESSION. |
| 3 | Tiempo máximo de espera en segundos. El valor 0 (por defecto) indica espera indefinida. Si se alcanza el límite de tiempo, el comando finaliza con código de retorno 2. |
Ejemplos:
1 entren en estado LINUX.$ ogcli wait clients --room-id 1 --state LINUX
LIVE.$ ogcli wait clients --client-ip 192.168.56.11 192.168.56.12
1 entren en estado LINUX.$ ogcli wait clients --center-id 1 --state LINUX --timeout 40
1.2.3.4,OPG 1.2.3.3,ERROR 1.2.3.5,WIN 1.2.3.6,OFF
La salida se compone de pares IP,ESTADO en cada línea.
9. tiptorrent: método de transferencia de imágenes distribuido
9.1. ¿Qué es tiptorrent?
tiptorrent es una solución para la transferencia de ficheros de gran
tamaño en una red mediante transmisiones unicast capaz de evitar una sobrecarga
del servidor central a través de redirecciones entre los propios clientes.
Resulta de utilidad cuando el canal entre servidor y los clientes no escala para manejar múltiples transferencias directas con los clientes.
9.2. ¿Cómo funciona tiptorrent en OpenGnsys Enterprise?
Figure 1. Diagrama básico de tiptorrent en OpenGnsys
tiptorrent sigue un modelo híbrido entre cliente/servidor y P2P.
Un servidor inicial sirve el fichero a un máximo de clientes en paralelo, estos clientes
al terminar la descarga comparten el fichero con otros clientes pendientes para
aliviar el canal entre servidor y clientes.
Esto implica que los clientes ejecutan tanto el cliente como el servidor (para compartir a otros clientes).
El fichero compartido por el servidor de tiptorrent se divide a nivel lógico en un número de partes que favorece que los clientes compartan estas partes con rapidez, en vez de esperar a la descarga del fichero completo para empezar a compartir.
9.2.1. Servidor (tiptorrent)
| El servidor de tiptorrent se encarga de procesar las peticiones de descarga de ficheros y de redirigir estas peticiones en caso de ser posible. Inicia la transferencia con un máximo de clientes, aquellos que no pueda redirigir a otro servidor quedan en espera. |
tiptorrent [--root,-t /path/to/serving/folder](1)
[--redirect,-r X](2)
[--max-clients,-n Y](3)
| 1 | Con esta opción indicamos la carpeta que contiene las imágenes que queremos
servir con tiptorrent. Lo normal es que esta ruta sea /opt/opengnsys/images. |
| 2 | El número de redirecciones que queremos que haga tiptorrent. Por ejemplo, si ponemos tres redirecciones, cada cliente que descargue una parte parte del servidor luego la servirá a otros tres clientes. |
| 3 | El número máximo de clientes que pueden estar descargando simultáneamente del servidor tiptorrent. El resto de clientes serán puesto en espera hasta que termine alguna de las descargas. |
El servidor de tiptorrent es una implementación minimalista de un servidor HTTP que procesa peticiones GET y POST. Además, el servidor de tiptorrent es capaz de recibir mensajes de clientes notificando que ya han descargado algún archivo. Siendo capaz de redirigir futuras peticiones de ese mismo archivos a aquellos clientes que han notificado haberlo descargado ya.
Con la opción --root el servidor de tiptorrent sirve los ficheros que se
encuentran en la carpeta donde se ha ejecutado o se puede especificar una ruta
especifica.
La redirección a otros clientes puede activarse o no usando la opción
--redirect. Sirve como máximo de veces que un mismo cliente recibirá
redirecciones para las diferentes partes de la imagen.
Con --max-clients se puede controlar el máximo número de transferencias activas
en paralelo.
9.2.2. Cliente (tiptorrent-client)
tiptorrent-client es un pequeño cliente HTTP creado para pedir partes de un fichero a un servidor de tiptorrent. Actualmente el número de partes son 64.
| El cliente de tiptorrent solicita un fichero (todas las partes) a un servidor de tiptorrent, y en caso de ser redirigido repite la misma solicitud al servidor indicado. |
tiptorrent-client IP_servidor nombre_fichero (1) (2)
| 1 | La dirección IP del servidor que está ejecutando el servidor tiptorrent y donde está la imagen que queremos descargar. |
| 2 | El nombre de la imagen que queremos descargar. |
9.3. ¿Cómo se integra tiptorrent con OpenGnsys?
tiptorrent se encuentra disponible como método de transferencia para
imágenes de sistemas operativos en OpenGnsys Enterprise.
| Para poder utilizar tiptorrent como método de transferencia el cliente objetivo debe disponer de partición de caché. |
El servidor repositorio de OpenGnsys ejecuta exclusivamente el servidor para servir las imágenes, mientras que los clientes de OpenGnsys ejecutan tanto el cliente como el servidor de tiptorrent con redirecciones deshabilitadas.
9.3.1. ¿Cómo restaurar una imagen con tiptorrent desde ogCP (interfaz web)?
Se añade en la pantalla de Restaurar Imagen una nueva opción para realizar la transferencia de la imagen usando tiptorrent. (Falta añadir una imagen)
9.3.2. ¿Cómo instalar tiptorrent en OpenGnsys?
La instalación de OpenGnsys Enterprise ya incluye tiptorrent y lo configura automáticamente para poder trabajar con el sin necesidad de ninguna intervención manual.
-
El servidor se encuentra en el paquete
tiptorrent-static -
El cliente se encuentra en el paquete
tiptorrent-client-static
9.3.3. Integración del servidor de tiptorrent con systemd
| El instalador de OpenGnsys Enterprise se encarga de configurar y activar el servicio de systemd de tiptorrent. No hace falta que el usuario intervenga para disponer del servidor de tiptorrent listo para operar con OpenGnsys. |
En el caso del servidor, si instalamos manualmente el paquete APT no es
suficiente para la puesta en marcha del servidor de tiptorrent. Necesitamos
ejecutarlo. Para ello se ha creado una plantilla de systemd
(tiptorrent@.service) para poder ejecutar instancias de tiptorrent como un
servicio. Gracias a la flexibilidad de la plantilla podremos especificar la
carpeta a servir directamente en el nombre del servicio. Siendo
/opt/opengnsys/images la ruta típica donde se guardan las imágenes, podemos
generar el nombre de la instancia para la plantilla de la siguiente manera:
systemd-escape --template=tiptorrent@.service -p /opt/opengnsys/images
> tiptorrent@opt-opengnsys-images.service
Finalmente para crear y ejecutar inmediatamente el servicio usamos systemctl:
systemctl enable --now tiptorrent@opt-opengnsys-images.service
Podemos usar systemctl status para conocer el estado del servicio:
soleta@opengnsys-server:~$ systemctl status
tiptorrent@opt-opengnsys-images.service
● tiptorrent@opt-opengnsys-images.service - tiptorrent server with root
folder at /opt/opengnsys/images
Loaded: loaded (/lib/systemd/system/tiptorrent@.service; indirect;
vendor preset: enabled)
Active: active (running) since Fri 2021-10-01 09:23:40 CEST; 1 weeks 0
days ago
Main PID: 25847 (tiptorrent)
Tasks: 1 (limit: 4644)
CGroup:
/system.slice/system-tiptorrent.slice/tiptorrent@opt-opengnsys-images.service
└─25847 /usr/bin/tiptorrent --redirect --root /opt/opengnsys/images
9.3.4. Consulta de logs de tiptorrent
El logging de tiptorrent también está integrado en systemd, a través de journalctl.
Para consultar los logs del servidor de tiptorrent basta con ejecutar el comando
journalctl como se muestra a continuación.
journalctl -u tiptorrent@opt-opengnsys-images.service (1)
--since "10 min ago" (2)
nov 03 12:53:07 monstruo tiptorrent[19381]: Starting tiptorrent server, max_clients=3 redirection=3 root=/opt/opengnsys/images
nov 03 12:55:24 monstruo tiptorrent[19291]: accepting client connection from 10.141.10.2:52598
nov 03 12:55:24 monstruo tiptorrent[19291]: closing connection with 10.141.10.2:52598
nov 03 12:55:24 monstruo tiptorrent[19291]: accepting client connection from 10.141.10.2:52604
nov 03 12:55:24 monstruo tiptorrent[19291]: no client redirections are available for 10.141.10.2:52604
nov 03 12:55:24 monstruo tiptorrent[19291]: client 10.141.10.2:52604 starts download for TEST.19
nov 03 12:55:24 monstruo tiptorrent[19291]: client 10.141.10.2:52604 finished to download successfully
nov 03 12:55:24 monstruo tiptorrent[19291]: adding client redirection to 10.141.10.2:9999 for TEST.19
nov 03 12:55:24 monstruo tiptorrent[19291]: closing connection with 10.141.10.2:52604
[...]
| 1 | -u permite filtrar los logs por nombre del servicio |
| 2 | --since permite indicar un punto inicial del que obtener logs |
10. ogrelive: nuevo sistema live para la administración de los ordenadores
|
Las imágenes ogLive disponibles en OpenGnsys 1.1.1d están obsoletas, por lo que es necesario reestablecer el live por defecto en caso de migración para los clientes siempre que provengan de una migración de 1.1.1d o versiones inferiores. Para más información, contacte opengnsys@soleta.eu. |
ogrelive es un sistema operativo live basado en Linux que se envía a los
equipo mediante el arranque por red. Esta distribución arranca en memoria RAM
y nos permite realizar tareas administrativas sobre los discos de los
ordenadores.
Durante el arranque se descargan los ficheros initrd.img, vmlinuz y
filesystem.squashfs y mediante el protocolo http desde el servidor web
Apache (puerto tcp/80) ya disponible con la instalación de OpenGnsys Enterprise.
También es posible descargarlos mediante tftp, pues es frecuente
que el equipamiento UEFI anterior a 2017 no disponga de soporte http.
El arranque por red de ogrelive se lleva a cabo siguiendo la especificación de PXE. Los equipos actuales incluyen en la ROM de la tarjeta de red la implementación de la especificación de un cliente PXE. Un cliente PXE contiene un conjunto de protocolos estándar establecidos en la industria.
| Antes de comenzar el proceso de arranque por red es necesario que el equipo cliente sea configurado para arrancar usando este método. Para ello es necesario cambiar el modo de arranque en el firmware (BIOS) del cliente. |
10.1. Requisitos
Para hacer uso de ogrelive es necesario un sistema OpenGnsys Enterprise actualizado,
para ello invoca:
apt update
apt upgrade
En caso de que ogserver y ogcp hayan recibido actualizaciones, es necesario
relanzar los servicios.
systemctl restart ogserver
systemctl restart ogcp
10.2. Modificación de la configuración de ogserver
Para usar el nuevo ogrelive hay que asegurarse de que el fichero
/opt/opengnsys/etc/ogserver.json contiene las credenciales de
Samba, justo después de la configuración de database debe aparecer:
"samba": {
"user": "opengnsys",
"pass": "mi_clave_de_samba"
},
donde se usa como usuario opengnsys y se indica la contraseña del servidor
de Samba.
Tenga cuidado con las comas en el fichero ogserver.json, pues el formato
json es muy estricto con la sintáxis.
|
Si no aparece la sección "samba" en su fichero ogserver.json, añádalo manualmente.
|
Tras esto, se reinicia el servicio de ogserver:
systemctl restart ogserver
comprueba que el servicio se ha lanzado correctamente con:
systemctl status ogserver
10.3. Instalación de ogrelive
Para la gestión del nuevo live se hace uso de la herramienta ogcli, para
instalarla es necesario realizar:
apt install ogcli
Para obtener lista de ogrelive disponibles en el servidor, invoque la siguiente
orden:
ogcli list live --remote
que muestra la lista de live disponibles, el siguiente listado es un ejemplo
en el que aparece un único live disponible para descarga que se denomina
6.1.0-28-amd64.
{
"ogrelive": [
{
"name": "6.1.0-28-amd64"
}
]
}
Para proceder a la instalación ejecute la siguiente orden usando el nombre del live a instalar:
ogcli install live --name 6.1.0-28-amd64
para comprobar que se ha instalado correctamente, se invoca:
ogcli list live
Esta orden muestra el listado de ogrelive instalados en local. De acuerdo
al ejemplo anterior, si la instalación fue correcta, aparece 6.1.0-28-amd64
en el listado.
10.4. Uso de ogrelive desde ogCP
Desde el panel de control web ogCP, seleccione en la barra de la izquierda los
equipos que usen ogrelive y a continuación seleccione:
Commands -> Setup -> Set ogLive
en este caso de ejemplo, se selecciona el ogrelive disponible en el listado
ofrecido, siguiendo el ejemplo anterior se trata de 6.1.0-28-amd64.
Tras esto, hay que seleccionar la plantilla de arranque ogrelive para
dichos equipos desde el menú:
Commands -> Setup -> Set boot mode
Una vez realizada esta operación, se puede enviar una orden de Power On (WoL)
desde ogCP.
10.5. Actualización incremental de ogrelive
Al invocar la orden ogcli install live para un ogrelive ya instalado, se
descargan e instalan las actualizaciones disponibles en el servidor, siempre
que las hubiese.
Para comprobar si hay actualizacion, invoque la orden:
ogcli install live --name 6.1.0-28-amd64
10.6. ogrelive y equipamiento BIOS (legacy)
El sistema ogrelive también funciona en equipamiento BIOS (legacy) de 64-bits. Ha sido comprobado en equipamiento con más de 10 años.
Para ello, instale el siguiente paquete:
sudo apt install oge-netboot
Tras esto, hay que editar /etc/dhcp/dhcpd.conf, para que use los ficheros
de arranque de red de grub2 que generó la orden grub-mknetdir y que se
ofrecen por mediante el protocolo tftp.
...
} else {
# filename "grldr";
filename "grub/i386-pc/core.0";
}
Puede comentar la línea grldr y la reemplaza por grub/i386-pc/core.0.
Tras esto, tiene que relanzar el servidor de dhcp para que se aplique el
cambio en la configuración.
systemctl restart isc-dhcp-server
A continuación debe volver a establecer el modo de arranque de los equipamientos, para refrescar la configuración de arranque de GRUB2.
10.7. Gestión de caché
Si tras arrancar el equipo hay definida una partición de tipo CACHE, en el
siguiente arranque, el nuevo sistema ogrelive almacenará todos los ficheros
de arranque en esa partición para evitar tener que descargar los ficheros
initrd.img, vmlinuz y filesystem.squashfs en cada arranque.
El sistema ogrelive realiza comprobaciones de checksum para validar si la
versión de los ficheros de arranque en la caché están actualizados, de lo
contrario, acude al servidor para descargar los ficheros más recientes y
actualizar su caché.
10.8. Proceso de arranque de ogrelive
En esta sección se describe el proceso de arranque de ogrelive, desde la obtención de la configuración de red mediante PXE hasta la inicialización completa del entorno y el arranque de ogClient. También se explican los distintos componentes implicados en cada fase del proceso.
10.8.1. Arranque del equipo: Configuración de red con DHCP y opciones adicionales para PXE
Una vez configurados para arrancar por PXE, el primer paso que realizan los equipos es obtener configuración de red a través del protocolo DHCP. En el arranque por red, PXE añade un par de opciones para indicar la dirección de un servidor TFTP y el nombre del fichero de arranque de Grub2 (NBP).
Estas opciones son next-server y filename. Podemos encontrarlas en el fichero de configuración
del servidor de DHCP en OpenGnsys Enterprise (/etc/dhcp/dhcpd.conf).
ddns-update-style none;
option arch code 93 = unsigned integer 16;
option domain-name "example.org";
log-facility local7;
not-authoritative;
subnet 192.168.56.0 netmask 255.255.255.0 {
option domain-name-servers 192.168.121.1;
option broadcast-address 192.168.56.255;
default-lease-time 600;
max-lease-time 7200;
next-server 192.168.56.10; (1)
# 0007 == x64 EFI boot
if option arch = 00:07 { (2)
filename "shimx64.efi.signed"; (3)
} else {
filename "grub/i386-pc/core.0"; (4)
}
use-host-decl-names on;
option routers 192.168.56.1;
host pc14 { hardware ethernet 08:00:27:0E:65:14; fixed-address 192.168.56.14; }
host pc13 { hardware ethernet 08:00:27:0E:65:13; fixed-address 192.168.56.13; }
host pc12 { hardware ethernet 08:00:27:0E:65:12; fixed-address 192.168.56.12; }
host pc11 { hardware ethernet 08:00:27:0E:65:11; fixed-address 192.168.56.11; }
}
| 1 | Esta opción es la que indica a los equipos la dirección IP a la que tienen que solicitar los ficheros de arranque. |
| 2 | Según la arquitectura del equipo (UEFI o BIOS) se descarga un NBP distinto, ambos ofrecidos por Grub2. |
| 3 | Este es el nombre del fichero de arranque que descargan los equipo UEFI. |
| 4 | Este es el nombre del fichero de arranque que descargan los equipo BIOS legacy. |
10.8.2. NBP y plantillas de arranque
Una vez se obtiene la dirección IP del servidor TFTP y el nombre del NBP, el cliente PXE procede a descargarlo.
El NBP se trata de un pequeño bootloader que se carga en memoria RAM y se encarga
de interpretar la configuración de arranque de grub2 que el cliente obtiene del
servidor TFTP. OpenGnsys Enterprise hace uso del NBP que ofrece Grub2 tanto para
equipamiento UEFI como para BIOS legacy.
| TFTP es un protocolo sencillo implementado sobre UDP que está diseñado para ser usado en redes locales. Se trata de un protocolo que degrada su rendimiento cuando el RTT (Round-Trip Time) es superior a 10 ms. |
Esta plantilla de arranque es un fichero de texto que debe estar presente en el servidor TFTP, en caso contrario el arranque por PXE no podrá continuar. En esta plantilla se indica el programa que debe ejecutarse a continuación para continuar con el arranque, además de indicar parámetros adicionales que pudiera admitir.
El NBP busca la plantilla para el equipo usando su dirección física
(MAC). En el caso de OpenGnsys Enterprise se usan las plantillas disponibles
en (/opt/opengnsys/tftpboot/grub).
|
Los equipos configurados para arrancar ogrelive descargan por TFTP/HTTP dos ficheros:
* vmlinuz: Kernel del ogrelive a iniciar.
* initrd.img: Ramdisk inicial para la ejecución del Kernel que incluye drivers y otros binarios
fundamentales como busybox para el arranque del sistema operativo en una primera etapa. Tras esto,
una vez arrancado el sistema ogrelive desde ramdisk, se descarga el fichero filesystem.squashfs
con el sistema de ficheros raíz del ogrelive para dar paso al sistema live completo.
10.8.3. Fin de PXE e inicio de ogrelive
Una vez el equipo dispone del núcleo y ramdisk se inicia propiamente el arranque de ogrelive y se termina con el proceso pertinente a la especificación de PXE.
En el contexto de ogrelive faltan por transferir otros elementos, entre ellos siendo el más importante el sistema de ficheros de ogrelive (ogclient.sqfs). Para ello ya no se utiliza TFTP y se pasa a usar otro método de transferencia más fiable. En el caso de OpenGnsys se usa Samba, una implementación libre del protocolo SMB.
También durante el inicio de ogrelive se montan por Samba diferentes carpetas del servidor de OpenGnsys:
* /opt/opengnsys/client (1) * /opt/opengnsys/log/clients (2) * /opt/opengnsys/images (3)
| 1 | Carpeta con el software ogclient en modo solo lectura. |
| 2 | Carpeta con todos los logs de los clientes, en monta en modo lectura/escritura para que el cliente puedes escribir sus logs en el servidor. |
| 3 | Carpeta con las imágenes de sistemas operativos, en modo lectura/escritura. |
Estas carpetas incluyen todos los archivos necesarios para el arranque de ogClient y funcionamiento normal a la hora de administrar el equipo cliente.
11. Depuración de OpenGnsys Enterprise
En esta sección se describen los distintos servicios que forman parte de OpenGnsys Enterprise, así como los distintos mecanismos para consultar mensajes de log que emiten estos servicios.
Además de los distintos servicios en OpenGnsys, también se describen los pasos para depurar OpenGnsys Enterprise con otras herramientas que permiten al usuario realizar un buen diagnóstico y reporte de incidencias.
11.1. Servicios en OpenGnsys y systemd
Los distintos componentes que forman parte de una instalación de OpenGnsys son ejecutados en segundo plano (por ejemplo, la base de datos, ogServer, DHCP, TFTP). Estos procesos en segundo plano son ejecutados como servicio a través de systemd.
En el contexto de OpenGnsys Enterprise, systemd es un gestor de servicios que nos permite iniciar, parar o monitorear este tipo de procesos en segundo plano.
11.1.1. Inicio, parada y consulta del estado de servicios en systemd
systemd cuenta con la herramienta systemctl para gestionar los servicios.
Todo servicio en systemd debe tener un nombre que lo identifica que
generalmente acaba con el sufijo .service.
A continuación se listan distintos ejemplos de inicio, parada, consulta y la posibilidad de habilitar un servicio (inicio automático del servicio al arrancar el sistema).
foobar.service con systemctlsystemctl start foobar.service # Iniciar el servicio
systemctl stop foobar.service # Parar el servicio
Si queremos que el inicio de un servicio sea automático al arrancar el sistema debemos habilitarlo.
ogserver.service.systemctl enable --now ogserver.service # Habilitar el servicio inmediatamente (1)
systemctl stop --now ogserver.service # Deshabilitar el servicio inmediatamente (1)
| 1 | enable/disable por defecto no inicia o para el servicio, para ello debemos
usar la opción --now. |
La consulta del estado de un servicio nos permite conocer si se encuentra en ejecución, si está habilitado y nos muestra una pequeña porción de los logs asociados a ese servicio.
ogserver.servicesystemctl status ogserver.service
root@galatea:~# systemctl status ogserver
● ogserver.service - OpenGnsys server
Loaded: loaded (/lib/systemd/system/ogserver.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2022-11-15 09:38:40 CET; 1 weeks 6 days ago
Main PID: 1495 (ogserver)
Tasks: 1 (limit: 4915)
CGroup: /system.slice/ogserver.service
└─1495 /opt/opengnsys/sbin/ogserver -f /opt/opengnsys/etc/ogserver.json
nov 29 08:39:05 galatea ogserver[1495]: Sent refresh to: 10.162.94.114
nov 29 08:39:11 galatea ogserver[1495]: Sent refresh to: 10.162.94.123
nov 29 08:39:16 galatea ogserver[1495]: Sent refresh to: 10.162.94.122
nov 29 08:39:22 galatea ogserver[1495]: Sent refresh to: 10.162.94.124
nov 29 08:43:34 galatea ogserver[1495]: Sent refresh to: 10.162.94.124
nov 29 08:46:56 galatea ogserver[1495]: Sent refresh to: 10.162.94.120
nov 29 08:52:41 galatea ogserver[1495]: Sent refresh to: 10.162.94.120
11.1.2. Servicios de systemd relevantes en OpenGnsys
A continuación se listan los nombres de los servicios más relevantes para el funcionamiento de OpenGnsys Enterprise:
-
ogserver.service: Servicio asociado a ogServer
-
mysql.service: Servicio de MySQL para el servidor de la base de datos
-
smbd.service: Servicio asociado al servidor de Samba
-
apache2.service: Servicio asociado al servidor HTTP Apache usado en la consola web clásica
-
isc-dhcp-server.service: Servicio asociado al servidor DHCP
-
tftpd-hpa.service: Servicio asociado al servidor TFTP
-
tiptorrent@opt-opengnsys-images.service: Servicio asociado al servidor de tiptorrent que por defecto sirve el directorio /opt/opengnsys/images
-
ogcp.service: Servicio asociado a ogCP
11.2. ¿Cómo usar syslog y systemd-journal para depurar OpenGnsys Enterprise?
Durante la ejecución de los servicios de OpenGnsys es útil consultar los mensajes de logs que éstos han podido generar. Ya sea para depurar un error o consultar el estado de un servicio. A continuación se introduce syslog y systemd-journal, qué son y cómo utilizarlos para poder consultar los mensajes de log de los servicios de OpenGnsys.
11.2.1. ¿Qué es syslog?
Es una aplicación/demonio responsable de recolectar los mensajes de servicio que provienen de aplicaciones y el núcleo de Linux para luego distribuirlos en archivos de registros.
Por defecto, en Ubuntu se pueden consultar los logs de syslog en
/var/log/syslog.
11.2.2. ¿Qué es systemd-journal?
systemd tiene su propio sistema de logging llamado systemd-journal. Por defecto, en Ubuntu Server 20.04 LTS, syslog y systemd-journal están integrados de manera que los servicios de systemd que escriban en syslog también se pueden consultar desde systemd-journal.
systemd proporciona la herramienta de línea de comandos journalctl para
la consulta de los mensajes de log de los servicios de systemd.
Para consultar los logs de un servicio en específico hay que ejecutar
journalctl con el parámetro -u, que sirve para indicar el nombre del
servicio del cual queremos consultar los mensajes de log.
journalctl -u [nombre del servicio de systemd]
Si añadimos la opción -b, nos mostrará los desde el último reinicio del
servidor:
journalctl -u [nombre del servicio de systemd] -b
Las opciones --since y --until sirven para consultar los logs de un rango
en concreto de tiempo. Se pueden usar diferentes sintaxis para expresar las
fechas:
journalctl -u [nombre del servicio de systemd] --since=2010-10-15 --until="2011-10-16 23:59:59"
La opción -f sirve para hacer un seguimiento activo de los logs que está
escribiendo un servicio. Es decir, ver en tiempo real todos los mensajes que
está escribiendo el software:
journalctl -u [nombre del servicio de systemd] -f
11.2.3. Pasos para depurar ogServer con syslog
Una de las nuevas funcionalidades de ogserver es el uso de syslog. La intención es ofrecer un sistema sencillo para conocer el estado y los fallos que pueda tener. Para comprobar el correcto funcionamiento de ogserver una buena opción es consultar syslog.
Bastaría con hacer lo siguiente para recibir información en tiempo real del ogServer.
$ journalctl -u ogserver -f
11.2.4. Syslog en ogclient
Igual que ogserver, ogclient implementa syslog para la recolección de logs. Para seguir el funcionamiento y depurar el ogclient podemos consular syslog.
Podemos consultarlo haciendo SSH al cliente y leyendo el archivo /var/log/syslog.
$ tail -f /var/log/syslog | grep ogserver
Aquí verás las conexiones que abre y cierra el ogserver, las peticiones que envía y recibe y mensajes de errores que se produzcan.
11.3. Valgrind: análisis de problemas de memoria
Valgrind es un conjunto de herramientas libres que ayuda en la depuración de problemas de memoria y rendimiento de programas. La herramienta más usada es Memcheck. Memcheck introduce código de instrumentación en el programa a depurar, lo que le permite realizar un seguimiento del uso de la memoria y detectar los siguientes problemas:
-
Uso de memoria no inicializada.
-
Lectura/escritura de memoria que ha sido previamente liberada.
-
Lectura/escritura fuera de los límites de bloques de memoria dinámica.
-
Fugas de memoria.
-
Otros.
11.3.1. Depuración de ogserver con Valgrind
Por defecto, ogserver se lanza automáticamente como servicio de systemd. Si queremos depurarlo con Valgrind, tenemos que asegurarnos de que el ogserver este parado.
$ systemctl status ogserver (1)
$ systemctl stop ogserver (2)
| 1 | Comprobamos el estado de ogserver. |
| 2 | Paramos en caso de estar encendido. |
Ahora, ya podemos lanzar ogserver con Valgrind para depurar los errores de memoria que pueda tener.
$ valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes --verbose --log-file=/tmp/valgrind-out.log /opt/opengnsys/sbin/ogserver -f /opt/opengnsys/etc/ogserver.json
11.4. Tcpdump / Wireshark: análisis del tráfico de red
Tcpdump y Wireshark son herramientas de análisis del trafico de la red. Sirven para inspeccionar y estudiar las comunicaciones que realizan las aplicaciones.
11.4.1. Tcpdump: herramienta de línea de comandos
Herramienta para línea de comandos cuya utilidad principal es analizar el tráfico que circula por la red. Permite al usuario capturar y mostrar en tiempo real los paquetes transmitidos y recibidos por la red a la que el ordenador está conectado.
Ejemplo
tcpdump /
-i eth1 / (1)
-w /tmp/captura.pcap / (2)
host 192.168.2.11 port 8889 (3)
| 1 | Indicamos la interfaz a escuchar. |
| 2 | Guardamos la captura en un archivo. |
| 3 | Filtramos los paquetes por dirección y puerto, tanto de entrada como salida. |
Podemos ver más ejemplos con curl cheat.sh/tcpdump.
11.4.2. Wireshark: herramienta gráfica
Wireshark, antes conocido como Ethereal, es un analizador de tráfico utilizado para realizar diagnósticos en redes de comunicaciones, análisis de datos y protocolos, y como una herramienta didáctica. Cuenta con todas las características estándar de un analizador de protocolos de forma únicamente hueca.
La funcionalidad que provee es similar a la de Tcpdump, pero añade una interfaz gráfica y muchas opciones de organización y filtrado de información. Así, permite ver todo el tráfico que pasa a través de una interfaz de red (usualmente una red Ethernet, aunque es compatible con algunas otras) estableciendo la configuración en modo promiscuo. También incluye una versión basada en texto llamada tshark.
11.4.3. Comunicación web y ogserver
Ogserver expone una API REST para recibir todas la comunicaciónes necesarias para el uso de OpenGnsys. Con las diferentes llamadas de la API podemos manejar de nuestra organizacion y mandar diferentes órdenes a los clientes.
11.4.4. Comunicación ogserver y ogclient
Ogclient tambien expone una API REST para recibir las comunicaciones. Contrario al ogserver, la API de ogclient NO está pensada para usarse como se quiera, únicamente el ogserver debe hacer uso de la API. Con las diferentes llamadas de la API, ogserver intercambia información con los clientes y les manda órdenes.
11.5. Comprobación de la memoria RAM (memtest86+)
La restauración de imágenes es un proceso fundamental en la operativa de OpenGnsys, donde la imagen a restaurar se escribe directamente a disco o primero se guarda en la partición de caché de OpenGnsys. Es además el proceso más intensivo desde el punto de vista de E/S y uso de memoria.
Cuando la memoria RAM no funciona correctamente pueden aparecer fallos aleatorios y difíciles de reproducir. En concreto, el proceso de restauración de imágenes a disco hace un uso intensivo de la memoria RAM. La memoria RAM defectuosa resulta en ficheros de imagénes corruptos, cuyo checksum no coincide con el fichero imagen original disponible en el servidor. OpenGnsys ofrece una solución que permite el arranque por red de pruebas de memoria, este tipo de programa también es conocido como memtest.
Un memtest es un programa cuyo objetivo es comprobar el estado de la memoria del equipo donde se ejecuta. Para comprobar de forma exhaustiva la memoria de un equipo es recomendable arrancar el equipo directamente al memtest, en contraposición a ejecutarlo como un programa más de un sistema operativo típico (Windows o Linux). Esto se debe a que toda la memoria que esté siendo ocupada por otros elementos críticos como el núcleo no podrían ser comprobados.
Un memtest suele detectar muy rápido aquellos equipos que tienen memoria RAM defectuosa. Suele reportar los errores en los primeros minutos al iniciar el proceso. No obstante, memtest puede operar durante un tiempo prolongado si se quiere garantizar que el estado de memoria de los equipos es correcto.
| Es recomendable ejecutar memtest con cierta periodicidad sobre servidor y clientes. |
OpenGnsys Enterprise hace uso de memtest86+: memtest86+. En la sección de descargas cualquier usuario puede descargar la ISO, volcar en un USB y arrancar el memtest.
OpenGnsys Enterprise evita la necesidad de crear un medio arrancable de memtest86+ (por ejemplo
un pendrive) ya que pone a disposición del administrador la posibilidad de arrancarlo red.
A continuación se indica cómo arrancar por red memtest86+:
11.6. Copia de seguridad de la base de datos
OpenGnsys Enterprise incluye un script para la creación diaria de una
copia de seguridad de la base de datos. Este script se encuentra en
/etc/cron.daily/oge-db-backup.
Este script es distribuido a través del paquete opengnsys-extra en su
versión 1.2.0-11.
|
Las copias de seguridad se guardan en la carpeta /var/backups/oge/ogAdmBD, con
antigüedad de hasta 30 días.
# ls -lah /var/backups/oge/ogAdmBD ... -rw-r--r-- 1 root root 81K Sep 21 12:10 ogAdmBD.20230921.bz2
Para restaurar la copia de seguridad es suficiente con descomprimir usando
bzip2 y mysql como figura en el ejemplo a continuación.
# systemctl stop ogserver # bzip2 --decompress ogAdmBD.20230921.bz2 # mysql ogAdmBD < ogAdmBD.20230921 # systemctl start ogserver
12. Soporte VLAN
OpenGnsys Enterprise 3 soporta VLAN, para ello tiene que establecer las
IPs asignadas al servidor y a los repositorios para cada segmento VLAN.
Puede añadir más direcciones IP desde las vistas de Server y
Repos en ogCP. En base a esta información, ogserver deduce la IP
más adecuada para que un ordenador pueda alcanzar el servidor y
repositorio de manera adecuada.
| En caso de problemas, consulte los ficheros de configuración de grub2 disponibles en /opt/opengnsys/tftpboot/grub/01-XX:XX:XX:XX:XX para comprobar la dirección IP de servidor y repositorio empleada para un ordenador cliente. |
13. Soporte Secure Boot
OpenGnsys Enterprise incorpora soporte para Secure Boot, permitiendo arrancar los clientes ejecutando componentes de arranque firmados y de confianza.
Las instalaciones nuevas de OpenGnsys Enterprise ya incluyen la configuración necesaria.
Si está actualizando una instalación existente, instale el paquete oge-netboot en el
servidor:
$ sudo apt update
$ sudo apt install oge-netboot
|
Es necesario habilitar Secure Boot desde la configuración de la BIOS/UEFI de los equipos cliente. |
14. Soporte comercial
Soleta Networks ofrece soporte comercial de OpenGnsys Enterprise 3.
Si está interesado en recibir un presupuesto, contactenos en opengnsys@soleta.eu.
15. Código fuente
El código fuente se encuentra en el siguiente repositorio: