Licencia
Copyright (C) 2022 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
Esta introducción a OpenGnsys explica qué es OpenGnsys como proyecto y para qué sirve. También se aclara la existencia de OpenGnsys Enterprise y su aporte al proyecto, donde se hace un repaso de la arquitectura y componentes.
1.1. ¿Qué es OpenGnsys?
OpenGnsys es un software de código abierto para la clonación y gestión de equipos de escritorio en entornos virtuales y "bare metal". OpenGnsys proporciona un panel de control centralizado que permite a los administradores de sistemas desplegar imágenes de sistemas operativos de manera masiva.
OpenGnsys incluye una solución para el arranque de los equipos mediante Wake-on-LAN (WoL) y la descarga de un sistema operativo "live" (que se carga en memoria RAM) mediante PXE y TFTP que permite la realización de tareas administrativas sobre los equipos de escritorio de manera remota.
1.2. ¿Qué incluye OpenGnsys Enterprise?
OpenGnsys Enterprise proporciona un entorno listo para producción que incluye las últimas características y correcciones de errores para OpenGnsys. OpenGnsys Enterprise simplifica el despliegue de OpenGnsys y ayuda a mantenerlo actualizado de forma incremental gracias al uso del gestor de paquetes APT.
1.2.1. Arquitectura y componentes en OpenGnsys Enterprise
La arquitectura de OpenGnsys Enterprise concentra la gestión de las comunicaciones en un servidor principal, intermediario entre los usuarios y los equipos a gestionar.
ogServer
es el servidor principal de OpenGnsys Enterprise. Expone una API
REST HTTP para su integración con los distintos front-ends. También establece
un canal de comunicación con los clientes. Se encarga de gestionar todas las
comunicaciones con la base de datos.
Las operaciones sobre la base de datos pasan a ser única responsabilidad del
ogServer
. Al iniciar ogServer se comprueba la versión de la BD y se aplican
los cambios necesarios en caso de no estar actualizada. No es necesario el
mantenimiento por separado de ficheros SQL con diferencias entre versiones.
Los usuarios pueden usar diferentes interfaces gracias a que ogServer
expone su funcionalidad mediante una API REST HTTP. Esto también permite que
una misma interfaz se pueda conectar a varios ogServers. La distribución del
servidor en varios puntos de conexión evita que un fallo en un servidor pueda
dejar inoperativa a toda una institución.
ogLive
es una distribución Linux usada en OpenGnsys en el arranque por red
(PXE). Se ejecuta en la memoria RAM por lo que permite la ejecución de tareas
administrativas sobre los discos de los clientes (particionar, formatear,
clonar y restaurar).
ogClient
es un demonio que se ejecuta en los clientes para su control. Se
comunica con el ogServer y soporta Linux y Windows. Se encarga de ejecutar las
tareas administrativas sobre los clientes y reportar su estado de vuelta al
servidor.
ogCP
es una interfaz web (front-end). Está escrito usando el framework web
Flask, que destaca por su simpleza y flexibilidad. Soporta la comunicación con
múltiples ogServer, unificando toda la información y capacidad de gestión en un
único panel administrativo.
ogCLI
se ofrece como interfaz alternativa a la web, permite realizar tareas
administrativas desde una terminal y aumenta la programabilidad del entorno.
Posibilita la creación de scripts personalizados, por ejemplo para su ejecución
desatendida. Su salida por pantalla es JSON válido que puede ser consumido por
otras aplicaciones y puede servir como punto de partida para programar tareas
administrativas más complejas.
tiptorrent
es un nuevo método de transferencia distribuido que se
desarrolla para solventar los errores y limitaciones existentes con multicast y
BitTorrent. Al contrario que Multicast, tiptorrent
es unicast, facilitando su
uso sin requerir una configuración previa de la infraestructura de red. El
método de distribución es más sencillo que el enfoque P2P puro que usa
BitTorrent gracias a que es un servidor principal el que se encarga de
orquestar como los clientes comparten las imagenes entre ellos.
python-libfdisk
un proyecto que provee bindings de la biblioteca libfdisk
para Python. Permite trabajar con la biblioteca libfdisk directamente desde
Python. Mejora la integración con Python, exponiendo la biblioteca y sus
estructuras dentro de Python como clases y métodos. Es una mejora frente a la
invocación de subprocesos de aplicaciones que utilizan dicha biblioteca.
Además, python-libfdisk
puede ser usado fuera del entorno de OpenGnsys.
2. Instalación y actualización de OpenGnsys Enterprise
Recomendaciones, requisitos, y pasos para la instalación y actualización de OpenGnsys.
2.1. Recomendaciones previas a la instalación de OpenGnsys Enterprise
Las siguientes recomendaciones sirven para disponer de un entorno más profesional y adecuado sobre el que desplegar OpenGnsys Enterprise.
2.1.1. Virtualización: QEMU, KVM y LibVirt
Recomendamos la instalación del servidor de OpenGnsys en un entorno virtualizados basados en las tecnologías Open Source Libvirt/QEMU/KVM junto con técnicas modernas y maduras de paravirtualización VirtIO para aceleración de la Entrada/Salida por software. Libvirt/QEMU/KVM ofrece una alternativa OpenSource robusta y fiable a las tecnologías de virtualización de VMWARE.
Los procesadores desde el 2010 incluyen extensiones de virtualización VT-d/AMD-V para acelerar la ejecución de la máquina virtual sin pérdida de rendimiento apreciable, por lo que no es necesario equipamiento moderno para desplegar OpenGnsys en un entorno virtualizado.
El despliegue de QEMU/KVM en productivo no es nada novedoso, esta pila de software se emplea en infraestructura de proveedores de la nube tales como Google Cloud Platform, Amazon Web Services, RackSpace, NASA/NOAA, RackSpace, IBM, SOFTLayer y OVH.
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 provee la aceleración de las máquinas virtuales por hardware.
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.
2.2. Requisitos de OpenGnsys Enterprise
A continuación se listan los requisitos indispensables para poder instalar y desplegar OpenGnsys Enterprise.
2.2.1. Sistema Operativo: Ubuntu 20.04
El servidor de OpenGnsys Enterprise requiere Ubuntu 20.04 LTS (Focal) para su despliegue.
2.3. Instalación de OpenGnsys Enterprise
La instalación y puesta a punto de OpenGnsys Enterprise se realiza a través de
un instalador ofrecido en la
web de OpenGnsys Enterprise.
El instalador hace uso de los paquetes .deb
creados por Soleta Networks.
Una vez descargado el instalador de la web de OpenGnsys Enterprise (https://opengnsys.soleta.eu/download) procederemos a su ejecución:
$ wget https://opengnsys.soleta.eu/installer.sh # bash installer.sh
Durante su ejecución, el script de instalación solicitará al usuario:
-
Usuario y contraseña para la base de datos, ogCP y consola web clásica
-
Dirección IP para conexiones a la base de datos
-
Dirección IP del servidor de OpenGnsys
-
Contraseña para conexiones Samba
Please specify your Database and OpenGnsys web console user name (default: usuog): Please specify your Database and OpenGnsys web console password (default: passusuog):
Please introduce your server IP address. This is the IP address used by ogServer and Samba services If your server has multiple interfaces, select the one that allows you to communicate with your clients Server IP:
2.4. Actualización de OpenGnsys Enterprise
Los paquetes tienen como objetivo facilitar no solo el proceso de instalación de OpenGnsys, sino también la actualización de los distintos componentes a través de APT.
De manera que el administrador sólo tenga que ejecutar en la terminal:
# apt update
# apt upgrade
para mantener su instalación de OpenGnsys actualizada.
2.5. Exportar e importar datos de una instalacion de OpenGnsys 1.1.1c
Cuando es necesario conservar los datos de una instalación anterior de OpenGnsys se pueden llevar a cabo los pasos que se indican a continuación para migrar a OpenGnsys Enterprise.
En https://github.com/opengnsys/OpenGnsys/tree/master/installer encontramos los
scripts opengnsys_export.sh
y opengnsys_import.sh
que nos permiten guardar los
datos de nuestro servidor antiguo en un archivo tgz e importarlos en el nuevo.
En la exportación se guardan la configuración de DHCP, los archivos y plantillas PXE, las páginas de inicio y la configuración de la consola. Además, irá incluida una copia de la base de datos.
Para asegurarnos de tener la versión apropiada del esquema de la base de datos para
OpenGnsys Enterprise se recomienda usar opengnsys_export.sh . Si bien conviene revisar los
procedimientos que se hayan podido crear con anterioridad puesto que cambios en los
comandos puede repercutir en su funcionamiento.
|
Para exportar los datos de un servidor se utiliza el script opengnsys_export.sh
:
/opt/opengnsys/lib/opengnsys_export.sh nombre_backup.tgz
No es conveniente situar el fichero de backup dentro de /opt/opengnsys ya que la carpeta se borrará en caso de desinstalar OpenGnsys (opengnsys_uninstall.sh). |
Para importar los datos al nuevo servidor se utiliza el script opengnsys_import.sh
tal y como se muestra en el ejemplo:
/opt/opengnsys/lib/opengnsys_import.sh nombre_backup.tgz
El script de importación de comunidad además actualiza el esquema de base de datos para estar en la última versión de comunidad. Una vez completa la importación se debe revisar la configuración de los siguientes componentes:
-
Servidor DHCP.
-
Configuración de ips de repositorios y otros servicios como NTP, (para la consola web clásica).
-
Regenerar las plantillas de arranque por red de los equipos.
3. Componentes en OpenGnsys Enterprise
A continuación se detallan los componentes que forman OpenGnsys Enterprise, explicando su función en el ecosistema y su uso.
3.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.
3.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. |
3.2. ogClient: Cliente de OpenGnsys para ogLive, Linux y Windows
ogClient es un proceso que se ejecuta sobre los clientes que queremos administrar. Se encarga de recibir y procesar las peticiones del ogServer. ogClient ejecuta tareas administrativas en base a las peticiones del ogServer. Por ejemplo, particionar y formatear un cliente, clonar un cliente o restaurar un cliente.
Actualmente, ogClient implementa parte de la funcionalidad administrativa en Python y otra parte en Bash. Futuras versiones de ogClient implementarán toda la funcionalidad en Python. Para conseguir esto se han desarrollado una primera versión de bindings en python para la biblioteca libfdisk, permitiendo hacer uso directo de la biblioteca desde Python y evitando la invocación de subprocesos de aplicaciones que utilizan la biblioteca.
Además de la ejecución de comandos, con ogClient los clientes reportan información adicional sobre su estado, el éxito del último comando ejecutado o su velocidad de enlace.
ogClient es una aplicación multiplataforma y permite la administración de clientes ogLive, Linux y Windows. La funcionalidad de ogClient sobre Linux y Windows es limitada porque no se puede realizar modificaciones sobre los discos.
Los clientes puede funcionar de distintos modos según la plataforma. Cada modo expone un conjunto distinto de operaciones administrativas. Los modos soportados actualmente son:
-
live: ejecutado en ogLive, soporta operaciones administrativas sobre los discos.
-
linux: ejecutado en sistemas operativos GNU/Linux.
-
windows: soporta Windows 10 y 11.
3.2.1. Fichero de configuración: ogclient.json
El archivo de configuración para ogClient 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. |
3.2.2. Instalación en Linux
ogClient para Linux está soportado en versiones de Ubuntu iguales o superiores a 20.04.
Existe un paquete .deb
disponible en la sección de descargas de la web de OpenGnsys Enterprise
en 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:
3.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.
4. Integración con el servidor de DHCP
En este apartado se describe la integración de OpenGnsys con el servidor de DHCP ISC.
4.1. Añadir un equipo cliente al servidor 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
4.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
|
4.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.
5. 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.
5.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
5.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. |
5.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,send,set,setup}]
positional arguments:
{create,list,restore,send,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
5.4. Ejemplos de uso de ogCLI
A continuación se muestran ejemplos de los comandos de ogCLI junto a su salida por pantalla.
5.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). |
5.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) |
5.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": "" }
5.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"
]
}
5.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
.
5.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 send wol --client-ip 192.168.56.11
$ ogcli send wol --room-id 8
$ ogcli send wol --center-id 26
Salida de ejemplo: Sin errores, no hay salida por pantalla.
5.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
5.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. |
5.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.
5.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.
5.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. |
6. ogCP: nuevo panel de administración web
ogCP
(OpenGnsys Control Panel) es una interfaz web para OpenGnsys Enterprise
y es una alternativa al panel clásico WebConsole. Permite la gestión de
múltiples ogServer de forma simultánea. Presenta un panel con estadísticas de
uso y el estado general del despliegue.
6.1. Instalación de ogCP
ogCP viene instalado por defecto en instalaciones de OpenGnsys Enterprise al
usar el instalador disponible en https://opengnsys.soleta.eu/download. En caso
de requerir una instalación manual, ogCP
está empaquetado en los
repositorios APT de Soleta Networks y pueden ser instalados
ejecutando:
# apt install ogcp
6.2. Acceso a ogCP: dirección del servicio.
Puedes acceder al portal de login de ogCP a través del puerto 5000. Por tanto puedes acceder
a ogCP en la dirección http://(ip):5000/
, sustituyendo (ip)
por la dirección de la máquina
que ejecuta ogCP.
Por ejemplo, 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
Limitar acceso a ogCP a una interfaz
ogCP se encuentra expuesto a través del puerto 5000 y debe ser accesible desde cualquiera de las direcciones que tengan configuradas todas las interfaces de red presentes en el servidor. En caso de no querer exponer el acceso a ogCP desde cualquier interfaz presente
en el servidor puedes modificar el parámetro Por ejemplo, si solamente queremos acceder a ogCP a través de una interfaz con
dirección ExecStart=/opt/opengnsys/ogcp/flask/bin/python3 -m flask run --host=10.141.10.1 |
6.3. Descripción de los apartados de ogCP
A continuación se detallan todos los elementos que presenta los apartados de ogCP. Estos se localizan en la barra de navegación de la parte superior de la web. Los botones son: Panel principal, Comandos, Imágenes, Gestión de ámbitos, Servidores y Usuarios.
6.3.1. Validación de usuario: Login/Ingreso
Lo primero que muestra el ogCP
al entrar por primera vez es la vista de
Login. Para ingresar basta con introducir alguno de los usuarios y contraseñas
que hemos configurado.
Si tienes problemas para acceder al panel de configuración, revisa el fichero de configuración y asegúrate de que los usuarios están definidos correctamente.