16 KiB
OgGit - Gestión de imágenes Git
Introducción a OgGit
El componente OgGit está diseñado para gestionar un tipo de imagen de sistema: las imágenes Git. A diferencia de las imágenes monolíticas gestionadas por ogRepository, las imágenes Git permiten capturar el contenido completo de una partición y versionarlo dentro de un repositorio Git, proporcionando una solución robusta y eficiente para el control de cambios, auditoría y reversión de estados en entornos de laboratorio y aula.
Las imágenes Git se crean a partir de una partición del sistema (por ejemplo, un sistema operativo Windows o Linux previamente instalado), y una vez generadas, son almacenadas en un servidor Forgejo, una instancia de Git autoalojada y adaptada para la gestión de múltiples repositorios desde el entorno web. Estas imágenes permiten no solo capturar el estado del sistema en un momento dado, sino también realizar commits incrementales, clonar configuraciones, recuperar archivos individuales y comparar versiones, entre otras operaciones avanzadas.
El flujo de trabajo de OgGit se apoya en varias capas:
-
Captura del contenido del sistema: se extraen todos los archivos y carpetas de una partición del cliente.
-
Inicialización y mantenimiento de repositorios Git: cada imagen Git se guarda como un repositorio individual en Forgejo, que permite operaciones estándar de Git como commits, ramas, merges o clonado.
-
Visualización y gestión desde el interfaz web: gracias a la integración con Forgejo, los administradores pueden consultar el historial de cambios, explorar el contenido del sistema capturado y verificar auditorías desde una interfaz visual.
¿Por qué usar imágenes Git?
Las imágenes Git representan una evolución en la gestión de sistemas, especialmente útil en entornos educativos, de desarrollo o pruebas, donde los equipos pueden cambiar constantemente. Sus ventajas incluyen:
- Versionado completo del sistema.
- Acceso a contenido granular (ver archivos modificados).
- Restauraciones más rápidas y específicas.
Acceso a la gestión de imágenes Git
- En el menú lateral izquierdo, haz clic en
Repositorios
. - Localiza el repositorio deseado.
- Haz clic en el botón de gestión Git para acceder a la gestión de commits del repositorio seleccionado.
Lista de commits
Una vez dentro del menú de gestión Git del repositorio, se muestra una tabla con todos los commits disponibles en la rama seleccionada.
- Puedes cambiar de repositorio y rama desde los desplegables superiores.
- También puedes buscar commits por mensaje.
- La tabla muestra información básica como el ID del commit, el mensaje, la fecha, el tamaño, el número de archivos modificados y los tags asignados.
Acciones disponibles por commit
En la columna de acciones (última columna), se pueden realizar las siguientes operaciones:
- Ver archivos modificados (si los hay).
- Ver detalles del commit.
- Asignar etiquetas (tags).
- Restaurar el sistema al estado de ese commit.
Ver detalles del commit
Al pulsar el botón de detalles, se abre un cuadro modal con los datos completos del commit seleccionado:
- Commit ID
- Mensaje
- Fecha
- Tamaño
- Número de archivos modificados
- Líneas añadidas y eliminadas
- Tags asignados
Ver información del repositorio
En la esquina superior derecha de la ventana de commits se encuentra el botón Ver información
. Al pulsarlo, se muestra un resumen con los metadatos del repositorio Git:
- Nombre del repositorio
- UUID
- Rama seleccionada
- Total de repositorios Git disponibles
- Total de ramas
- Total de commits
Notas
- Estas imágenes Git se generan automáticamente desde la partición del sistema del cliente, y son útiles para mantener una trazabilidad de los cambios realizados.
- Puedes utilizar esta sección para auditar el historial de cambios, clonar imágenes entre clientes o realizar restauraciones específicas desde un commit.
- Los repositorios Git están gestionados internamente por el componente
OgGit
, y pueden consultarse a través de la API REST o desde la interfaz web oggui.
Crear imagen Git
Requisitos Previos y Consideraciones Críticas
Antes de iniciar el proceso, verifique que se cumplen las siguientes condiciones en el cliente. Ignorarlos puede resultar en una imagen corrupta, incompleta o en fallos durante la captura.
Requisitos previos para crear una imagen Git
-
Sistema estable e íntegro
- El sistema operativo del cliente debe estar libre de errores de archivos, configuraciones corruptas y fallos de hardware.
- Recomendación: Ejecute comprobaciones de integridad del disco (por ejemplo,
chkdsk /f
en Windows ofsck
en Linux) y asegúrese de que el sistema arranca sin errores.
-
Deshabilitar compresión de sistema
- Los directorios del sistema no deben estar comprimidos mediante herramientas como compresOS o la compresión nativa de Windows NTFS.
- Cómo comprobarlo:
- Windows: Ejecuta
fsutil fsinfo volumeinfo C:
y verifica queSupports File-based Compression
esté deshabilitado. - Linux: Comprueba que no se utilicen sistemas de archivos comprimidos (por ejemplo, revisa las opciones de montaje en
/etc/fstab
).
- Windows: Ejecuta
-
Espacio suficiente en la partición de caché
- El cliente debe disponer de una partición de caché con espacio libre suficiente para almacenar temporalmente todos los datos extraídos.
- Regla general: El espacio libre debe ser al menos 1.5 veces el tamaño de los datos utilizados en la partición de origen. La falta de espacio provocará el aborto inmediato del proceso.
Asegúrate de cumplir estos requisitos antes de continuar con los pasos detallados a continuación para garantizar una imagen Git fiable y utilizable. El proceso de creación de una imagen Git se puede dividir en varias fases:
- Selección del cliente modelo encendido en Oglive.
- Elección del repositorio Git (o creación de uno nuevo en caso de que sea la primera vez que se crea una imagen Git para ese cliente).
- Selección de la partición del disco concretamente la que contiene el sistema operativo a capturar.
- Ejecución del comando y seguimiento desde la traza de ejecución.
Paso 1: Acceder a la acción "Crear imagen"
Desde el panel de administración web:
- Ir a la pestaña Grupos.
- Seleccionar la Unidad Organizativa deseada.
- Localizar el cliente encendido que actuará como equipo modelo.
- Pulsar el icono de acciones del cliente.
- Elegir Crear imagen.
Paso 2: Seleccionar tipo de imagen "Git"
En el formulario de creación de imagen, se muestra por defecto la opción Monolítica. Para trabajar con OgGit:
- Desplegar el selector de Tipo de imagen.
- Seleccionar la opción Git.
Esto activará nuevas secciones específicas para la configuración Git.
Paso 3: Crear un nuevo repositorio
Si es la primera vez que se crea una imagen Git para ese cliente, es necesario crear un nuevo repositorio asociado. Para ello:
- Pulsar el botón Crear nuevo repositorio / SO.
- Introducir un nombre identificativo, por ejemplo:
windows11-documentation
. - Pulsar Guardar.
Una vez creado el repositorio, quedará vinculado al cliente y aparecerá en el selector desplegable para futuras operaciones.
Un solo repositorio por cliente:
Cada cliente solo puede tener asociado un único repositorio Git. Si ya existe uno, no podrá crearse un segundo.
Paso 4: Seleccionar partición del disco
A continuación se presenta una tabla con las particiones detectadas en el cliente:
- Disco y número de partición
- Tamaño en MB
- Tipo de partición (EFI, WINDOWS, CACHE, etc.)
- Sistema de ficheros (NTFS, EXT4, etc.)
- Sistema operativo detectado
Seleccionar aquella partición que contenga el sistema operativo que se desea capturar, por ejemplo:
Disco 1, Partición 3: NTFS, Windows 11 Home 64 bits.
Paso 5: Ejecutar la acción y seguimiento
Una vez configurado el repositorio y seleccionada la partición:
- Pulsar el botón Ejecutar.
- Se iniciará el proceso de captura y aparecerá una nueva entrada en el panel de Trazas de ejecución.
El cliente arrancado con ogLive mostrará en su pantalla local los comandos en ejecución. Se puede observar, por ejemplo, el montaje del repositorio Git remoto en /mnt/sda3
y la ejecución del script crearImagenGit
.
Duración y rendimiento
La duración del proceso depende de:
- Tamaño de la partición.
- Número de ficheros y cambios detectados.
- Velocidad de lectura/escritura en disco.
- Conectividad con el servidor del repositorio.
En sistemas con gran volumen de datos (como Windows 11 con varias particiones) el proceso puede extenderse varios minutos.
Visualizar el repositorio en Forgejo
Una vez creada la imagen Git, esta puede consultarse desde la interfaz Forgejo:
- Entrar en la dirección web del servidor de Git (Forgejo).
- Navegar al repositorio del cliente, por ejemplo
oggit/windows11-lgromero
.
Se pueden explorar:
- Archivos y directorios del sistema capturado.
- Historial de commits.
- Diferencias entre versiones.
- Cambios en binarios y textos.
Esto permite una inspección avanzada del contenido exacto capturado, ideal para diagnóstico y auditoría.
Restauración de una Imagen Git
Introducción
El proceso de restauración de una imagen Git permite desplegar una versión específica de un sistema capturado previamente en uno o más clientes. A diferencia de las imágenes monolíticas, las imágenes Git permiten seleccionar puntos concretos de restauración (commit, rama, tag) gracias al control de versiones.
Requisitos Previos
- Tener al menos una imagen Git creada y almacenada en un repositorio Forgejo/Gitea.
- El cliente destino debe tener asignado un repositorio en su configuración.
- El cliente debe estar particionado previamente con el tamaño adecuado y el sistema de archivos correcto.
- El cliente debe tener partición CACHE.
- El cliente en estado ogLive para realizar la operación.
Procedimiento de Restauración
Paso 1. Acceder a la Herramienta de Despliegue
Desde el panel de administración web:
- Ir a la pestaña Grupos.
- Seleccionar la Unidad Organizativa deseada.
- Localizar el cliente encendido que actuará como equipo modelo.
- Pulsar el icono de acciones del cliente.
- Elegir Desplegar imagen.
Paso 2: Seleccionar tipo de imagen "Git"
En el formulario de creación de imagen, se muestra por defecto la opción Monolítica. Para trabajar con OgGit:
- Desplegar el selector de Tipo de imagen.
- Seleccionar la opción Git.
Esto activará nuevas secciones específicas para la configuración Git.
3. Especificar la Versión de la Imagen
Parámetro | Ejemplo | Descripción |
---|---|---|
Tipo de imagen | Git | Seleccione "Git" como tipo de imagen |
Seleccionar Repositorio | windows11-documentation | Elija el repositorio que contiene la imagen |
Seleccionar Rama | main | Seleccione la rama del repositorio |
Commit ID | a7915357bc7b337cf49c59bee6d4242e578ab44 | Identificador hash del commit específico |
Mensaje | creating git image | Mensaje descriptivo para la operación |
Fecha | 11/09/2025 10:02:08 | Fecha y hora de la versión a restaurar |
Tags | opcional | Etiquetas para categorizar la operación |
4. Selección de Partición de Destino
Seleccione la partición donde desea restaurar la imagen:
5. Opciones de Ejecución
- Ejecutar: Inicia la restauración inmediatamente.
- Generar instrucciones: Crea un script para ejecutar la restauración manualmente.
- Opciones de programación: Permite programar la restauración para una fecha futura.
Consideraciones Importantes
- Restauración Incremental: La restauración de imágenes Git solo transfiere los cambios respecto a la versión actual, optimizando tiempo y ancho de banda.
- Conectividad: Asegúrese de que el cliente tenga conexión de red estable con el servidor Forgejo/Gitea durante el proceso.
- Compatibilidad: Verifique que la imagen Git sea compatible con el hardware del cliente destino.
- Espacio en Disco: Confirme que la partición de destino tenga espacio suficiente para la imagen restaurada.
Ejemplo práctico:
Ejemplo práctico: Organización de ramas y tags en OgGit
Supongamos que partimos de un repositorio con la siguiente estructura inicial:
main (rama principal)
├── v1.0-estable (tag)
└── desarrollo (rama)
└── experimentos varios
El objetivo es evolucionar el repositorio siguiendo buenas prácticas para llegar a:
main (rama principal)
├── v1.0-estable (tag)
├── v1.1-autocad (tag)
├── profesor-autocad (rama)
│ ├── commit: instalación base
│ └── commit: configuración AutoCAD
└── desarrollo (rama)
└── experimentos varios
Pasos recomendados
- Crear una rama específica para el profesor
- Desde la interfaz de OgGit, selecciona el commit base en
main
y crea una nueva rama llamadaprofesor-autocad
. - Esto permite trabajar en configuraciones específicas sin afectar la rama principal.
- Desde la interfaz de OgGit, selecciona el commit base en
- Realizar commits temáticos
- En la rama
profesor-autocad
, realiza un commit tras instalar la base del sistema. - Realiza un segundo commit tras instalar y configurar AutoCAD.
- Añade mensajes descriptivos para cada commit, por ejemplo:
instalación base
configuración AutoCAD
- En la rama
- Etiquetar versiones estables
- Mantener ramas de desarrollo separadas
- Continúa usando la rama
desarrollo
para pruebas y experimentos, evitando mezclar cambios no validados enmain
oprofesor-autocad
.
- Continúa usando la rama
Buenas prácticas
- Utiliza ramas para separar configuraciones o perfiles de usuario (por ejemplo, profesor, alumno, laboratorio).
- Realiza commits frecuentes y descriptivos para facilitar auditoría y restauración.
- Usa tags para marcar versiones estables y facilitar despliegues.
- Fusiona cambios a
main
solo tras validar que funcionan correctamente.
Resultado final
El repositorio mostrará una estructura clara y organizada, facilitando restauraciones específicas, auditoría y gestión eficiente de versiones.