Licencia
Copyright (C) 2022-2025 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. -
Gestión de modos de arranque de los ordenadores por medio de PXE, haciendo uso para ello de
GNU Grub2
como 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 server
si no se dispone de un servidor DHCP en la red para la gestión de los ordenadores administrados. -
Un sistema
live
basado 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
MySQL
que 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
ogAdmBD
y 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
ogrelive
desde la vista deCommands
en el desplegableClients
en el apartadoSet Boot Mode
. -
Establezca
6.1.0-32-amd64
como 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:
-
Dashboard
ofrece la vista de estadísticas. -
Commands
ofrece la vista de comandos que se puede realizar sobre los clientes. -
Images
ofrece la vista para la gestión de las imágenes, trales como el listado, borrado y consulta de los detalles de las imágenes. -
Scopes
ofrece la vista para gestionar el árbol de centro, aulas y ordenadores que aparece en elsidebar
. -
Repos
ofrece 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. -
Servers
para establecer las IPs asociadas al servidor, por defecto la instalación incluye una única IP inicial. -
Lives
para la gestión de las imágeneslive
disponibles. -
Users
para 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
En esta vista se muestran información general sobre su instalación de OpenGnsys Enterprise 3, tales como:
-
Información general
-
Fecha y hora de los servidores donde se encuentran los ogServer
-
Tiempo de actividad de los servidores
-
Tiempo de actividad de los ogServer
-
Número de clientes conectados
-
Número de imágenes almacenadas
-
-
Información sobre el almacenamiento, RAM y swap
-
Tamaño total en gigabytes
-
Cantidad en uso en gigabytes
-
Cantidad libre en gigabytes
-
-
Últimas imágenes creadas
-
Versiones de ogLive disponibles
4.4.3. Commands: 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
-
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 software de un ordenador
-
Consultar el inventario hardware de un ordenador
-
-
Run: Ejecución de scripts sobre los ordenadores
-
Ejecutar un script, disponibles en
/opt/opengnsys/clients/shell
. -
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
-
Editar las propiedades de una imagen
-
Eliminar una imagen
4.4.5. Scopes: 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
-
Añadir un usuario
-
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. |
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ónSubmit
para 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 Mbytes. |
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.
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.
4.5.9. ¿Cómo añadir centros?
-
Seleccionar la vista de "Ámbitos".
-
Seleccionar la opción "Añadir centro" dentro del subapartado "Centro".
-
Seleccionar el ogServer donde se desea añadir este 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, número de serie (opcional)
-
Elegir la versión de ogLive para este equipo.
-
Las casillas de mantenimiento y remotePC existen para dar soporte.
-
La interfaz de red a utilizar durante el arranque por red para ogLive. (eth0: la primera tarjeta detectada)
-
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. |
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": "DEBUG",
"mode": "live",
"url": "https://192.168.56.10/opengnsys/varios/menubrowser.php",
"url_log": "http://localhost/cgi-bin/httpd-log.sh"
},
"samba": {(2)
"activate": true,
"user": "opengnsys",
"pass": "og"
},
"vnc": {(3)
"activate": true,
"pass": "ogvnc"
}
}
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 ) y los
dos últimos enlaces sirven para obtener el menú de inicio de sesión y el log en
tiempo real. |
2 | Credenciales del servidor samba para el modo ogLive. |
3 | (Solo VDI) Opciones para escritorio remoto. |
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 el paquete python3-psutil
que debe de instalar previamente.
apt install python3-psutil
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
.deb
de 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.
6. 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.
6.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
6.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. |
6.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
6.4. Ejemplos de uso de ogCLI
A continuación se muestran ejemplos de los comandos de ogCLI junto a su salida por pantalla.
6.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). |
6.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) |
6.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": "" }
6.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"
]
}
6.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
.
6.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.
6.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
6.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. |
6.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.
6.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.
6.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:
configureOsCustom Existe 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. |
7. tiptorrent
: método de transferencia de imágenes distribuido
7.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.
7.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.
7.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.
7.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. |
7.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.
7.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)
7.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
7.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
7.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 |
8. 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.
El arranque por red de ogrelive se lleva a cabo siguiendo la especificación de PXE, que se define más adelante. Este método de arranque tiene diferente etapas que se enumeran a continuación.
Después de describir el proceso del arranque por red, se incluye una sección con los pasos para poder generar una imagen de este sistema operativo.
8.1. ogrelive distribuido con OpenGnsys Enterprise
Durante la instalación de OpenGnsys Enterprise se instalan el siguiente
ogrelive para el arranque de los clientes: 6.1.0-32-amd64
. Esta
distribución se basa en Debian y está preparada para ser arrancado
por red.
8.2. Descripción del proceso de arranque por red de ogrelive
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. |
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ándares establecidos en la industria.
8.2.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 llevan a cabo los equipos es obtener configuración de red a través del protocolo DHCP. En el arranque por red, PXE añade una par de opciones para indicar la dirección de un servidor TFTP y el nombre de un fichero (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. |
3 | Este es nombre del fichero de arranque que descargan los equipo UEFI. |
4 | Este es nombre del fichero de arranque que descargan los equipo Legacy. |
8.2.2. NBP y plantillas de arranque
Una vez se obtiene la dirección IP del servidor TFTP y 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 una plantilla de arranque que buscará en el servidor TFTP.
TFTP es un protocolo muy simple. Se apoya sobre UDP y no incluye ningún tipo de mecanismo de control de congestión. Para ver más información respecto a TFTP puedes visitar el siguiente enlace. |
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 a dar paso 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 se usan plantillas distintas para UEFI
(/opt/opengnsys/tftpboot/grub ) y para BIOS
(/opt/opengnsys/tftpboot/menu.lst ).
|
Los equipos configurados para arrancar en ogrelive descargan por TFTP dos elementos: * ogvmlinuz: Kernel del ogrelive a iniciar. * oginitrd.img: Ramdisk inicial para la ejecución del núcleo (incluye drivers y otros binarios fundamentales para el arranque del sistema operativo).
8.2.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.
Dentro de ogclient.sqfs se encuentra todo el sistema de ficheros de ogrelive. Este sistema de ficheros se monta en RAM. También durante el inicio de ogrelive se montan por Samba diferentes carpetas del servidor de OpenGnsys:
* /var/lib/tftpboot (1) * /opt/opengnsys/client (2) * /opt/opengnsys/log/clients (3) * /opt/opengnsys/images (4)
1 | Carpeta con todos los archivos relacionados con el arranque de los clientes. |
2 | Carpeta con el "motor de clonación": está formado por una colección de scripts en Bash. Además incluye el ogClient. |
3 | Carpeta con todos los logs de los clientes: se monta para que el motor de clonación pueda mandar sus logs al servidor. |
4 | Carpeta con todas las imágenes del repositorio. |
Estas carpetas incluyen todos los archivos necesarios para el arranque de ogClient y funcionamiento normal a la hora de administrar el equipo cliente.
9. 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.
9.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.
9.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 systemctl
systemctl 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.service
systemctl 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
9.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
9.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.
9.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
.
9.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
9.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
9.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.
9.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.
9.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
9.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.
9.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
.
9.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.
9.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.
9.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.
9.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+
:
9.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
10. 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. |
11. Soporte comercial
Soleta Networks ofrece soporte comercial de OpenGnsys Enterprise 3.
Si está interesado en recibir un presupuesto, contactenos en opengnsys@soleta.eu.
12. Código fuente
El código fuente se encuentra en el siguiente repositorio: