213 lines
11 KiB
Markdown
213 lines
11 KiB
Markdown
## Introducción a ogRepository
|
|
|
|
El componente **ogRepository** de OpenGnsys es el encargado de almacenar, gestionar y distribuir imágenes del sistema operativo utilizadas en los procesos de clonación. Estas imágenes permiten capturar el estado completo de un sistema y restaurarlo posteriormente en otros equipos, ya sea de forma individual o masiva.
|
|
|
|
A través de la consola web de administración, ogRepository ofrece una interfaz clara y centralizada desde la que es posible visualizar, importar, exportar, verificar la integridad y eliminar imágenes almacenadas en el sistema. También se encarga de generar los ficheros auxiliares necesarios para cada imagen, como sumas de verificación, ficheros de tamaño, metainformación y archivos `.torrent`, imprescindibles para ciertos métodos de transmisión como P2P.
|
|
|
|
### Tipos de imágenes compatibles
|
|
|
|
- **Imágenes monolíticas:**
|
|
Capturas completas de una partición, almacenadas en un único fichero comprimido con el algoritmo Zstandard (`.img`). Incluyen una réplica exacta del sistema de archivos y están pensadas para ser restauradas tal y como fueron capturadas.
|
|
|
|
- **Imágenes Git:**
|
|
Imágenes incrementales gestionadas mediante un repositorio Git. A través del componente oggit, es posible registrar cambios entre versiones de una misma partición y transferir solo las diferencias entre el origen y el destino. Orientadas a entornos con cambios frecuentes y necesidades de optimización de ancho de banda.
|
|
|
|
#### Ficheros asociados a imágenes monolíticas
|
|
|
|
- `*.img`: Fichero de imagen comprimida.
|
|
- `*.sum`: Suma de verificación (MD5) de la imagen.
|
|
- `*.size`: Tamaño de la imagen comprimida.
|
|
- `*.info.checked`: Metainformación verificada de la imagen (tipo de compresor, tamaño real, cliente origen, etc.).
|
|
- `*.torrent`: Archivo de metadatos necesario para las transferencias de tipo P2P.
|
|
|
|
### Acciones disponibles en la interfaz web
|
|
|
|
- Consultar el listado de imágenes disponibles en el repositorio.
|
|
- Ver los detalles técnicos de cada imagen: nombre, tamaño, cliente origen, partición, tipo de clonador, etc.
|
|
- Comprobar su integridad mediante sumas de verificación.
|
|
- Importar imágenes externas previamente generadas.
|
|
- Exportar imágenes para su traslado o respaldo en otros entornos.
|
|
- Eliminar imágenes individualmente o en bloque.
|
|
|
|
### Consideraciones
|
|
|
|
- Cada cliente debe tener asignado un repositorio de imágenes en su configuración. Las imágenes creadas se almacenarán en dicho repositorio.
|
|
- Las imágenes deben ser creadas a partir de clientes previamente arrancados mediante ogLive y correctamente preparados (sin usuarios conectados, sin procesos en ejecución críticos, etc.).
|
|
- Se recomienda mantener una nomenclatura clara y estandarizada para facilitar la identificación de las imágenes.
|
|
- El espacio del servidor debe ser suficiente para albergar las imágenes generadas, especialmente en el caso de restauraciones o sincronizaciones masivas.
|
|
|
|
---
|
|
|
|
## Alta de un repositorio en la GUI
|
|
|
|
1. Entra en la interfaz web de OpenGnsys con un usuario administrador.
|
|
2. En el menú lateral, pulsa **Repositorios**.
|
|

|
|
3. Pulsa **Añadir repositorio**.
|
|

|
|
4. Rellena el formulario:
|
|
- **Nombre del repositorio:** Un identificador legible (p. ej. `repository-test`).
|
|
- **IP:** La IP del servidor ogRepository (p. ej. `192.168.3.3`).
|
|
- **Puerto SSH:** Valor que utilizará el sistema para algunas acciones como transferir imágenes (p. ej. `22`).
|
|
- **Usuario:** Usuario de sistema con el que ogCore se conectará al repositorio (p. ej. `opengnsys`).
|
|
- **Comentarios:** Información adicional (Opcional).
|
|
5. Pulsa **Guardar**.
|
|
|
|
---
|
|
|
|
### Comprobación rápida
|
|
|
|
- Tras guardar, el nuevo registro debe aparecer en la tabla de **Administrar repositorios**.
|
|
- Usa el botón **Imágenes monolíticas** del repositorio para abrir el inventario de imágenes. Si todo está correcto, verás la lista y podrás pulsar **Ver información** para inspeccionar el JSON.
|
|

