refs #311 #394 removes changes README

pull/3/head
Luis Gerardo Romero Garcia 2024-05-27 14:38:55 +02:00
parent 6883ab1d67
commit 09eb1e1ef0
1 changed files with 486 additions and 416 deletions

902
README.md
View File

@ -10,513 +10,583 @@ La API de Ogboot proporciona una interfaz para facilitar el proceso de inicializ
El presente documento detalla los endpoints del API con sus respectivos parámetros de entrada así como las acciones que llevan a cabo
### Tabla de Contenido
### Obtener Lista de Clientes
1. [Obtener configuración de ogboot](#obtener-configuración-de-ogboot) - `GET /ogboot/v1/config`
2. [Obtener datos de rendimiento](#obtener-datos-de-rendimiento) - `GET /ogboot/v1/status`
3. [Mostrar información de todos los clientes ogLive instalados](#mostrar-información-de-todos-los-clientes-oglive-instalados) - `GET /ogboot/v1/oglives`
4. [Mostrar información de un cliente ogLive instalado](#mostrar-información-de-todos-los-clientes-oglive-instalados) - `GET /ogboot/v1/oglives/{Index|Dir}`
5. [Mostrar información del cliente ogLive predeterminado](#mostrar-información-del-cliente-oglive-predeterminado) - `GET /ogboot/v1/oglives/default`
6. [Cambiar ogLive predeterminado](#cambiar-oglive-predeterminado) - `POST /ogboot/v1/oglives/default/{Index}`
7. [Instalar nuevo cliente ogLive desde imagen descargada](#instalar-nuevo-cliente-oglive-desde-imagen-descargada) - `POST /ogboot/v1/oglive/{iso}`
8. [Desinstalar cliente ogLive y eliminar imagen](#desinstalar-cliente-oglive-y-eliminar-imagen) - `DELETE /ogboot/v1/oglives/{iso}`
9. [Regenerar archivo de información de los ogLive](#regenerar-archivo-de-información-de-los-oglive) - `PUT /ogboot/v1/oglives`
10. [Mostrar menú de descarga de imagen de ogLive](#mostrar-menú-de-descarga-de-imagen-de-oglive) - `GET /ogboot/v1/images/download`
11. [Obtener todos los archivos de arranque](#obtener-todos-los-archivos-de-arranque) - `GET /ogboot/v1/pxes`
12. [Obtener archivo de arranque](#obtener-archivo-de-arranque) - `GET /ogboot/v1/pxes/{mac}`
13. [Crear archivo de arranque](#crear-archivo-de-arranque) - `POST /ogboot/v1/pxes`
14. [Eliminar archivo de arranque](#eliminar-archivo-de-arranque) - `DELETE /ogboot/v1/pxes`
15. [Obtener todas las plantillas](#obtener-todas-las-plantillas) - `GET /ogboot/v1/pxe-templates`
16. [Obtener contenido de la plantilla](#obtener-contenido-de-la-plantilla) - `GET /ogboot/v1/pxe-templates/{nombre}`
17. [Crear plantilla](#crear-plantilla) - `POST /ogboot/v1/pxe-templates`
18. [Regenerar plantilla](#regenerar-plantilla) - `PUT /ogboot/v1/pxe-templates`
Obtiene la lista de clientes registrados en el sistema.
**URL:** /clients
### Obtener Configuración de ogboot
Devuelve la configuración actual del ogboot.
**URL:** `/ogboot/v1/config`
**Método HTTP:** GET
**Ejemplo de Solicitud:**
```
curl -X GET -H "Authorization: $API_KEY" http://127.0.0.1:8888/clients
```bash
curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/config
```
### Encender Equipos Remotamente (Wake-on-LAN)
**Respuestas:**
- **Código 200 OK:** La configuración del ogboot se obtuvo exitosamente.
- **Contenido:** Configuración del ogboot en formato JSON.
```json
{
"config-file": "/opt/opengnsys/etc/ogliveinfo.json",
"download-url": "https://opengnsys.es/trac/downloads",
"download-dir": "/opt/opengnsys/lib",
"install-dir": "/opt/opengnsys/tftpboot",
"default-name": "ogLive",
"min-release": "r20190601"
}
```
Envía comandos de encendido remoto a uno o varios equipos utilizando Wake-on-LAN.
- **config-file**: Ruta del archivo de configuración que usa oglivecli para guardar los oglives instalados.
**URL:** /wol
**Método HTTP:** POST
**Parámetros de entrada:**
- type (string): Tipo de envío de paquetes Wake-on-LAN (unicast, broadcast, multicast, etc.).
- clients (array): Lista de objetos que contienen la dirección IP (addr) y la dirección MAC (mac) de los equipos a encender.
- **download-url**: URL base desde la cual se descargan las imágenes de oglive.
- **download-dir**: Ruta del directorio en el cual se almacenan las imágenes de oglive descargadas
- **install-dir**: La ruta del directorio donde se instalan las imágenes de oglive
- **default-name**: Nombre predeterminado utilizado para los clientes ogLive.
- **min-release**: La versión mínima recomendada para la instalación de imágenes oglives.
- **Código 400 Bad Request:** La solicitud es incorrecta. La configuración del ogboot no se ha obtenido correctamente.
### Obtener estado de ogboot
Devuelve la consistencia, errores de incompatibilidad y de configuración
**URL:** `/ogboot/v1/status`
**Método HTTP:** GET
**Ejemplo de Solicitud:**
```bash
curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/status
```
**Respuestas:**
- **Código 200 OK:** El status de ogboot se obtuvo exitosamente.
- **Contenido:**
```
Some installed ogLive aren't fully compatible: , , ogLive-3.19.0-i386-r4795
Problems detected:
```
- **Código 400 Bad Request:** La solicitud es incorrecta. La status de ogboot no se ha obtenido correctamente.
### Mostrar Información de Todos los Clientes ogLive Instalados
Muestra información en formato JSON sobre todos los clientes ogLive instalados.
**URL:** `/ogboot/v1/oglives`
**Método HTTP:** GET
**Ejemplo de Solicitud:**
```bash
curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/clients/oglives/
[
{
"distribution": "focal",
"kernel": "5.11.0-22-generic",
"architecture": "amd64",
"revision": "r20210413",
"directory": "ogLive-5.11.0-r20210413",
"iso": "ogLive-focal-5.11.0-22-generic-amd64-r20210413.992ebb9.iso"
},
{
"distribution": "focal",
"kernel": "5.13.0-27-beta",
"architecture": "amd64",
"revision": "r20210706",
"directory": "ogLive-5.13.0-r20210706",
"iso": "ogLive-focal-5.13.0-27-beta-amd64-r20210706.5b4bf5f.iso"
}
]
```
- **distribution**: Distribución del sistema operativo de la imagen ogLive
- **kernel**: Versión del kernel del sistema operativo utilizado por la imagen ogLive
- **architecture**: Arquitectura del hardware de la imagen ogLive
- **revision**: Versión de la imagen ogLive
- **directory**: Directorio donde se encuentra instalado el cliente ogLive en el sistema.
- **iso**: Nombre del archivo ISO utilizado para instalar el cliente ogLive.
**Respuestas:**
- **Código 200 OK:** La información sobre todos los clientes ogLive instalados se obtuvo exitosamente.
- **Contenido:** Información sobre todos los clientes ogLive instalados en formato JSON.
**Ejemplo de Solicitud:**
```
curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/wol -d @wol.json
```
**Contenido de wol.json:**
```
{ "type" : "unicast", "clients" : [ { "addr" : "192.168.2.1", "mac" : "00AABBCCDD01" } ] }
```
### Gestión de Sesión
### Mostrar Información de un Cliente ogLive Instalado
Gestiona las sesiones de usuario en el sistema.
Muestra información en formato JSON sobre un cliente ogLive instalado específico.
**URL:** /session
**Método HTTP:** POST
**Parámetros de entrada:**
- clients (array): Lista de direcciones IP de los clientes.
- disk (string): Número del disco duro.
- partition (string): Número de la partición.
**URL:** `/ogboot/v1/oglives/{Index}`
**Método HTTP:** GET
**Parámetros de la URL:**
- `{Index}`: El índice o directorio del cliente ogLive instalado.
**Ejemplo de Solicitud:**
```
curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/session -d @session.json
```
**Contenido de session.json:**
```json
{ "clients" : [ "192.168.2.1", "192.168.2.2" ], "disk" : "0", "partition" : "1"}
```bash
curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/clients/oglives/1
{
"distribution": "focal",
"kernel": "5.11.0-22-generic",
"architecture": "amd64",
"revision": "r20210413",
"directory": "ogLive-5.11.0-r20210413",
"iso": "ogLive-focal-5.11.0-22-generic-amd64-r20210413.992ebb9.iso"
}
```
### Apagar Equipos
**Respuestas:**
- **Código 200 OK:** La información sobre el cliente ogLive instalado se obtuvo exitosamente.
- **Contenido:** Información sobre el cliente ogLive instalado en formato JSON.
- **Código 404 Not Found:** No se encontró ningún cliente ogLive instalado con el índice o directorio proporcionado.
Envía comandos de apagado a uno o varios equipos.
### Mostrar Información del Cliente ogLive Predeterminado
**URL:** /poweroff
**Método HTTP:** POST
**Parámetros de entrada:**
- clients (array): Lista de direcciones IP de los clientes.
Muestra información en formato JSON sobre el cliente ogLive predeterminado.
**URL:** `/ogboot/v1/oglives/default`
**Método HTTP:** GET
**Ejemplo de Solicitud:**
```
curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/poweroff -d @poweroff.json
```
**Contenido de poweroff.json:**
```json
{ "clients" : [ "192.168.2.1", "192.168.2.2" ] }
```bash
curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/clients/oglives/default
{
"distribution": "focal",
"kernel": "5.11.0-22-generic",
"architecture": "amd64",
"revision": "r20210413",
"directory": "ogLive-5.11.0-r20210413",
"iso": "ogLive-focal-5.11.0-22-generic-amd64-r20210413.992ebb9.iso"
}
```
### Reiniciar Equipos
**Respuestas:**
- **Código 200 OK:** La información sobre el cliente ogLive predeterminado se obtuvo exitosamente.
- **Contenido:** Información sobre el cliente ogLive predeterminado en formato JSON.
Envía comandos de reinicio a uno o varios equipos.
**URL:** /reboot
**Método HTTP:** POST
**Parámetros de entrada:**
- clients (array): Lista de direcciones IP de los clientes.
### Cambiar ogLive Predeterminado
Establece un nuevo cliente ogLive como predeterminado utilizando su índice.
**URL:** `/ogboot/v1/oglives/default`
**Método HTTP:** POST
**Parámetros de la URL:**
- `{Index}`: El índice del cliente ogLive que se establecerá como predeterminado.
**Ejemplo de Solicitud:**
```
curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/reboot -d @reboot.json
```
**Contenido de reboot.json:**
```json
{ "clients" : [ "192.168.2.1", "192.168.2.2" ] }
```bash
curl -X POST -H "Authorization: $API_KEY" http://example.com/ogboot/v1/clients/oglives/default/1
```
### Detener Operaciones en Curso
**Respuestas:**
- **Código 200 OK:** El cliente ogLive se estableció como predeterminado exitosamente.
- **Código 404 Not Found:** No se encontró ningún cliente ogLive con el índice proporcionado.
Detiene las operaciones en curso en los equipos.
**URL:** /stop
**Método HTTP:** POST
**Parámetros de entrada:**
- clients (array): Lista de direcciones IP de los clientes.
### Descargar e Instalar Nuevo Cliente ogLive desde Imagen Descargada
Descarga y luego instala un nuevo cliente ogLive utilizando la imagen descargada, especificada por su nombre de archivo ISO en el parámetro de entrada.
**URL:** `/ogboot/v1/oglive`
**Método HTTP:** POST
**Parámetros de Entrada:**
- `ISO: Nombre de la ISO que se desea descargar e instalar
**Ejemplo de Solicitud:**
```
curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/stop -d @stop.json
```
**Contenido de stop.json:**
```json
{ "clients" : [ "192.168.2.1", "192.168.2.2" ] }
```bash
curl -X POST -H "Authorization: $API_KEY" -d "ISO=ogLive-focal-5.13.0-27-beta-amd64-r20210706.5b4bf5f.iso" http://example.com/ogboot/v1/oglive
```
### Reiniciar Equipos
**Respuestas:**
- **Código 200 OK:** La descarga e instalación del nuevo cliente ogLive desde la imagen descargada fue exitosa.
- **Código 404 Not Found:** No se encontró ninguna imagen ogLive con el índice o nombre de archivo ISO proporcionado.
Envía comandos de reinicio a uno o varios equipos.
**URL:** /reboot
**Método HTTP:** POST
**Parámetros de entrada:**
- clients (array): Lista de direcciones IP de los clientes.
### Desinstalar Cliente ogLive
Desinstala un cliente ogLive específico y elimina su imagen asociada.
**URL:** `/ogboot/v1/oglives/{Index}`
**Método HTTP:** DELETE
**Parámetros de la URL:**
- `{Index}`: El índice deL archivo ISO del cliente ogLive que se desinstalará y eliminará.
**Ejemplo de Solicitud:**
```
curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/reboot -d @reboot.json
```
**Contenido de reboot.json:**
```json
{ "clients" : [ "192.168.2.1", "192.168.2.2" ] }
```bash
curl -X DELETE -H "Authorization: $API_KEY" http://example.com/ogboot/v1/oglives/1
```
### Actualizar Información de Equipos
**Respuestas:**
- **Código 200 OK:** El cliente ogLive se desinstaló y su imagen asociada se eliminó correctamente.
- **Código 404 Not Found:** No se encontró ningún cliente ogLive con el índice o nombre de archivo ISO proporcionado.
???????
**URL:** /refresh
**Método HTTP:** POST
**Parámetros de entrada:**
- clients (array): Lista de direcciones IP de los clientes.
### Regenerar Archivo de Información de los ogLive
Regenera el archivo de información de los clientes ogLive instalados.
**URL:** `/ogboot/v1/oglives`
**Método HTTP:** PUT
**Ejemplo de Solicitud:**
```
curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/refresh -d @refresh.json
```
**Contenido de refresh.json:**
```json
{ "clients" : [ "192.168.2.1", "192.168.2.2" ] }
```bash
curl -X PUT -H "Authorization: $API_KEY" http://example.com/ogboot/v1/oglives
```
### Obtener Información de Hardware
**Respuestas:**
- **Código 200 OK:** El archivo de información de los clientes ogLive se regeneró correctamente.
- **Código 500 Internal Server Error:** Ocurrió un error al intentar regenerar el archivo de información de los clientes ogLive.
Obtiene información detallada sobre el hardware de los equipos.
**URL:** /hardware
**Método HTTP:** POST
**Parámetros de entrada:**
- clients (array): Lista de direcciones IP de los clientes.
### Mostrar Menú de Descarga de Imagen de ogLive
Muestra un menú con opciones para descargar imágenes de ogLive disponibles.
**URL:** `/ogboot/v1/images/download`
**Método HTTP:** GET
**Ejemplo de Solicitud:**
```
curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/hardware -d @post_clients.json
```
**Contenido de post_clients.json:**
```json
{ "clients" : [ "192.168.2.1", "192.168.2.2" ] }
```bash
curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/images/download
```
### Obtener Información de Software
**Respuestas:**
- **Código 200 OK:** El menú de descarga de imágenes de ogLive se obtuvo exitosamente.
- **Contenido:** Menú de descarga de imágenes de ogLive en formato JSON.
Obtiene información sobre el software instalado en los equipos.
**URL:** /software
**Método HTTP:** POST
**Parámetros de entrada:**
- clients (array): Lista de direcciones IP de los clientes.
### Obtener Todos los Archivos de Arranque
Obtiene una lista de todos los archivos de arranque disponibles.
**URL:** `/ogboot/v1/pxes`
**Método HTTP:** GET
**Ejemplo de Solicitud:**
```
curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/software -d @post_clients.json
```
**Contenido de post_clients.json:**
```json
{ "clients" : [ "192.168.2.1", "192.168.2.2" ] }
```
```bash
curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/pxes
### Crear Imagen del Sistema
Crea una imagen del sistema en los equipos especificados.
**URL:** /image/create
**Método HTTP:** POST
**Parámetros de entrada:**
- clients (array): Lista de direcciones IP de los clientes.
- disk (string): Número del disco duro.
- partition (string): Número de la partición.
- code (string): Código de la imagen.
- id (string): Identificador único de la imagen.
- name (string): Nombre de la imagen.
- repository (string): Dirección IP del repositorio de imágenes.
**Ejemplo de Solicitud:**
```
curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/image/create -d @create_image.json
```
**Contenido de create_image.json:**
```json
{ "clients" : [ "192.168.2.1" ], "disk" : "1", "partition" : "1", "code" : "1", "id" : "1", "name" : "test", "repository" : "192.168.2.4" }
```
### Restaurar Imagen del Sistema
Restaura una imagen del sistema en los equipos especificados.
**URL:** /image/restore
**Método HTTP:** POST
**Parámetros de entrada:**
- clients (array): Lista de direcciones IP de los clientes.
- disk (string): Número del disco duro.
- partition (string): Número de la partición.
- name (string): Nombre de la imagen a restaurar.
- repository (string): Dirección IP del repositorio de imágenes.
- type (string): Tipo de envío de la imagen (UNICAST, BROADCAST, MULTICAST, etc.).
- profile (string): Perfil de configuración de la imagen.
- id (string): Identificador único de la imagen.
**Ejemplo de Solicitud:**
```
curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/image/restore -d @restore_image.json
```
**Contenido de restore_image.json:**
```json
{ "clients" : [ "192.168.56.11" ], "disk" : "1", "partition" : "1", "name" : "test", "repository" : "192.168.56.10", "type" : "UNICAST", "profile": "1", "id": "1"}
```
### Configuración Inicial del Sistema
Realiza la configuración inicial del sistema en los equipos especificados.
**URL:** /setup
**Método HTTP:** POST
**Parámetros de entrada:**
- clients (array): Lista de direcciones IP de los clientes.
- disk (string): Número del disco duro.
- cache (string): Indicador de activación de la caché.
- cache_size (string): Tamaño de la caché.
- partition_setup (array): Configuración de particiones. Cada objeto dentro del array debe contener los siguientes campos:
- partition (string): Número de la partición.
- code (string): Código de tipo de partición.
- filesystem (string): Sistema de archivos de la partición.
- size (string): Tamaño de la partición.
- format (string): Indicador de formateo de la partición.
**Ejemplo de Solicitud:**
```
curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/setup -d @setup_image.json
```
**Contenido de setup_image.json:**
```json
{
"clients" : [ "192.168.56.11" ],
"disk" : "1",
"cache" : "1",
"cache_size" : "0",
"partition_setup": [
{ "partition": "1", "code": "LINUX", "filesystem": "EMPTY", "size": "498688", "format": "0" },
{ "partition": "2", "code": "LINUX-SWAP", "filesystem": "EMPTY", "size": "199987", "format": "0" },
{ "partition": "3", "code": "LINUX", "filesystem": "EMPTY", "size": "31053824", "format": "0" },
{ "partition": "4", "code": "EMPTY", "filesystem": "EMPTY", "size": "0", "format": "0" }
{
"boot_files": [
"01-00:50:56:22:11:11",
"01-00:50:56:22:11:12"
]
}
```
**Respuestas:**
- **Código 200 OK:** La lista de todos los archivos de arranque se obtuvo exitosamente.
- **Contenido:** Lista de archivos de arranque en formato JSON.
- **Código 500 Internal Server Error:** Ocurrió un error al intentar obtener la lista de todos los archivos de arranque disponibles.
### Crear Imagen Básica del Sistema
Crea una imagen básica del sistema en los equipos especificados.
### Obtener Configuración de Arranque
**URL:** /image/create/basic
**Método HTTP:** POST
**Parámetros de entrada:**
- clients (array): Lista de direcciones IP de los clientes.
- disk (string): Número del disco duro.
- partition (string): Número de la partición.
- code (string): Código de la imagen.
- id (string): Identificador único de la imagen.
- name (string): Nombre de la imagen.
- repository (string): Dirección IP del repositorio de imágenes.
- sync_params (object): Parámetros de sincronización. Debe contener los siguientes campos:
- sync (string)
- diff (string)
- remove (string)
- compress (string)
- cleanup (string)
- cache (string)
- cleanup_cache (string)
- remove_dst (string)
Obtiene el contenido del archivo de configuración de arranque específico para un cliente utilizando su dirección MAC.
**URL:** `/ogboot/v1/pxes/{mac}`
**Método HTTP:** GET
**Parámetros de la URL:**
- `{mac}`: La dirección MAC del cliente cuyo archivo de configuración de arranque se desea obtener.
**Ejemplo de Solicitud:**
```
curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/image/create/basic -d @create_basic_image.json
```
**Contenido de create_basic_image.json:**
```json
{
"clients":["192.168.56.11"],
"disk":"1",
"partition":"1",
"code":"131",
"id":"8",
"name":"debianbasica",
"repository":"192.168.56.10",
"sync_params":{
"sync":"1",
"diff":"0",
"remove":"1",
"compress":"0",
"cleanup":"0",
"cache":"0",
"cleanup_cache":"0",
"remove_dst":"0"
}
}
```bash
curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/clients/pxes/00:11:22:33:44:55
#!ipxe
set timeout 0
set timeout-style hidden
set ISODIR ogLive
set default 0
set kernelargs ro boot=oginit quiet splash irqpoll acpi=on og2nd=sqfs ogprotocol=smb ogactiveadmin=true ogdebug=true ogtmpfs=15 oglivedir=${ISODIR} LANG=es_ES.UTF-8 ip=192.168.2.11:192.168.2.1:192.168.2.1:255.255.255.0:pc11:eth0:none group=Aula_virtual ogrepo=192.168.2.1 oglive=192.168.2.1 oglog=192.168.2.1 ogshare=192.168.2.1 ogprof=false vga=788
set kernelargs ro boot=oginit quiet splash irqpoll acpi=on og2nd=sqfs ogprotocol=smb ogactiveadmin=true ogdebug=true ogtmpfs=15 oglivedir=$ISODIR LANG=es_ES.UTF-8 ip=192.168.2.11:192.168.2.1:192.168.2.1:255.255.255.0:pc11:eth0:none group=Aula_virtual ogrepo=192.168.2.1 oglive=192.168.2.1 oglog=192.168.2.1 ogshare=192.168.2.1 ogprof=false vga=788
kernel tftp://172.17.8.71/ogLive/ogvmlinuz ${kernelargs}
initrd tftp://172.17.8.71/ogLive/oginitrd.img
boot
```
### Crear Imagen Incremental del Sistema
**Respuestas:**
- **Código 200 OK:** El archivo de arranque para la dirección MAC especificada se encontró y se devuelve correctamente.
- **Contenido:** El archivo de arranque en formato adecuado para su uso en el cliente correspondiente.
- **Código 404 Not Found:** No se encontró ningún archivo de arranque para la dirección MAC especificada.
Crea una imagen incremental del sistema en los equipos especificados.
**URL:** /image/create/incremental
**Método HTTP:** POST
**Parámetros de entrada:**
- clients (array): Lista de direcciones IP de los clientes.
- disk (string): Número del disco duro.
- partition (string): Número de la partición.
- id (string): Identificador único de la imagen.
- name (string): Nombre de la imagen.
- repository (string): Dirección IP del repositorio de imágenes.
- sync_params (object): Parámetros de sincronización. Debe contener los siguientes campos:
- sync (string)
- path (string)
- diff (string)
- diff_id (string)
- diff_name (string)
- remove (string)
- compress (string)
- cleanup (string): Indicador de limpieza.
- cache (string)
- cleanup_cache (string)
- remove_dst (string)
### Crear Archivo de Arranque
Crea un nuevo archivo de arranque utilizando los parámetros proporcionados.
**URL:** `/ogboot/v1/pxes`
**Método HTTP:** POST
**Cuerpo de la Solicitud:**
- Datos necesarios para la creación del archivo de arranque, como el nombre, la configuración, etc.
**Ejemplo de Solicitud:**
```
curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/image/create/incremental -d @create_incremental_image.json
```
**Contenido de create_incremental_image.json:**
```json
{
"clients":["192.168.56.11"],
"disk":"1",
"partition":"1",
"id":"3",
"name":"basica1",
"repository":"192.168.56.10",
"sync_params":{
"sync":"1",
"path":"",
"diff":"0",
"diff_id":"4",
"diff_name":"p2",
"remove":"1",
"compress":"0",
"cleanup":"0",
"cache":"0",
"cleanup_cache":"0",
"remove_dst":"0"
}
}
```bash
curl -X POST -H "Authorization: $API_KEY" -d '{"mac": "00:50:56:22:11:12", "config": "#!ipxe\nset timeout 0\nset timeout-style hidden\n\nset ISODIR ogLive\nset default 0\nset kernelargs ro boot=oginit quiet splash irqpoll acpi=on og2nd=sqfs ogprotocol=smb ogactiveadmin=true ogdebug=true ogtmpfs=15 oglivedir=${ISODIR} LANG=es_ES.UTF-8 ip=192.168.2.11:192.168.2.1:192.168.2.1:255.255.255.0:pc11:eth0:none group=Aula_virtual ogrepo=192.168.2.1 oglive=192.168.2.1 oglog=192.168.2.1 ogshare=192.168.2.1 ogprof=false vga=788\n\nset kernelargs ro boot=oginit quiet splash irqpoll acpi=on og2nd=sqfs ogprotocol=smb ogactiveadmin=true ogdebug=true ogtmpfs=15 oglivedir=$ISODIR LANG=es_ES.UTF-8 ip=192.168.2.11:192.168.2.1:192.168.2.1:255.255.255.0:pc11:eth0:none group=Aula_virtual ogrepo=192.168.2.1 oglive=192.168.2.1 oglog=192.168.2.1 ogshare=192.168.2.1 ogprof=false vga=788\nkernel tftp://172.17.8.71/ogLive/ogvmlinuz ${kernelargs}\ninitrd tftp://172.17.8.71/ogLive/oginitrd.img\nboot"}' http://example.com/ogboot/v1/pxes
```
### Restaurar Imagen Básica del Sistema
**Respuestas:**
- **Código 200 OK:** El archivo de arranque se creó exitosamente.
- **Código 400 Bad Request:** La solicitud no pudo ser procesada debido a un error en los datos proporcionados en el cuerpo de la solicitud.
- **Código 500 Internal Server Error:** Ocurrió un error al subir el archivo de arranque.
Restaura una imagen básica del sistema en los equipos especificados.
### Eliminar Archivo de Arranque
**URL:** /image/restore/basic
**Método HTTP:** POST
**Parámetros de entrada:**
- clients (array): Lista de direcciones IP de los clientes.
- disk (string): Número del disco duro.
- partition (string): Número de la partición.
- id (string): Identificador único de la imagen.
- name (string): Nombre de la imagen.
- repository (string): Dirección IP del repositorio de imágenes.
- profile (string): Perfil de configuración de la imagen.
- type (string): Tipo de envío de la imagen (UNICAST, BROADCAST, MULTICAST, etc.).
- sync_params (object): Parámetros de sincronización. Debe contener los siguientes campos:
- path (string)
- method (string)
- sync (string)
- diff (string)
- remove (string)
- compress (string)
- cleanup (string)
- cache (string)
- cleanup_cache (string)
- remove_dst (string)
Elimina un archivo de arranque específico utilizando su identificador único.
**URL:** `/ogboot/v1/pxes/{MAC}`
**Método HTTP:** DELETE
**Parámetros de la URL:**
- `{mac}`: La dirección MAC del cliente cuyo archivo de arranque se desea obtener.
**Ejemplo de Solicitud:**
```
curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/image/restore/basic -d @restore_basic_image.json
```
**Contenido de restore_basic_image.json:**
```json
{
"clients":["192.168.56.11"],
"disk":"1",
"partition":"1",
"id":"9",
"name":"test",
"repository":"192.168.56.10",
"profile":"17",
"type":"UNICAST",
"sync_params":{
"path":"",
"method":"1",
"sync":"1",
"diff":"0",
"remove":"1",
"compress":"0",
"cleanup":"0",
"cache":"0",
"cleanup_cache":"0",
"remove_dst":"0"
}
}
```
### Restaurar Imagen Incremental del Sistema
Restaura una imagen incremental del sistema en los equipos especificados.
```bash
curl -X DELETE -H "Authorization: $API_KEY" http://example.com/ogboot/v1/clients/pxes/00:11:22:33:44:55
```
**URL:** /image/restore/incremental
**Método HTTP:** POST
**Parámetros de entrada:**
- clients (array): Lista de direcciones IP de los clientes.
- disk (string): Número del disco duro.
- partition (string): Número de la partición.
- id (string): Identificador único de la imagen.
- name (string): Nombre de la imagen.
- repository (string): Dirección IP del repositorio de imágenes.
- profile (string): Perfil de configuración de la imagen.
- type (string): Tipo de envío de la imagen (UNICAST, BROADCAST, MULTICAST, etc.).
- sync_params (object): Parámetros de sincronización. Debe contener los siguientes campos:
- diff_id (string)
- diff_name (string)
- path (string)
- method (string)
- sync (string)
- diff (string)
- remove (string)
- compress (string)
- cleanup (string)
- cache (string)
- cleanup_cache (string)
- remove_dst (string)
**Respuestas:**
- **Código 200 OK:** El archivo de arranque se eliminó correctamente.
- **Código 404 Not Found:** No se encontró ningún archivo de arranque con el identificador único especificado.
- **Código 500 Internal Server Error:** Ocurrió un error al eliminar el archivo de arranque.
### Actualizar Repositorio de Arranque
Actualiza el repositorio de archivos de arranque con los archivos modificados.
**URL:** `/ogboot/v1/pxes`
**Método HTTP:** PUT
**Cuerpo de la Solicitud:**
- Fichero en json con la configuración de arranque de la máquina
**Ejemplo de Solicitud:**
```
curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/image/restore/incremental -d @restore_incremental_image.json
```
**Contenido de restore_incremental_image.json:**
```json
{
"clients":["192.168.56.11"],
"disk":"1",
"partition":"1",
"id":"9",
"name":"test",
"repository":"192.168.56.10",
"profile":"17",
"type":"UNICAST",
"sync_params":{
"diff_id":"1",
"diff_name":"test",
"path":"",
"method":"1",
"sync":"1",
"diff":"0",
"remove":"1",
"compress":"0",
"cleanup":"0",
"cache":"0",
"cleanup_cache":"0",
"remove_dst":"0"
}
}
```bash
curl -X PUT -H "Authorization: $API_KEY" -H "Content-Type: application/json" -d '{"mac": "00:50:56:22:11:12", "config": "#!ipxe\nset timeout 0\nset timeout-style hidden\n\nset ISODIR ogLive\nset default 0\nset kernelargs ro boot=oginit quiet splash irqpoll acpi=on og2nd=sqfs ogprotocol=smb ogactiveadmin=true ogdebug=true ogtmpfs=15 oglivedir=${ISODIR} LANG=es_ES.UTF-8 ip=192.168.2.11:192.168.2.1:192.168.2.1:255.255.255.0:pc11:eth0:none group=Aula_virtual ogrepo=192.168.2.1 oglive=192.168.2.1 oglog=192.168.2.1 ogshare=192.168.2.1 ogprof=false vga=788\n\nset kernelargs ro boot=oginit quiet splash irqpoll acpi=on og2nd=sqfs ogprotocol=smb ogactiveadmin=true ogdebug=true ogtmpfs=15 oglivedir=$ISODIR LANG=es_ES.UTF-8 ip=192.168.2.11:192.168.2.1:192.168.2.1:255.255.255.0:pc11:eth0:none group=Aula_virtual ogrepo=192.168.2.1 oglive=192.168.2.1 oglog=192.168.2.1 ogshare=192.168.2.1 ogprof=false vga=788\nkernel tftp://172.17.8.71/ogLive/ogvmlinuz ${kernelargs}\ninitrd tftp://172.17.8.71/ogLive/oginitrd.img\nboot"}' http://example.com/ogboot/v1/pxes
```
**Respuestas:**
- **Código 200 OK:** El repositorio de arranque se actualizó exitosamente con los archivos modificados.
- **Código 400 Bad Request:** La solicitud no pudo ser procesada debido a un error en los datos proporcionados en el cuerpo de la solicitud.
- **Código 500 Internal Server Error:** Ocurrió un error al actualizar el archivo de arranque.
### Run Schedule
??????
### Obtener Todas las Plantillas
**URL:** /run/schedule
**Método HTTP:** POST
**Parámetros de entrada:**
- clients (array): Lista de direcciones IP de los clientes.
Obtiene una lista de todas las plantillas de arranque disponibles.
**URL:** `/ogboot/v1/pxe-templates`
**Método HTTP:** GET
**Ejemplo de Solicitud:**
```bash
curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/pxe-templates
```
curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/run/schedule -d @run_schedule.json
**Respuestas:**
- **Código 200 OK:** La lista de todas las plantillas de arranque se obtuvo exitosamente.
- **Contenido:** Lista de plantillas de arranque en formato JSON.
- **Código 500 Internal Server Error:** Ocurrió un error al obtener las plantillas de arranque.
### Obtener Contenido de la Plantilla
Obtiene el contenido de una plantilla de arranque específica utilizando su nombre.
**URL:** `/ogboot/v1/pxe-templates/{nombre}`
**Método HTTP:** GET
**Parámetros de la URL:**
- `{nombre}`: El nombre de la plantilla de arranque cuyo contenido se desea obtener.
**Ejemplo de Solicitud:**
```bash
curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/pxe-templates/template1
#!ipxe
set timeout 0
set timeout-style hidden
set ISODIR ogLive
set default 0
set kernelargs ro boot=oginit quiet splash irqpoll acpi=on og2nd=sqfs ogprotocol=smb ogactiveadmin=true ogdebug=true ogtmpfs=15 oglivedir=${ISODIR} LANG=es_ES.UTF-8 ip=192.168.1.100:192.168.1.1:192.168.1.1:255.255.255.0:pc01:eth0:none group=Aula_virtual ogrepo=192.168.1.10 oglive=192.168.1.10 oglog=192.168.1.10 ogshare=192.168.1.10 ogprof=false vga=788
time kernel tftp://172.17.8.71/ogLive/ogvmlinuz ${kernelargs}
time initrd tftp://172.17.8.71/ogLive/oginitrd.img
boot
```
**Contenido de run_schedule.json:**
```json
{
"clients":["192.168.56.11"]
}
```
**Respuestas:**
- **Código 200 OK:** El contenido de la plantilla de arranque se obtuvo exitosamente.
- **Contenido:** Contenido de la plantilla de arranque en formato adecuado para su uso.
- **Código 400 Bad Request:** La solicitud no pudo ser procesada debido a un error en los datos proporcionados en el cuerpo de la solicitud.
- **Código 500 Internal Server Error:** Ocurrió un error al obtener la plantilla de arranque.
---
### Crear Plantilla
Crea una nueva plantilla de arranque utilizando los datos proporcionados.
**URL:** `/ogboot/v1/pxe-templates`
**Método HTTP:** POST
**Cuerpo de la Solicitud:**
- {name_template}: Nombre de la plantilla
- {ip}: Dirección IP del cliente.
- {gateway}: Puerta de enlace predeterminada.
- {netmask}: Máscara de red.
- {hostname}: Nombre del host del cliente.
- {interface}: Interfaz de red utilizada por el cliente.
- {group}: Grupo al que pertenece el cliente.
- {ogrepo}: Dirección IP del repositorio de ogLive.
- {oglive}: Dirección IP del servidor ogLive.
- {oglog}: Dirección IP del servidor de logs.
- {ogshare}: Dirección IP del servidor de archivos compartidos.
- {ogprof}: Valor booleano que indica si el perfil del cliente está habilitado o deshabilitado.
- {vga}: Modo VGA utilizado para la interfaz de usuario.
- {tftp_server_ip}: Dirección IP del servidor TFTP desde el cual se descargarán los archivos necesarios para el arranque del sistema
**Ejemplo de Solicitud:**
```bash
curl -X POST -H "Authorization: $API_KEY" -H "Content-Type: application/json" -d '{"name_template":"template1","ip": "192.168.1.100", "gateway": "192.168.1.1", "netmask": "255.255.255.0", "hostname": "pc01", "interface": "eth0", "group": "Aula_virtual", "ogrepo": "192.168.1.10", "oglive": "192.168.1.10", "oglog": "192.168.1.10", "ogshare": "192.168.1.10", "ogprof": false, "vga": 788, "tftp_server_ip": "172.17.8.71"}' http://example.com/ogboot/v1/pxe-templates
#!ipxe
set timeout 0
set timeout-style hidden
set ISODIR ogLive
set default 0
set kernelargs ro boot=oginit quiet splash irqpoll acpi=on og2nd=sqfs ogprotocol=smb ogactiveadmin=true ogdebug=true ogtmpfs=15 oglivedir=${ISODIR} LANG=es_ES.UTF-8 ip=192.168.1.100:192.168.1.1:192.168.1.1:255.255.255.0:pc01:eth0:none group=Aula_virtual ogrepo=192.168.1.10 oglive=192.168.1.10 oglog=192.168.1.10 ogshare=192.168.1.10 ogprof=false vga=788
time kernel tftp://172.17.8.71/ogLive/ogvmlinuz ${kernelargs}
time initrd tftp://172.17.8.71/ogLive/oginitrd.img
boot
```
**Respuestas:**
- **Código 200 OK:** La plantilla de arranque se creó exitosamente.
- **Contenido:** Plantilla generada a partir de los parámetros pasados en la petición.
- **Código 400 Bad Request:** La solicitud no pudo ser procesada debido a un error en los datos proporcionados en el cuerpo de la solicitud.
- **Código 500 Internal Server Error:** Ocurrió un error al crear la plantilla de arranque.
### Regenerar Plantilla
Regenera el contenido de una plantilla de arranque específica utilizando su nombre.
**URL:** `/ogboot/v1/pxe-templates/{nombre}`
**Método HTTP:** PUT
**Parámetros de la URL:**
- `{nombre}`: El nombre de la plantilla de arranque que se desea regenerar.
**Ejemplo de Solicitud:**
```bash
curl -X PUT -H "Authorization: $API_KEY" http://example.com/ogboot/v1/pxe-templates/template1
```
**Respuestas:**
- **Código 200 OK:** El contenido de la plantilla de arranque se regeneró exitosamente.
- **Código 404 Not Found:** No se encontró ninguna plantilla de arranque con el nombre especificado.
- **Código 500 Internal Server Error:** Ocurrió un error al regenerar la plantilla de arranque.
---
### Eliminar Plantilla
Elimina una plantilla de arranque específica utilizando su nombre.
**URL:** `/ogboot/v1/pxe-templates/{nombre}`
**Método HTTP:** DELETE
**Parámetros de la URL:**
- `{nombre}`: El nombre de la plantilla de arranque que se desea eliminar.
**Ejemplo de Solicitud:**
```bash
curl -X DELETE -H "Authorization: $API_KEY" http://example.com/ogboot/v1/pxe-templates/template1
```
**Respuestas:**
- **Código 200 OK:** La plantilla de arranque se eliminó correctamente.
- **Código 404 Not Found:** No se encontró ninguna plantilla de arranque con el nombre especificado.
- **Código 500 Internal Server Error:** Ocurrió un error al eliminar la plantilla de arranque.