532 lines
17 KiB
Markdown
532 lines
17 KiB
Markdown
## Ogboot
|
|
|
|
Ogboot es una implementación independiente que facilita la funcionalidad de arranque remoto (PXE) en entornos gestionados por Opengnsys. Este componente permite la carga remota de sistemas operativos y otros archivos esenciales durante el proceso de arranque de las estaciones de trabajo.
|
|
|
|
|
|
## API de Ogboot
|
|
|
|
La API de Ogboot proporciona una interfaz para facilitar el proceso de inicialización remota de sistemas operativos en entornos administrados por OpenGnsys. Ogboot permite la gestión eficiente de los archivos de arranque tanto de particiones locales como de sistemas operativos remotos.
|
|
|
|
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
|
|
|
|
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/{Index/iso}`
|
|
8. [Desinstalar cliente ogLive y eliminar imagen](#desinstalar-cliente-oglive-y-eliminar-imagen) - `DELETE /ogboot/v1/oglives/{Index/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/clients/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/clients/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`
|
|
|
|
|
|
### Obtener Configuración de ogboot
|
|
|
|
Devuelve la configuración actual del ogboot.
|
|
|
|
**URL:** `/ogboot/v1/config`
|
|
**Método HTTP:** GET
|
|
|
|
**Ejemplo de Solicitud:**
|
|
|
|
```bash
|
|
curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/config
|
|
```
|
|
|
|
**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"
|
|
}
|
|
```
|
|
|
|
- **config-file**: Ruta del archivo de configuración que usa oglivecli para guardar los oglives instalados.
|
|
|
|
- **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.
|
|
|
|
Estas definiciones proporcionan una comprensión clara de cada uno de los parámetros de contenido dentro de la configuración del ogboot.
|
|
- **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/clients/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.
|
|
|
|
|
|
### Mostrar Información de un Cliente ogLive Instalado
|
|
|
|
Muestra información en formato JSON sobre un cliente ogLive instalado específico.
|
|
|
|
**URL:** `/ogboot/v1/clients/oglives/{Index|Dir}`
|
|
**Método HTTP:** GET
|
|
|
|
**Parámetros de la URL:**
|
|
- `{Index|Dir}`: El índice o directorio del cliente ogLive instalado.
|
|
|
|
**Ejemplo de Solicitud:**
|
|
|
|
```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"
|
|
}
|
|
```
|
|
|
|
**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.
|
|
|
|
### Mostrar Información del Cliente ogLive Predeterminado
|
|
|
|
Muestra información en formato JSON sobre el cliente ogLive predeterminado.
|
|
|
|
**URL:** `/ogboot/v1/clients/oglives/default`
|
|
**Método HTTP:** GET
|
|
|
|
**Ejemplo de Solicitud:**
|
|
|
|
```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"
|
|
}
|
|
```
|
|
|
|
**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.
|
|
|
|
|
|
|
|
|
|
|
|
### Cambiar ogLive Predeterminado
|
|
|
|
Establece un nuevo cliente ogLive como predeterminado utilizando su índice.
|
|
|
|
**URL:**
|
|
**Método HTTP:** POST
|
|
|
|
**Parámetros de la URL:**
|
|
- `{Index}`: El índice del cliente ogLive que se establecerá como predeterminado.
|
|
|
|
**Ejemplo de Solicitud:**
|
|
|
|
```bash
|
|
curl -X POST -H "Authorization: $API_KEY" http://example.com/ogboot/v1/clients/oglives/default/1
|
|
```
|
|
|
|
**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.
|
|
|
|
|
|
|
|
### 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:**
|
|
|
|
```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
|
|
```
|
|
|
|
**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.
|
|
|
|
|
|
|
|
|
|
### Desinstalar Cliente ogLive
|
|
|
|
Desinstala un cliente ogLive específico y elimina su imagen asociada.
|
|
|
|
**URL:** `/ogboot/v1/oglives/{Index/iso}`
|
|
**Método HTTP:** DELETE
|
|
|
|
**Parámetros de la URL:**
|
|
- `{Index/iso}`: El índice o nombre de archivo ISO del cliente ogLive que se desinstalará y eliminará.
|
|
|
|
**Ejemplo de Solicitud:**
|
|
|
|
```bash
|
|
curl -X DELETE -H "Authorization: $API_KEY" http://example.com/ogboot/v1/oglives/1
|
|
```
|
|
|
|
**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.
|
|
|
|
|
|
### 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:**
|
|
|
|
```bash
|
|
curl -X PUT -H "Authorization: $API_KEY" http://example.com/ogboot/v1/oglives
|
|
```
|
|
|
|
**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.
|
|
|
|
|
|
|
|
### 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:**
|
|
|
|
```bash
|
|
curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/images/download
|
|
```
|
|
|
|
**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.
|
|
|
|
|
|
|
|
### 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:**
|
|
|
|
```bash
|
|
curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/pxes
|
|
```
|
|
|
|
**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.
|
|
|
|
|
|
### Obtener Archivo de Arranque
|
|
|
|
Obtiene un archivo de arranque específico utilizando la dirección MAC del cliente.
|
|
|
|
**URL:** `/ogboot/v1/clients/pxes/{mac}`
|
|
**Método HTTP:** GET
|
|
|
|
**Parámetros de la URL:**
|
|
- `{mac}`: La dirección MAC del cliente cuyo archivo de arranque se desea obtener.
|
|
|
|
**Ejemplo de Solicitud:**
|
|
|
|
```bash
|
|
curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/v1/clients/pxes/00:11:22:33:44:55
|
|
```
|
|
|
|
**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.
|
|
|
|
|
|
|
|
### 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:**
|
|
|
|
```bash
|
|
curl -X POST -H "Authorization: $API_KEY" -d '{"name": "bootfile", "config": "some_configuration"}' http://example.com/ogboot/v1/pxes
|
|
```
|
|
|
|
**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.
|
|
|
|
|
|
### Eliminar Archivo de Arranque
|
|
|
|
Elimina un archivo de arranque específico utilizando su identificador único.
|
|
|
|
**URL:** `/ogboot/v1/clients/pxes`
|
|
**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:**
|
|
|
|
```bash
|
|
curl -X DELETE -H "Authorization: $API_KEY" http://example.com/ogboot/v1/clients/pxes/00:11:22:33:44:55
|
|
```
|
|
|
|
**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.
|
|
|
|
|
|
|
|
### 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:**
|
|
|
|
```bash
|
|
curl -X PUT -H "Authorization: $API_KEY" -H "Content-Type: application/json" -d @data.json 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.
|
|
|
|
|
|
|
|
### Obtener Todas las Plantillas
|
|
|
|
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
|
|
```
|
|
|
|
**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.
|
|
|
|
|
|
|
|
### 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
|
|
```
|
|
|
|
**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.
|
|
|
|
---
|
|
|
|
### 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:**
|
|
- Datos necesarios para la creación de la plantilla de arranque, como el nombre y el contenido.
|
|
|
|
**Ejemplo de Solicitud:**
|
|
|
|
```bash
|
|
curl -X POST -H "Authorization: $API_KEY" -H "Content-Type: application/json" -d '{"name": "template1", "content": "template_content"}' http://example.com/ogboot/v1/pxe-templates
|
|
```
|
|
|
|
**Respuestas:**
|
|
- **Código 200 OK:** La plantilla 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.
|
|
|
|
|
|
### 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.
|
|
|
|
---
|
|
|
|
### 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.
|
|
|