|
|
|
|
> **Nota:**
|
|
> Los inventarios que se muestran provienen de `repoinfo.json` / `trashinfo.json` en el servidor ogRepository.
|
|
> Si el repositorio es nuevo, estos ficheros estarán vacíos hasta que se cree la primera imagen desde un cliente.
|
|
|
|
---
|
|
|
|
## Asignar un repositorio a un cliente
|
|
|
|
1. Ve a **Grupos** (o al listado donde gestionas los clientes).
|
|
2. En la tarjeta del cliente, abre el menú ⋮ y pulsa **Editar**.
|
|
3. En el formulario, localiza el campo **Repositorios** y selecciona el repositorio que acabas de crear (p. ej. `repository-test`).
|
|
4. Revisa el resto de campos (OgLive, interfaz, MAC, IP, plantilla PXE, etc.) y pulsa **Guardar**.
|
|

|
|
|
|
### ¿Qué implica esta asignación?
|
|
|
|
- Ese cliente tendrá acceso a las imágenes almacenadas en el repositorio asignado, pudiendo restaurar cualquiera de ellas según sea necesario.
|
|
- Las imágenes creadas desde ese cliente se guardarán automáticamente en el repositorio seleccionado.
|
|
- Si tienes varios repositorios, puedes asignar repos diferentes a distintos clientes o aulas, optimizando el tráfico de red.
|
|
|
|
---
|
|
|
|
## Verificación
|
|
|
|
- Desde **Repositorios → Imágenes monolíticas** del repo asignado, confirma que la imagen objetivo existe.
|
|
- En el cliente (cuando arranque ogLive), podrás lanzar operaciones que consumirán este repositorio.
|
|
|
|
---
|
|
|
|
## Añadir manualmente una imagen al repositorio
|
|
|
|
En algunos casos, puede ser necesario importar manualmente una imagen monolítica ya existente en el sistema de archivos del servidor ogRepository. Este proceso es útil cuando una imagen `.img` ha sido generada previamente o transferida desde otro servidor, y no ha sido registrada aún en la base de datos del componente.
|
|
Para añadir una imagen manualmente, sigue estos pasos:
|
|
|
|
### 1. Renombrar la imagen
|
|
|
|
El archivo `.img` debe tener un nombre válido, sin espacios ni caracteres especiales, y sin la extensión al ser registrado en la interfaz. Por ejemplo, si la imagen representa un sistema Ubuntu BIOS, se puede renombrar de la siguiente manera:
|
|
|
|
```bash
|
|
mv imagen.img /opt/opengnsys/ogrepository/images/ubuntu-imagen-bios-documentation.img
|
|
```
|
|
|
|
> **Importante:**
|
|
> Asegúrate de que el nombre no contenga la extensión `.img` al registrarlo en la interfaz (solo el nombre base será introducido).
|
|
|
|
### 2. Mover la imagen al directorio de imágenes
|
|
|
|
La imagen debe ubicarse en el directorio gestionado por ogRepository:
|
|
|
|
Ejemplo:
|
|
|
|
```bash
|
|
mv ubuntu-imagen-bios-documentation.img /opt/opengnsys/ogrepository/images/
|
|
```
|
|
|
|
### 3. Ajustar los permisos
|
|
|
|
Es necesario que el archivo `.img` tenga como propietario el usuario `opengnsys` para que el backend pueda manipularlo correctamente:
|
|
|
|
```bash
|
|
chown opengnsys:opengnsys /opt/opengnsys/ogrepository/images/ubuntu-imagen-bios-documentation.img
|
|
chmod 744 /opt/opengnsys/ogrepository/images/ubuntu-imagen-bios-documentation.img
|
|
```
|
|
|
|
### 4. Importar la imagen desde la interfaz web
|
|
|
|
Una vez el archivo esté correctamente ubicado y con los permisos apropiados, se debe registrar en el sistema desde la interfaz web:
|
|
|
|
- Accede al apartado **Repositorio** de la interfaz de OpenGnsys.
|
|
- Haz clic en el botón **Importar imagen**.
|
|
- Se abrirá una ventana emergente solicitando el nombre de la imagen.
|
|
- Introduce el nombre sin la extensión:
|
|
|
|
```
|
|
ubuntu-imagen-bios-documentation
|
|
```
|
|
|
|
- Haz clic en **Continuar**.
|
|

