refs #503 Adds oglive definition to doc

ogboot-api-documentation
Luis Gerardo Romero Garcia 2024-08-05 13:36:59 +02:00
parent 3dd95881d4
commit a0f5b50179
1 changed files with 102 additions and 2 deletions

View File

@ -1,9 +1,109 @@
## Diseño de la Lógica y Comunicación entre los Endpoints del Componente `ogboot` y el Servidor `ogCore`
# Documentación de Ogboot
### Introducción
## 1. Descripción General del Componente
- 1.1 Introducción
- 1.2 Funcionalidades
- 1.2.1 Gestión de Imágenes de Arranque (ogLive)
- 1.2.2 Monitoreo y Configuración
- 1.2.3 Interfaz de Programación de Aplicaciones (API)
- 1.3 Arquitectura General
- 1.3.1 Componentes Principales
- 1.3.2 Estructura del Proyecto
- 1.3.3 Interacción entre Componentes
- 1.3.4 Seguridad y Permisos
## 2. Instalación
- 2.1 Requisitos Previos
- 2.1.1 Software Necesario
- 2.1.2 Hardware Requerido
- 2.1.3 Permisos y Configuraciones Previas
- 2.2 Instrucciones de Instalación
- 2.2.1 Descarga del Software
- 2.2.2 Instalación Paso a Paso
- 2.2.3 Configuración Inicial
## 3. Endpoints y API
- 3.1 Listado de Endpoints
- 3.1.1 Métodos y Rutas
- 3.1.2 Descripciones de los Endpoints
- 3.2 Ejemplos de Solicitudes y Respuestas
- 3.3 Manejo de Errores Comunes
- 3.4 Middleware y Autenticación
## 4. Configuración del Servidor
- 4.1 Configuración de Nginx
- 4.2 Configuración de PHP-FPM
- 4.3 Creación y Levantamiento del Demonio ogboot
- 4.4 Configuración de Usuarios y Permisos
## 5. Funciones del CLI (oglivecli)
- 5.1 Descripción de las Funciones
- 5.2 Ejemplos de Uso
- 5.3 Interacción con el Sistema y el Demonio
## 6. Integración con Otros Sistemas
- 6.1 Integración con TFTP
- 6.2 Configuración de PXE
- 6.3 Otros Servicios y Configuraciones
## 7. Seguridad
- 7.1 Consideraciones de Seguridad
- 7.2 Medidas para Mitigar Riesgos
- 7.3 Configuración Segura
## 8. Mantenimiento y Monitoreo
- 8.1 Monitoreo del Estado del Demonio
- 8.2 Procedimientos de Mantenimiento Recomendados
- 8.3 Solución de Problemas Comunes
## 9. Actualización y Desinstalación
- 9.1 Procedimientos de Actualización
- 9.2 Pasos para Desinstalar ogboot
## 10. Anexos
- 10.1 Ejemplos de Configuración de Archivos Relevantes
- 10.2 Listado de Comandos Útiles
- 10.3 Referencias a Documentación Externa
## 11. Ejemplos Prácticos
- 11.1 Casos de Uso Comunes
- 11.2 Scripts de Automatización
- 11.3 Integraciones Prácticas
## 1. Descripción General del Componente
### 1.1 Introducción
El componente `ogboot` se encarga de la gestión y configuración de archivos de arranque (iPXE) y plantillas en un entorno de despliegue de imágenes. El servidor `ogCore` es el núcleo que interactúa con `ogboot` para realizar operaciones de administración y configuración. Este documento describe la lógica y la comunicación entre los endpoints del componente `ogboot` y el servidor `ogCore`.
### 1.2 Funcionalidades
#### 1.2.1 ogLive
El **ogLive** es un sistema operativo diseñado para iniciarse en PCs y llevar a cabo diversas operaciones indicadas por OpenGnsys, como la creación de particiones y la restauración de sistemas operativos. Este sistema operativo se carga y ejecuta completamente en la RAM y se distribuye a través de la red, lo que le permite realizar una regeneración completa de todos los discos de almacenamiento en un equipo.
Desde el punto de vista de su diseño, el ogLive se divide en dos componentes, cada uno con una función específica en el proceso de arranque:
1. **Primera Fase: Kernel e Initrd**
- Esta fase incluye un Kernel y un Initrd, elementos tradicionales de una distribución de Ubuntu, pero con la adición de un proceso alternativo llamado `oginit`.
- El `oginit` permite cambiar el contexto (`pivot_root`) del Initrd a la partición raíz (rootfs) de manera rápida y flexible según las necesidades de OpenGnsys.
- El `oginit` permite utilizar un rootfs ubicado en la red a través de sistemas de archivos distribuidos como NFS, Samba o SSHFS, y crea enlaces en el minisistema del Initrd con los archivos del rootfs, facilitando así el uso de programas y utilidades que no pueden ser instalados en el Initrd.
- Este enfoque minimiza los problemas de red, ya que el sistema principal (Initrd) siempre reside en la RAM y solo accede al rootfs cuando se necesita una utilidad no presente en el Initrd.
2. **Segunda Fase: Rootfs en la Red**
- El rootfs, que es compartido por todos los clientes, se fusiona con el Initrd, lo que permite independizar los procesos de cada equipo.
- Este diseño admite varias configuraciones de arranque, donde los elementos de las dos fases pueden estar en diferentes ubicaciones.
Para aumentar la velocidad de descarga, se utiliza HTTP configurado por Nginx para la carga de la imagen de inicialización y el kernel. Esto reduce significativamente los retardos en la primera fase, donde se cargan aproximadamente 40 MB del Kernel y el Initrd en la memoria RAM. Una vez cargados, la conexión con el rootfs a través de Samba se establece de forma inmediata.
---
### Endpoints del Componente `ogboot`