ogboot/README.md

291 lines
9.6 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
### Configurar Modo de Cliente
Configura el modo de arranque PXE para un cliente específico.
**URL:** `ogboot/clients/setclientmode`
**Método HTTP:** POST
**Parámetros de entrada:**
- `template`: Nombre de la plantilla PXE.
- `scope`: Nombre del cliente (nombre de ordenador o nombre de aula).
- `mode`: Modo de configuración ("TEMP" para temporal o "PERM" para permanente).
**Ejemplo de Solicitud:**
```bash
curl -X POST -H "Authorization: $API_KEY" -d '{"template": "plantilla", "scope": "nombre_cliente", "mode": "PERM"}' http://example.com/ogboot/clients/setclientmode
```
**Respuestas:**
- **Código 200 OK:** La configuración de modo de cliente se realizó exitosamente.
- **Código 400 Bad Request:** La solicitud es incorrecta. La configuración de modo de cliente no se ha realizado correctamente.
- **Código 401 Unauthorized:** La solicitud no está autorizada. Se requiere un token de autenticación válido.
### 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:** `/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:** `/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:** `/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.
### Buscar Índice o Directorio del Cliente ogLive Correspondiente
Muestra el ogLive correspondiente al proporcionar su índice o directorio
**URL:** `/clients/oglives/{Index}`
**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/openGnsys/clients/oglives/0
ogLive-5.11.0-r20210413
```
**Respuestas:**
- **Código 200 OK:** La búsqueda del índice o directorio del cliente ogLive correspondiente se realizó exitosamente.
- **Contenido:** Índice numérico o directorio del cliente ogLive correspondiente en formato JSON.
### Mostrar Menú de Descarga de Imagen de ogLive
Muestra un menú para descargar una imagen de ogLive desde el sitio web de OpenGnsys.
**URL:** `/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:** `/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.
### Instalar Nuevo Cliente ogLive desde Imagen Descargada
Instala un nuevo cliente ogLive utilizando una imagen de ogLive previamente descargada.
**URL:** `/images/install/{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/install/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:** `/images/uninstall/{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/uninstall/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.