|
|
---
|
|
|
|
## Acciones disponibles sobre una imagen
|
|
|
|
Desde la interfaz de ogRepository, es posible gestionar las imágenes monolíticas mediante un menú contextual que aparece junto al icono de opciones (⋮). Este menú permite ejecutar distintas acciones sobre una imagen ya registrada en el repositorio.
|
|
|
|

|
|
|
|
A continuación se describen todas las acciones disponibles:
|
|
|
|
### Obtener ficheros auxiliares
|
|
|
|
Esta opción genera los archivos auxiliares necesarios para que la imagen pueda ser desplegada correctamente en los clientes. Los archivos generados incluyen:
|
|
|
|
- `.torrent`: archivo para transmisiones P2P.
|
|
- `.sum`: hash de verificación de integridad (SHA256).
|
|
- `.info.checked`: metadatos de validación (tamaño, hash, tipo de sistema de archivos, etc.).
|
|
- `.size`: tamaño en bloques de la imagen, usado en el cálculo de progreso de restauración.
|
|
- `.meta`: archivo opcional con metainformación adicional.
|
|
|
|
**Nota:** Esta acción debe ejecutarse siempre tras importar manualmente una imagen al repositorio.
|
|
|
|
### Eliminar permanentemente
|
|
|
|
Elimina completamente la imagen del repositorio, tanto en la base de datos como en el sistema de archivos del servidor. Esta acción es irreversible.
|
|
|
|
**Nota:** Si la imagen fue eliminada previamente, pero aún está en papelera, esta opción la elimina definitivamente.
|
|
|
|
### Recuperar imagen de la papelera
|
|
|
|
Permite restaurar una imagen previamente eliminada, que ha sido enviada a la papelera lógica del sistema. La imagen volverá a estar disponible para uso inmediato.
|
|
|
|
**Nota:** Esta opción solo está activa si la imagen se encuentra en estado "eliminado".
|
|
|
|
### Transferir imagen
|
|
|
|
Permite transferir la imagen desde el servidor actual a otro servidor ogRepository de la red. Se debe especificar la IP, puerto SSH y usuario del servidor destino. La transferencia se realiza mediante SCP y requiere que el usuario tenga permisos de escritura en el directorio de imágenes del servidor destino.
|
|
|
|

|
|
|
|
**Nota:** Esta función es útil para clonar imágenes entre servidores sin necesidad de exportarlas manualmente.
|
|
|
|
### Transferir imagen globalmente
|
|
|
|
Similar a la opción anterior, pero la imagen se marca como "global" una vez completada la transferencia. Las imágenes globales están disponibles para ser vistas y utilizadas por todos los servidores de la red, según la configuración distribuida de OpenGnsys.
|
|
|
|
**Nota:** Requiere permisos administrativos y configuración previa de los nodos de red.
|
|
|
|
### Realizar backup
|
|
|
|
Genera una copia de seguridad de la imagen actual. El destino del backup puede ser configurado, ya sea en otro disco local o en un servidor remoto (NFS, SSH, etc.).
|
|
|
|
La copia puede incluir solo el archivo `.img` o todos los archivos asociados a la imagen.
|
|
|
|
### Checkear estado imagen
|
|
|
|
Verifica la integridad de la imagen comprobando que:
|
|
|
|
- El archivo `.img` existe y es accesible.
|
|
- El archivo `.sum` coincide con el hash actual del `.img`.
|
|
- Los archivos auxiliares están presentes y no están corruptos.
|
|
|
|
Esta opción es útil para diagnosticar errores antes de realizar una restauración.
|
|
|
|
|
|
### Renombrar imagen
|
|
|
|
Permite modificar el nombre lógico de la imagen dentro del sistema, actualizando su referencia en la base de datos.
|
|
|
|
**Nota:** Esta acción no renombra el archivo físico en el sistema de archivos. Solo afecta al nombre mostrado y registrado en la base de datos.
|