1. El proyecto OpenGnsys
1. Es una aplicación libre y abierta para la gestión y el
despliegue de sistemas operativos
2. Surge de la necesidad de las universidades de tener una
herramienta para ese fin
3. Sencilla, flexible, escalable, compatible, ampliable…
4. Administración centralizada, basada en cliente/servidor,
copia de discos versátil.
2. Características de OpenGnsys
Servidor de administración/repositorio para gestionar los clientes
Arranque de clientes online, no invasivo para el equipo remoto
Acceso total de los clientes al disco y sistemas del equipo remoto
Creación y despliegue de los sistemas por medio de la red y offline
Ejecución de órdenes desde la consola web o en el propio cliente
Agrupación de clientes para ejecución de tareas desde el servidor
3. Características de OpenGnsys
Origen y destino no tienen que ser idénticos
Trabaja a nivel de sistema de ficheros
Se pueden clonar tanto particiones como discos
Permite restaurar en particiones de menor tamaño que la inicial
Configuración del sistema operativo en el cliente destino
Windows 10 Ubuntu 16 swap
Windows 10
Win 7 Datos
Ubuntu 16 swap
Disco origen
Discos destino
4. Arquitectura de OpenGnsys
1. Es un sistema modular:
Tres capas de servicios: administración, intermedia e inferior
Servicios estándar y herramientas ad hoc
2. Dispone de una API propia de funciones y scripts
3. Se ejecuta preferentemente sobre Ubuntu Server
4. Sus requisitos hardware son muy básicos
5. Estructura del código
Comandos del sistema
operativo
API del motor de Clonación:
funciones específicas
de OpenGnsys
Consola web:
• Interfaz gráfico sencillo al usuario
Scripts de interfaz web:
• Objetivo: independencia entre capas (sin lógica)
Scripts de operaciones:
• Desarrollan operaciones completas
• Funcionalidad íntegra sin capas superiores
6. Arquitectura de OpenGnsys
Es un sistema modular que integra un conjunto
de componentes interrelacionados entre sí y que
juntos ofrecen todas las prestaciones de OG:
• Servicios estándar (servidores de archivos,
web, base de datos, DHCP, PXE, ...)
• Herramientas desarrolladas a medida para el
proyecto (motor de clonación, consola web,
browser ad hoc, demonios de gestión del
repositorio y servidor, ...)
OpenGnsys Server
Web Server
Web
Administrator
OG Database Database Server
File Server
DHCP
PXE/TFTP
Tracker Bittorrent
UDPCast
OGAdmin Service
OGRepo Service
Clonning Engine
Client Images
ogLive Client
7. Trabajar con OpenGnsys
1. OpenGnsys toma una imagen de un cliente modelo, la almacena y
la transfiere a otros clientes
2. Puede organizar sus clientes independientemente de su
distribución física para facilitar las tareas de gestión.
3. Importancia de la post-configuración de los clientes restaurados
4. Los clientes arrancan a través de red y quedan a la espera de
instrucciones (crear, restaurar, configurar…)
5. Versatilidad en la transferencia de los sistemas
8. Idea básica de trabajo
Partiendo de un equipo modelo, podemos
crear imágenes de sus sistemas de ficheros,
almacenarlas y replicarlas en uno o varios
ordenadores de la organización.
9. Trabajar con OpenGnsys (i)
• La gestión principal de OpenGnsys se realiza a través de su interfaz web que
permite realizar las tareas de gestión comunes en los distintos clientes
• Los equipos a gestionar cargan el agente y todos sus recursos a través de red y se
mantienen a la espera como clientes
• Nos permite definir diversos entornos de trabajo (Unidades Organizativas, Aulas,
Grupos, Equipos)
• La distribución de imágenes y ficheros puede realizarse mediante Unicast,
Multicast, P2P e incluso off-line
• La copia y restauración de equipos se realiza a nivel de sistema de ficheros
10. Organización lógica de trabajo
OpenGnsys consta de una consola central de gestión, que se divide en un conjunto de Unidades
Organizativas independientes, donde cada una de ellas puede tener asociados uno o varios
repositorios de datos que dan servicio a uno o varios grupos de aulas de ordenadores.
VLAN DESPACHOS
VLAN AULAS
VLAN LABORATORIOS
AULA1 AULA2 AULA3
LAB1 LAB2
11. Arranque de un cliente
1. Desde la consola web
mandamos arrancar el equipo
remoto. El equipo arranca por red
y busca un servidor DHCP
2. El DHCP lo redirige al recurso
PXE/TFTP del servidor de OG del
que se descarga el cliente ogLive
en RAM
3. El cliente ogLive se conecta a
los recursos del servidor OG y
queda a la espera de órdenes
4. En su caso, el cliente enviará o
descargará una imagen de su
disco por el medio que le
indiquemos desde el servidor
OpenGnsys Server
Web Server
Web
Administrator
OG Database Database Server
File Server
DHCP
PXE/TFTP
Tracker Bittorrent
UDPCast
OGAdmin Service
OGRepo Service
Clonning Engine
Client Images
ogLive Client
12. Protocolos de red usados (i)
Clonar un sistema de archivos en un número amplio de ordenadores supone un gran
volumen de datos transferidos y, por lo tanto, un tiempo importante en el despliegue de
dichos datos.
OpenGnsys intenta mitigar este
impacto permitiendo varios métodos
de transferencia de las imágenes a clonar:
13. Instalación de OpenGnsys
1. Comprobar estado del servidor Ubuntu
antes de la instalación
2. Elegir el modo de instalación y
proporcionar los parámetros
3. Configurar los servicios
4. Verificar la instalación
Instalación de
OpenGnsys
Archivos de
instalación
Descargar
fichero
Instalación
online
Instalación
Preparación
Ejecución
Verificación
Post-
configuración
Por defecto
Ficheros de
configuración
14. Descarga e instalación
1. Crea un registro de la instalación en /opt/opengnsys/log
2. Instala las dependencias del sistema operativo, si es necesario
3. Crea la estructura de directorios /opt/opengnsys
4. Configura los servicios del sistema
5. Genera la documentación de la API
6. Descarga y publica el ogLive
7. Compila, instala y arranca los servicios OG
8. Muestra un resumen de la instalación
15. Estructura de directorios
/opt/opengnsys
– bin – scripts de utilidades del servidor
– client - exporta por Samba la estructura de directorios del cliente
– etc - ficheros de configuración del servidor
– lib - librerías de las utilidades
– log - registro principal de incidencias
– images - almacén de ficheros de imágenes
– sbin - binarios de servicios
– tftpboot - ficheros de TFTP/PXE
– www – páginas web consola de gestión
16. Manos a la obra (i)
Verificar la versión instalada
cat /opt/opengnsys/doc/VERSION.json
Verificar los servicios de Opengnsys
sudo service opengnsys status
Verificar la configuración de los servicios
/etc/default/opengnsys
Verificar configuración y estado del DHCP
sudo cat /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 10.0.4.2;
option routers 192.168.56.254;
option broadcast-address 192.168.56.255;
default-lease-time 600;
max-lease-time 7200;
next-server 192.168.56.10;
filename "grldr";
# 0007 == x64 EFI boot if option arch = 00:07 {
filename "shimx64.efi.signed";
} else {
filename "grldr";
}
use-host-decl-names on;
# Grupo de equipos virtuales para el curso
group {
host PC11 { hardware ethernet 08:00:27:29:bf:01; fixed-address 192.168.56.11; }
host PC12 { hardware ethernet 08:00:27:29:bf:02; fixed-address 192.168.56.12; }
host PC13 { hardware ethernet 08:00:27:29:bf:03; fixed-address 192.168.56.13; }
host PC14 { hardware ethernet 08:00:27:29:bf:04; fixed-address 192.168.56.14; }
host PC15 { hardware ethernet 08:00:27:29:bf:05; fixed-address 192.168.56.15; }
host PC16 { hardware ethernet 08:00:27:29:bf:06; fixed-address 192.168.56.16; }
} #Fin de la definicion de grupo curso
}
17. Manos a la obra (ii)
Comprobamos que los servicios necesarios están iniciados
apache2, mysql, smbd, nmbd, isc-dhcp-server, tftpd-hpa, cron
Comprobar los ogLive ofrecidos por el servidor
sudo /opt/opengnsys/bin/oglivecli show all
Comprobar las distintas opciones del script de gestión de ogLive
sudo /opt/opengnsys/bin/oglivecli help
Desinstalar el ogLive de 32bits e instalar la última version disponible
18. La API de OpenGnsys
1. La API es, junto a los servicios,
el corazón de OpenGnsys
2. Se dividen entre scripts de
web, de cliente y funciones
3. Sencillos de ejecutar desde
cualquier ámbito
4. Es muy fácil modificar o
ampliar la colección
19. Características de la API
• Escrita en funciones BASH
• Funciones agrupadas en librerías de propósito común
• Uso de comandos de sistema externos e internos
• Definición de tipos de datos propios
• Definición de códigos y mensajes de error propios
• Traducción de mensajes y errores
• Las funciones las ejecuta cada cliente
• Fácilmente ampliable, se cargan nuevas funciones de las
librerías al arrancar los clientes