diff --git a/Documentacion_ogcore/DocumentacionCrearImage.md b/Documentacion_ogcore/DocumentacionCrearImage.md new file mode 100644 index 0000000..ca3f354 --- /dev/null +++ b/Documentacion_ogcore/DocumentacionCrearImage.md @@ -0,0 +1,129 @@ +# Documentación: Ocore y Oggui + + +## Escenario + +Surge la necesidad de crear una imagen a traves de un ordenador al que llamaremos modelo. +Para ello necesitamos tener un ordenador creado en nuestra base de datos con el que tengamos conexión y con un sistema operativo. + +Este es el escenario que se han utilizado para esta demostración: + +- **Centro**: + - Nombre: `Centro Demo` + +- **Aula**: + - Nombre: `Aula Demo` + - Router IP: ` 192.168.2.1` + - Máscara de red: `255.255.255.0` + +- **Ordenador**: + - MAC Address: `08:00:27:4F:BE:38` + - Nombre: `modelo` + - Dirección IP: `192.168.2.2` + +- **Subred**: + - Dirección: `192.168.2.0` + - Máscara de red: `255.2555.255.0` + +- **Imagen**: + - Nombre: `image-test` + - Descripción: `imagen de referencia` + - Tipo: `Linux` + - Versión: `Ubuntu 24.04` + - Arquitectura: `x86_64` + +- **Repositorio**: + - Ruta: `/opt/opengnsys/ogrepository/images` + - IP: `192.168.68.55` + +- **ogAgent**: + - versión: `1.4.5~pre7-1 all` + +El objetivo es crear una imagen a partir del ordenador `modelo` con las características especificadas, para mas adelante replicar/clonar en el resto de clientes. + +En las siguientes capturas de pantalla, se muestra la disposición de los grupos y clientes en la interfaz grafica de ogGui. + +![Grupos general](./images/groups_general.png "Groups general") +![Grupos clients](./images/groups_clients.png "Groups clients") + +La herramienta ogGgui/ogCore nos proporciona una interfaz grafica mediante la cual podremos crear una imagen. En la versión actual, lo haremos a traves de la pestaña "Clientes" dentro del panel de administración de grupos. + +## Crear una imagen + + 1. **Seleccionar cliente modelo**. Mediante la pestaña de **Clientes** en el panel de administración de grupos, accedemos a las opciones del cliente pulsando en el boton "Visualizar" (el que tiene como icono un ojo). +Esto nos da acceso al panel del cliente donde aparece su informacion general y el estado de las particiones. Arriba a la derecha, aparece un boton con todas las acciones disponibles. + + +![Client info](./images/client_info.png "Client info") +![Client actions](./images/client_actions.png "Client actions") + +2. **Crear imagen**. Pulsamos en el botón "Crear imagen" y rellenamos el formulario con los datos de la imagen que queremos crear. En este caso, los datos son los siguientes: + - **Nombre canónico**: `image-test` + - **Imagen creada previamente**: en este caso, lo dejamos en blanco. + - **Seleccionar partición**: Seleccionamos la particion la cual tiene instalada Ubuntu 24.04. + +![Client create image](./images/client_create_image.png "Client create image") + +Si todo ha ido bien, la intefaz grafica nos devuelve un mensaje de confirmacion verde, en la esquina inferior derecha. +Esto quiere decir que el ogAgent ha recibido correctamente la llamada mediante API y está trabajando en la creación de la imagen. + +## Comprobar la creación de la imagen + +En el panel de administracion de imagenes, podremos ver el estado de la imagen que hemos creado. + +La herramienta almacena las imagenes mediante diferentes estados, los cuales son: +- **Estados**: + - En progreso: `in-progress`. La imagen esta en proceso de creación, el ogAgent esta trabajando en ello. + - Pendiente de ficheros auxiliares: `aux-files-pending`. La imagen ha sido creada en el repositorio, pero aun no se han generado los archivos auxiliares, ni devuelvo el fullsum (a partir de ahora será el identificador unico asociado) + - Completada: `success`. La imagen ha sido creada correctamente. Se encuentra en el repositorio de imagenes, y con sus archivos asociados generados satisfactoriamente. + - Error: `failed`. La imagen no ha podido ser creada, por algun error en el proceso. + + +![Images](./images/images.png "Images") + +Una vez el proceso haya terminado, deberiamos poder ver algo similar a la siguiente imagen: + +![Image success](./images/image_success.png "Image success") + + +## Trazas + +Para el correcto funcionamiento del sistema, la comunicacion entre los componentes **ogCore** +, **ogAgent** y **ogRepository** debe ser asíncrona. Para ello, se utilizan trazas que nos permiten ver el estado de las peticiones y las respuestas. + +Podremos acceder a las trazas del sistema, en el botón con un icono de una **campana** en el menu superior de la interfaz grafica. +Se nos oferece un listado con todas las trazas del sistema. Podremos utilizar los filtros proporcionados si es necesario. + +![Traces](./images/traces.png "Traces") + +Para el ejemplo demostrativo, vemos 2 trazas: + - **Creación de imagen**: la traza nos informa del estado del agente respecto a la creacion de la imagen. + - **Creación de ficheros auxiliares**: la traza nos informa de la creación de los ficheros auxiliares asociados a la imagen. + +## Repositorio + +Dentro del repositorio de imágenes, podremos ver la imagen que hemos creado en `/opt/opengnsys/ogrepository/images +` + +![Image repository](./images/image_repository.png "Image repository") + +## Llamadas API a los distintos componentes + + +1. **ogAgent**: Esta es la llamada que ogCore realiza al ogAgent para que este cree la imagen. Nos devuelve como resultado un **job_id** que será el que nos muestre en la interfaz la traza relacionada con la creación esta imagen. + +```` +curl -X POST --data '{"dsk":"1", "par":"2", "cpt":"83", "idi":"01936caf-facb-72ad-9446-97e7dbf2b96a", "nci":"image-test", "ipr":"192.168.68.55", "nfn":"CrearImagen", "ids":"0"}' +https://192.168.2.2:8000/CloningEngine/CrearImagen +{"job_id": "CrearImagen-93992a4b"} +```` + +2. **ogRepository**: Esta es la llamada que ogCore realiza al ogRepository para que este cree los ficheros auxiliares asociados a la imagen. Nos devuelve como resultado un **job_id** que será el que nos muestre en la interfaz la traza relacionada con la los mismos. + +```` +curl -X POST --data '{"image":"image-test.img"}' +https://192.168.68.55:8006/ogrepository/v1/images/torrentsum +{"job_id": "CreateAuxiliarFiles_eba647d4"} +```` + +Estas llamadas comunican sus estados a ogCore mediante **webhooks**, y este se encarga de procesar la respuesta y cambiar el estado cuando sea necesario. diff --git a/Documentacion_ogcore/DocumentacionCrearImage.pdf b/Documentacion_ogcore/DocumentacionCrearImage.pdf new file mode 100644 index 0000000..bfa048f Binary files /dev/null and b/Documentacion_ogcore/DocumentacionCrearImage.pdf differ diff --git a/Documentacion_ogcore/images/client_actions.png b/Documentacion_ogcore/images/client_actions.png new file mode 100644 index 0000000..cff8943 Binary files /dev/null and b/Documentacion_ogcore/images/client_actions.png differ diff --git a/Documentacion_ogcore/images/client_create_image.png b/Documentacion_ogcore/images/client_create_image.png new file mode 100644 index 0000000..beec323 Binary files /dev/null and b/Documentacion_ogcore/images/client_create_image.png differ diff --git a/Documentacion_ogcore/images/client_info.png b/Documentacion_ogcore/images/client_info.png new file mode 100644 index 0000000..31e2644 Binary files /dev/null and b/Documentacion_ogcore/images/client_info.png differ diff --git a/Documentacion_ogcore/images/groups_clients.png b/Documentacion_ogcore/images/groups_clients.png new file mode 100644 index 0000000..801b6b8 Binary files /dev/null and b/Documentacion_ogcore/images/groups_clients.png differ diff --git a/Documentacion_ogcore/images/groups_general.png b/Documentacion_ogcore/images/groups_general.png new file mode 100644 index 0000000..09f0ead Binary files /dev/null and b/Documentacion_ogcore/images/groups_general.png differ diff --git a/Documentacion_ogcore/images/image_repository.png b/Documentacion_ogcore/images/image_repository.png new file mode 100644 index 0000000..40c27e5 Binary files /dev/null and b/Documentacion_ogcore/images/image_repository.png differ diff --git a/Documentacion_ogcore/images/image_success.png b/Documentacion_ogcore/images/image_success.png new file mode 100644 index 0000000..164f156 Binary files /dev/null and b/Documentacion_ogcore/images/image_success.png differ diff --git a/Documentacion_ogcore/images/images.png b/Documentacion_ogcore/images/images.png new file mode 100644 index 0000000..2b6c813 Binary files /dev/null and b/Documentacion_ogcore/images/images.png differ diff --git a/Documentacion_ogcore/images/traces.png b/Documentacion_ogcore/images/traces.png new file mode 100644 index 0000000..5460a2e Binary files /dev/null and b/Documentacion_ogcore/images/traces.png differ