341 lines
12 KiB
Markdown
341 lines
12 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) - `/ogboot/config`
|
|
2. [Mostrar información de todos los clientes ogLive instalados](#mostrar-información-de-todos-los-clientes-oglive-instalados) - `/ogboot/clients/oglives`
|
|
3. [Mostrar información del cliente ogLive predeterminado](#mostrar-información-del-cliente-oglive-predeterminado) - `/ogboot/clients/oglives/show-default`
|
|
4. [Mostrar información de un cliente ogLive específico](#mostrar-información-de-un-cliente-oglive-específico) - `/ogboot/clients/oglives/show/{Index|Dir}`
|
|
5. [Obtener todos los archivos de arranque](#obtener-todos-los-archivos-de-arranque) - `/ogboot/clients/pxes`
|
|
6. [Obtener archivo de arranque](#obtener-archivo-de-arranque) - `/ogboot/clients/pxes/{mac}`
|
|
7. [Crear archivo de arranque](#crear-archivo-de-arranque) - `/ogboot/clients/pxes`
|
|
8. [Eliminar archivo de arranque](#eliminar-archivo-de-arranque) - `/ogboot/clients/pxes`
|
|
9. [Actualizar repositorio de arranque](#actualizar-repositorio-de-arranque) - `/ogboot/clients/pxe/update-repo`
|
|
10. [Mostrar menú de descarga de imagen de ogLive](#mostrar-menú-de-descarga-de-imagen-de-oglive) - `/ogboot/images/download`
|
|
11. [Descargar imagen de ogLive específica](#descargar-imagen-de-oglive-específica) - `/images/download/{iso}`
|
|
12. [Instalar nuevo cliente ogLive desde imagen descargada](#instalar-nuevo-cliente-oglive-desde-imagen-descargada) - `/ogboot/images/upload/{iso}`
|
|
13. [Elimina cliente ogLive](#desinstalar-cliente-oglive-y-eliminar-imagen) - `/ogboot/images/remove/{iso}`
|
|
|
|
|
|
|
|
### Obtener Configuración de ogboot
|
|
|
|
Devuelve la configuración actual del ogboot.
|
|
|
|
**URL:** `/ogboot/config`
|
|
**Método HTTP:** GET
|
|
|
|
**Ejemplo de Solicitud:**
|
|
|
|
```bash
|
|
curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/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"
|
|
}
|
|
```
|
|
- **Código 400 Bad Request:** La solicitud es incorrecta. La configuración del 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/clients/oglives/`
|
|
**Método HTTP:** GET
|
|
|
|
**Ejemplo de Solicitud:**
|
|
|
|
```bash
|
|
curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/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"
|
|
}
|
|
]
|
|
|
|
```
|
|
|
|
**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 del Cliente ogLive Predeterminado
|
|
|
|
Muestra información en formato JSON sobre el cliente ogLive marcado como predeterminado.
|
|
|
|
**URL:** `/ogboot/clients/oglives/show-default`
|
|
**Método HTTP:** GET
|
|
|
|
**Ejemplo de Solicitud:**
|
|
|
|
```bash
|
|
curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/clients/oglives/show-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.
|
|
|
|
### Mostrar Información de un Cliente ogLive Específico
|
|
|
|
Muestra información en formato JSON sobre un cliente ogLive instalado específico, identificado por su índice o directorio.
|
|
|
|
**URL:** `/ogboot/clients/oglives/show/{Index|Dir}`
|
|
**Método HTTP:** GET
|
|
|
|
**Parámetros de entrada:**
|
|
- `Index|Dir`: Índice numérico o directorio del cliente ogLive.
|
|
|
|
**Ejemplo de Solicitud:**
|
|
|
|
```bash
|
|
curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/clients/oglives/show/0
|
|
|
|
{
|
|
"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"
|
|
}
|
|
|
|
```
|
|
|
|
**Respuestas:**
|
|
- **Código 200 OK:** La información sobre el cliente ogLive específico se obtuvo exitosamente.
|
|
- **Contenido:** Información sobre el cliente ogLive específico en formato JSON.
|
|
|
|
|
|
|
|
### Obtener Todos los Archivos de Arranque
|
|
|
|
Devuelve todos los archivos de arranque PXE y sus direcciones MAC asociadas.
|
|
|
|
**URL:** `/ogboot/clients/pxes`
|
|
**Método HTTP:** GET
|
|
|
|
**Respuestas:**
|
|
- **Código 200 OK:** La lista de archivos de arranque PXE se obtuvo exitosamente.
|
|
- **Contenido:** Lista de archivos de arranque PXE con sus direcciones MAC asociadas.
|
|
- **Código 400 Bad Request:** La solicitud es incorrecta. La lista de archivos de arranque PXE no se obtuvo correctamente.
|
|
|
|
|
|
|
|
### Obtener Archivo de Arranque
|
|
|
|
Devuelve el archivo de arranque PXE del ordenador con la dirección MAC correspondiente.
|
|
|
|
**URL:** `/ogboot/clients/pxes/{mac}`
|
|
**Método HTTP:** GET
|
|
|
|
**Parámetros de ruta:**
|
|
- `mac`: Dirección MAC del ordenador.
|
|
|
|
**Respuestas:**
|
|
- **Código 200 OK:** El archivo de arranque PXE se obtuvo exitosamente.
|
|
- **Contenido:** Archivo de arranque PXE en formato deseado.
|
|
- **Código 400 Bad Request:** La solicitud es incorrecta. El archivo de arranque PXE no se obtuvo correctamente.
|
|
|
|
|
|
|
|
### Crear Archivo de Arranque
|
|
|
|
Crea un archivo de arranque PXE para el ordenador basado en la plantilla indicada.
|
|
|
|
**URL:** `/ogboot/clients/pxes`
|
|
**Método HTTP:** POST
|
|
|
|
**Parámetros de entrada:**
|
|
- `bootopt`: Plantilla de arranque PXE.
|
|
- `hostname`: Nombre del ordenador.
|
|
- `lang`: Idioma de arranque.
|
|
|
|
**Respuestas:**
|
|
- **Código 200 OK:** El archivo de arranque PXE se creó exitosamente.
|
|
- **Código 400 Bad Request:** La solicitud es incorrecta. El archivo de arranque PXE no se creó correctamente.
|
|
|
|
### Eliminar Archivo de Arranque
|
|
|
|
Borra el archivo de arranque PXE del ordenador con la dirección MAC correspondiente.
|
|
|
|
**URL:** `/ogboot/clients/pxes`
|
|
**Método HTTP:** DELETE
|
|
|
|
**Parámetros de entrada:**
|
|
- `mac`: Dirección MAC del ordenador.
|
|
|
|
**Respuestas:**
|
|
- **Código 200 OK:** El archivo de arranque PXE se eliminó exitosamente.
|
|
- **Código 400 Bad Request:** La solicitud es incorrecta. El archivo de arranque PXE no se eliminó correctamente.
|
|
|
|
|
|
### Actualizar Repositorio de Arranque
|
|
|
|
Actualiza la IP del repositorio en los archivos de arranque PXE de todos los equipos asociados.
|
|
|
|
**URL:** `/ogboot/clients/pxe/update-repo`
|
|
**Método HTTP:** POST
|
|
|
|
**Parámetros de entrada:**
|
|
- `repoid`: Campo identificador del repositorio.
|
|
|
|
**Respuestas:**
|
|
- **Código 200 OK:** La IP del repositorio se actualizó en los archivos de arranque PXE exitosamente.
|
|
- **Código 400 Bad Request:** La solicitud es incorrecta. La IP del repositorio no se actualizó correctamente.
|
|
|
|
|
|
### Mostrar Menú de Descarga de Imagen de ogLive
|
|
|
|
Muestra un menú para descargar una imagen de ogLive desde el sitio web de OpenGnsys.
|
|
|
|
**URL:** `/ogboot/images/download`
|
|
**Método HTTP:** GET
|
|
|
|
**Ejemplo de Solicitud:**
|
|
|
|
```bash
|
|
curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/images/download
|
|
|
|
Available downloads (+ = installed, * = full compatibility):
|
|
1) (*) (+) ogLive-focal-5.13.0-27-beta-amd64-r20210706.5b4bf5f.iso
|
|
2) (*) (+) ogLive-focal-5.11.0-22-generic-amd64-r20210413.992ebb9.iso
|
|
3) (*) ogLive-focal-5.8.0-50-generic-amd64-r20210413.992ebb9.iso
|
|
4) (*) ogLive-bionic-5.4.0-40-generic-amd64-r20200629.85eceaf.iso
|
|
5) (*) ogLive-bionic-5.0.0-27-generic-amd64-r20190830.7208cc9.iso
|
|
6) (*) ogLive-bionic-5.0.0-15-generic-amd64-r20190605.527cd97.iso
|
|
7) ogLive-xenial-4.8.0-39-generic-amd64-r5652.iso
|
|
8) ogLive-xenial-4.13.0-17-generic-amd64-r5520.iso
|
|
9) ogLive-precise-3.2.0-23-generic-r5159.iso
|
|
10) ogLive-xenial-4.8.0-39-generic-amd64-r5331.iso
|
|
11) ogLive-xenial-4.8.0-39-generic-amd64-r5225.iso
|
|
12) ogLive-precise-3.2.0-23-generic-r4820.iso
|
|
13) ogLive-xenial-4.4.0-34-generic-r4999.iso
|
|
14) ogLive-wily-4.2.0-35-generic-r4919.iso
|
|
15) ogLive-vivid-3.19.0-49-generic-r4795.iso
|
|
16) ogLive-precise-3.2.0-23-generic-r4311.iso
|
|
17) ogLive-precise-3.11.0-26-generic-r4413.iso
|
|
18) ogLive-raring-3.8.0-22-generic-r3836.iso
|
|
19) ogLive-quantal-3.7.6-030706-generic-r3619.iso
|
|
20) ogLive-precise-3.2.0-23-generic-r3257.iso
|
|
21) ogLive-precise-3.2.0-23-generic-pae-r3017.iso
|
|
22) ogLive-oneiric-3.0.0-14-generic-r2439.iso
|
|
23) ogLive-natty-2.6.38-8-generic-pae-r2303.iso
|
|
24) ogLive-natty-2.6.38-8-generic-pae-r2268.iso
|
|
#?
|
|
|
|
```
|
|
|
|
**Respuestas:**
|
|
- **Código 200 OK:** El menú de descarga de la imagen de ogLive se muestra exitosamente.
|
|
- **Código 400 Bad Request:** La solicitud es incorrecta. El menú de descarga de la imagen de ogLive no se ha mostrado correctamente.
|
|
|
|
### Descargar Imagen de ogLive Específica
|
|
|
|
Descarga una imagen de ogLive específica desde el sitio web de OpenGnsys.
|
|
|
|
**URL:** `/ogboot/images/download/{iso}`
|
|
**Método HTTP:** GET
|
|
|
|
**Parámetros de entrada:**
|
|
- `iso`: Nombre de la imagen de ogLive a descargar.
|
|
|
|
**Ejemplo de Solicitud:**
|
|
|
|
```bash
|
|
curl -X GET -H "Authorization: $API_KEY" http://example.com/ogboot/images/download/ogLive-focal-5.13.0-27-beta-amd64-r20210706.5b4bf5f.iso
|
|
```
|
|
|
|
**Respuestas:**
|
|
- **Código 200 OK:** La imagen de ogLive se descargó exitosamente.
|
|
- **Código 400 Bad Request:** La solicitud es incorrecta. La imagen de ogLive no se ha descargado correctamente.
|
|
|
|
### Desplegar Nuevo Cliente ogLive desde Imagen Descargada
|
|
|
|
Despliega un nuevo cliente ogLive utilizando una imagen de ogLive previamente descargada.
|
|
|
|
**URL:** `/ogboot/images/upload/{iso}`
|
|
**Método HTTP:** POST
|
|
|
|
**Parámetros de entrada:**
|
|
- `iso`: Nombre de la imagen de ogLive a instalar.
|
|
|
|
**Ejemplo de Solicitud:**
|
|
|
|
```bash
|
|
curl -X POST -H "Authorization: $API_KEY" http://example.com/ogboot/images/upload/ogLive-focal-5.13.0-27-beta-amd64-r20210706.5b4bf5f.iso
|
|
```
|
|
|
|
**Respuestas:**
|
|
- **Código 200 OK:** El cliente ogLive se instaló exitosamente desde la imagen descargada.
|
|
- **Código 400 Bad Request:** La solicitud es incorrecta. El cliente ogLive no se ha instalado correctamente.
|
|
|
|
### Desinstalar Cliente ogLive y Eliminar Imagen
|
|
|
|
Desinstala un cliente ogLive y elimina la imagen asociada.
|
|
|
|
**URL:** `/ogboot/images/remove/{iso}`
|
|
**Método HTTP:** POST
|
|
|
|
**Parámetros de entrada:**
|
|
- `iso`: Nombre de la imagen de ogLive a desinstalar.
|
|
|
|
**Ejemplo de Solicitud:**
|
|
|
|
```bash
|
|
curl -X POST -H "Authorization: $API_KEY" http://example.com/ogboot/images/remove/ogLive-focal-5.13.0-27-beta-amd64-r20210706.5b4bf5f.iso
|
|
```
|
|
|
|
**Respuestas:**
|
|
- **Código 200 OK:** El cliente ogLive se desinstaló y la imagen asociada se eliminó exitosamente.
|
|
- **Código 400 Bad Request:** La solicitud es incorrecta. El cliente ogLive no se ha desinstalado correctamente.
|
|
|