ogDocumentation/i18n-docu/docs/es/developer/ogboot.md

26 KiB

Sistema de Arranque (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.

Instalación

Requisitos Previos

  • Sistema Operativo: Ubuntu 24.04
  • Python 3: La instalación ha sido probada con la versión Python 3.12.3.
python3 --version
Python 3.12.3

Instalación de Python 3

Ejecuta el siguiente comando para instalar Python 3 y pip:

apt-get install -y python3 python3-pip

Configuración Inicial

El archivo de configuración ya viene incluido en el repositorio. Solo necesitas modificarlo con los parámetros adecuados:

{
    "ogCore_ServerIP": "172.17.8.82",
    "ogBoot_ServerIP": "172.17.8.37",
    "ogBoot_Dir": "/opt/opengnsys/ogboot",
    "ogBootSambaUser": "opengnsys",
    "ogBootSambaPass": "og"
}

Donde:

Parámetro Descripción
ogCore_ServerIP IP del servidor ogcore
ogBoot_ServerIP IP del servidor ogboot
ogBoot_Dir Directorio de instalación de ogboot
ogBootSambaUser Usuario de Samba
ogBootSambaPass Contraseña de Samba

Instalación

  1. Asegúrate de que Python 3 esté instalado
  2. Modifica el archivo de configuración existente con los parámetros necesarios

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.

A continuación se detallan los endpoints disponibles, sus parámetros de entrada y las acciones que llevan a cabo.


Estado del Servidor

Obtener Estado de ogboot

Devuelve el uso de disco, el cliente ogLive predeterminado, la lista de ogLives instalados y el estado de los servicios.

URL: /ogboot/v1/status
Método: GET

Ejemplo de Solicitud

curl -X GET http://example.com/ogboot/v1/status

Respuestas

Éxito (200 OK)
{
    "success": "Status retrieved successfully",
    "message": {
        "disk_usage": {
            "total": "22591996",
            "used": "11995812",
            "available": "9542092",
            "percentage": "56%"
        },
        "default_oglive": "ogLive-6.8.0-i386-20241014",
        "installed_oglives": [
            {
                "id": "dcca1bf9762189e147cc4cde926392b1",
                "distribution": "noble",
                "kernel": "6.8.0-31-generic-amd64-r20240716",
                "architecture": "i386",
                "revision": "20241014",
                "directory": "/opt/ogboot/tftpboot//ogLive-6.8.0-i386-20241014"
            },
            {
                "id": "ad8222511753d4013be21602899d642e",
                "distribution": "noble",
                "kernel": "6.8.0-31-generic-amd64-r20240716",
                "architecture": "i386",
                "revision": "20241017",
                "directory": "/opt/ogboot/tftpboot//ogLive-6.8.0-i386-20241017"
            }
        ],
        "services_status": {
            "tftpboot": "active",
            "nginx": "active"
        }
    }
}
Error (404 Not Found)
{
    "error": "NOT_FOUND",
    "message": "No default or installed ogLives found."
}
Error (500 Internal Server Error)
{
    "error": "FAILED_TO_RETRIEVE_DISK_USAGE",
    "message": "Error to retrieve disk usage"
}

o

{
    "error": "FAILED_TO_RETRIEVE_OGLIVE_CONFIGURATION",
    "message": "Error to retrieve ogLive configuration"
}

o

{
    "error": "FAILED_TO_RETRIEVE_SERVICES_STATUS",
    "message": "Error to retrieve services status"
}

Gestión de ogLives

Obtener Menú de Descargas de ogLive

Devuelve la lista de ISOs de ogLive disponibles para descargar.

URL: /ogboot/v1/oglives/isos
Método: GET

Ejemplo de Solicitud

curl -X GET http://example.com/ogboot/v1/oglives/isos

Respuestas

Éxito (200 OK)
{
    "success": "ISOs retrieved successfully",
    "message": [
        {
          "id": "1",
          "filename": "ogLive-noble-6.8.0-31-generic-amd64-r20240716-20241014.iso",
          "url": "https://ognproject.evlt.uma.es/oglive//ogLive-noble-6.8.0-31-generic-amd64-r20240716-20241014.iso",
          "installed": true,
          "compatible": false
        },
        {
          "id": "2",
          "filename": "ogLive-noble-6.8.0-31-generic-amd64-r20240716-20241017.iso",
          "url": "https://ognproject.evlt.uma.es/oglive//ogLive-noble-6.8.0-31-generic-amd64-r20240716-20241017.iso",
          "installed": true,
          "compatible": false
        }
    ]
}
Error (500 Internal Server Error)
{
    "error": "FAILED_TO_RETRIEVE_ISOS",
    "message": "Error to retrieve ISO downloads"
}

Obtener Lista de Todos los Clientes ogLive Instalados

Devuelve la lista de clientes ogLive instalados, incluyendo el cliente ogLive predeterminado.

URL: /ogboot/v1/oglives
Método: GET

Ejemplo de Solicitud

curl -X GET \
  'http://172.17.8.37/ogboot/v1/oglives' \
  -H 'accept: application/json'

Respuestas

Éxito (200 OK)
{
    "success": "ogLive clients retrieved successfully",
    "message": {
        "default_oglive": "ogLive-6.8.0-i386-20241014",
        "installed_ogLives": [
            {
                "id": "dcca1bf9762189e147cc4cde926392b1",
                "distribution": "noble",
                "kernel": "6.8.0-31-generic-amd64-r20240716",
                "architecture": "i386",
                "revision": "20241014",
                "directory": "/opt/ogboot/tftpboot//ogLive-6.8.0-i386-20241014"
            },
            {
                "id": "ad8222511753d4013be21602899d642e",
                "distribution": "noble",
                "kernel": "6.8.0-31-generic-amd64-r20240716",
                "architecture": "i386",
                "revision": "20241017",
                "directory": "/opt/ogboot/tftpboot//ogLive-6.8.0-i386-20241017"
            }
        ]
    }
}
Error (404 Not Found)
{
    "error": "NOT_FOUND",
    "message": "No ogLive clients found."
}
Error (500 Internal Server Error)
{
    "error": "SERVER_ERROR",
    "message": "Failed to retrieve ogLive clients due to server error."
}

o

{
    "error": "UNKNOWN_ERROR",
    "message": "An unknown error occurred."
}

Obtener Información de un Cliente ogLive Instalado

Devuelve la información de un cliente ogLive instalado identificado por su checksum.

URL: /ogboot/v1/oglives/{checksum}
Método: GET

Parámetros de Ruta

Parámetro Tipo Descripción Ejemplo
checksum string Checksum del cliente ogLive instalado 9e49a085ba74f97a81bdf9b3d0785094

Ejemplo de Solicitud

curl -X GET \
  'http://172.17.8.37/ogboot/v1/oglives/9e49a085ba74f97a81bdf9b3d0785094' \
  -H 'accept: application/json'

Respuestas

Éxito (200 OK)
{
    "success": "ogLive client retrieved successfully",
    "message": {
        "id": "9e49a085ba74f97a81bdf9b3d0785094",
        "distribution": "noble",
        "kernel": "6.8.0-31-generic-amd64-r20240716",
        "architecture": "i386",
        "revision": "20241014",
        "directory": "/opt/ogboot/tftpboot//ogLive-6.8.0-i386-20241014"
    }
}
Error (404 Not Found)
{
    "error": "NOT_FOUND",
    "message": "ogLive client with checksum 9e49a085ba74f97a81bdf9b3d0785094 not found."
}
Error (500 Internal Server Error)
{
    "error": "SERVER_ERROR",
    "message": "Failed to retrieve ogLive client."
}

Obtener Información del Cliente ogLive por Defecto

Devuelve la información del cliente ogLive configurado como predeterminado.

URL: /ogboot/v1/oglives/default
Método: GET

Ejemplo de Solicitud

curl -X GET \
  'http://172.17.8.37/ogboot/v1/oglives/default' \
  -H 'accept: application/json'

Respuestas

Éxito (200 OK)
{
    "success": "se ha obtenido el oglive por defecto",
    "message": {
        "id": "default_oglive_id",
        "distribution": "noble",
        "kernel": "6.8.0-31-generic-amd64-r20240716",
        "architecture": "i386",
        "revision": "20241014",
        "directory": "/opt/ogboot/tftpboot//ogLive-6.8.0-i386-20241014"
    }
}
Error (500 Internal Server Error)
{
    "error": "SERVER_ERROR",
    "message": "Failed to retrieve default ogLive."
}

Establecer Cliente ogLive por Defecto

Permite establecer un cliente ogLive como predeterminado usando su checksum.

URL: /ogboot/v1/oglives/default
Método: PUT

Cuerpo de la Solicitud

{
    "checksum": "9e49a085ba74f97a81bdf9b3d0785094"
}
Parámetro Tipo Descripción Requerido
checksum string Checksum del cliente ogLive a establecer como predeterminado

Ejemplo de Solicitud

curl -X PUT \
  'http://172.17.8.37/ogboot/v1/oglives/default' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
        "checksum": "9e49a085ba74f97a81bdf9b3d0785094"
      }'

Respuestas

Éxito (200 OK)
{
    "success": "ogLive client set as default successfully",
    "message": {
        "id": "9e49a085ba74f97a81bdf9b3d0785094",
        "distribution": "noble",
        "kernel": "6.8.0-31-generic-amd64-r20240716",
        "architecture": "i386",
        "revision": "20241014",
        "directory": "/opt/ogboot/tftpboot//ogLive-6.8.0-i386-20241014"
    }
}
Error (400 Bad Request)
{
    "error": "INVALID_INPUT",
    "message": "Invalid input data: checksum is required."
}
Error (500 Internal Server Error)
{
    "error": "SERVER_ERROR",
    "message": "Failed to set ogLive as default."
}

Iniciar Instalación de un Cliente ogLive

Inicia el proceso de instalación de un cliente ogLive a partir de una URL de descarga proporcionada. Este endpoint es asincrónico y, tras la instalación, envía una notificación a la URL del webhook configurada en ogCore.

URL: /ogboot/v1/oglives/install
Método: POST

Cuerpo de la Solicitud

{
    "url": "https://ognproject.evlt.uma.es/trac/downloads/ogLive-focal-5.11.0-22-generic-amd64-r20210413.992ebb9.iso",
    "id": "12345"
}
Parámetro Tipo Descripción Requerido
url string URL del archivo ISO de ogLive a descargar e instalar
id string ID único de transacción para rastrear el proceso de instalación

Ejemplo de Solicitud

curl -X POST \
  'http://172.17.8.37/ogboot/v1/oglives/install' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
        "url": "https://ognproject.evlt.uma.es/trac/downloads/ogLive-focal-5.11.0-22-generic-amd64-r20210413.992ebb9.iso",
        "id": "12345"
      }'

Respuestas

Éxito (202 Accepted)
{
    "success": "ogLive client installation started",
    "transaction_id": "12345"
}
Error (400 Bad Request)
{
    "error": "Invalid input data",
    "details": "URL and transaction ID are required."
}
Error (500 Internal Server Error)
{
    "error": "Failed to initiate ogLive installation",
    "details": "Detalles del error específico"
}

!!! note "Proceso asíncrono" Este endpoint ejecuta la instalación en segundo plano y notifica al ogCore a través de un webhook en la URL configurada al finalizar el proceso, enviando el estado, el código de respuesta (200 si es exitoso) y un mensaje.

Desinstalar un Cliente ogLive

Permite desinstalar un cliente ogLive identificado por su checksum.

URL: /ogboot/v1/oglives/{checksum}
Método: DELETE

Parámetros de Ruta

Parámetro Tipo Descripción Ejemplo
checksum string Checksum del cliente ogLive a desinstalar 9e49a085ba74f97a81bdf9b3d0785094

Ejemplo de Solicitud

curl -X DELETE \
  'http://172.17.8.37/ogboot/v1/oglives/9e49a085ba74f97a81bdf9b3d0785094' \
  -H 'accept: application/json'

Respuestas

Éxito (200 OK)
{
    "message": "ogLive client uninstalled successfully",
    "details": "Detalles adicionales de la desinstalación."
}
Error (404 Not Found)
{
    "error": "NOT_FOUND",
    "message": "ogLive client not found."
}
Error (403 Forbidden)
{
    "error": "FORBIDDEN",
    "message": "Cannot uninstall the default ogLive client."
}
Error (500 Internal Server Error)
{
    "error": "SERVER_ERROR",
    "message": "Failed to uninstall ogLive client."
}

o

{
    "error": "UNKNOWN_ERROR",
    "message": "An unknown error occurred."
}

Gestión de Archivos PXE

Obtener todos los ficheros de arranque

Devuelve la lista de archivos de arranque PXE disponibles.

URL: /ogboot/v1/pxes
Método: GET

Ejemplo de Solicitud

curl -X GET http://example.com/ogboot/v1/pxes

Respuestas

Éxito (200 OK)
{
    "success": "Boot files retrieved successfully",
    "message": [
        "01-00-50-56-aa-bb-cc",
        "01-00-50-56-dd-ee-ff"
    ]
}
Error (404 Not Found)
{
    "error": "NOT_FOUND",
    "message": "No boot files found."
}
Error (500 Internal Server Error)
{
    "error": "SERVER_ERROR",
    "message": "Failed to retrieve boot files: directory not found."
}

Obtener fichero de arranque

Devuelve el archivo de arranque para una dirección MAC específica, incluyendo los parámetros de configuración.

URL: /ogboot/v1/pxes/{mac}
Método: GET

Parámetros de Ruta

Parámetro Tipo Descripción Ejemplo
mac string Dirección MAC para la cual se recuperará el archivo de arranque 00:50:56:22:11:12

Ejemplo de Solicitud

curl -X GET \
  'http://172.17.8.37/ogboot/v1/pxes/00:50:56:22:11:12' \
  -H 'accept: application/json'

Respuestas

Éxito (200 OK) - Caso 1: Archivo de arranque con parámetros
{
    "success": "Boot file retrieved successfully",
    "message": {
        "template_name": "pxe",
        "mac": "00:50:56:22:11:12",
        "lang": "es_ES.UTF-8",
        "ip": "192.168.2.11",
        "server_ip": "192.168.2.1",
        "router": "192.168.2.1",
        "netmask": "255.255.255.0",
        "computer_name": "pc11",
        "netiface": "eth0",
        "group": "Aula_virtual",
        "ogrepo": "192.168.2.1",
        "oglive": "192.168.2.1",
        "oglog": "192.168.2.1",
        "ogshare": "192.168.2.1",
        "oglivedir": "ogLive",
        "ogprof": "false",
        "hardprofile": "",
        "ogntp": "",
        "ogdns": "",
        "ogproxy": "",
        "ogunit": "",
        "resolution": "788"
    }
}
Éxito (200 OK) - Caso 2: Archivo de arranque por disco (sin parámetros)
{
    "success": "Boot file retrieved successfully",
    "message": {
        "template_name": "disk_boot",
        "mac": "00:50:56:22:11:12",
        "message": "Boot file without parameters, possibly a disk boot template."
    }
}
Error (404 Not Found)
{
    "error": "NOT_FOUND",
    "message": "No boot file found for the specified MAC address."
}
Error (500 Internal Server Error)
{
    "error": "SERVER_ERROR",
    "message": "An error occurred while retrieving the boot file."
}

Crear archivo PXE

Este endpoint permite crear un archivo de arranque PXE con la MAC y la plantilla especificadas, con parámetros adicionales como IP, directorio ogLive, servidor, y más.

URL: /ogboot/v1/pxes
Método: POST

Cuerpo de la Solicitud

{
    "mac": "00:50:56:22:11:12",
    "template_name": "mi_plantilla.ipxe",
    "server_ip": "192.168.2.1",
    "oglivedir": "ogLive",
    "lang": "es_ES.UTF-8",
    "ip": "192.168.2.11",
    "router": "192.168.2.1",
    "netmask": "255.255.255.0",
    "computer_name": "pc11",
    "netiface": "eth0",
    "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",
    "hardprofile": "",
    "ogntp": "192.168.2.1",
    "ogdns": "192.168.2.1",
    "ogproxy": "192.168.2.1",
    "ogunit": "unit",
    "resolution": "788"
}
Parámetro Tipo Descripción Requerido
mac string Dirección MAC para el archivo de arranque
template_name string Nombre de la plantilla a utilizar
server_ip string Dirección IP del servidor No
oglivedir string Directorio ogLive a utilizar en el arranque No
lang string Idioma de la configuración regional No
ip string Dirección IP No
router string Dirección IP gateway No
netmask string Máscara de red No
computer_name string Nombre del equipo No
netiface string Interfaz de red No
group string Grupo de la máquina No
ogrepo string IP del servidor de ogrepositorio No
oglive string IP del servidor tftpboot No
oglog string IP del servidor de logs No
ogshare string IP del servidor ogclient No
ogprof string Indica si es profesor No
hardprofile string Perfil de hardware No
ogntp string IP del servidor NTP No
ogdns string IP del servidor DNS No
ogproxy string IP del servidor proxy No
ogunit string Directorio de unidad No
resolution string Resolución de pantalla No

Ejemplo de Solicitud

curl -X POST \
  'http://172.17.8.37/ogboot/v1/pxes' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
        "mac": "00:50:56:22:11:12",
        "template_name": "mi_plantilla.ipxe",
        "server_ip": "192.168.2.1",
        "oglivedir": "ogLive"
      }'

Respuestas

Éxito (200 OK)
{
    "success": "PXE file created successfully",
    "message": "#!ipxe\n#Template: mi_plantilla.ipxe\nset kernelargs ro boot=oginit quiet splash irqpoll ..."
}
Error (400 Bad Request)
{
    "error": "INVALID_INPUT",
    "message": "Missing required fields: mac and template_name"
}
Error (404 Not Found)
{
    "error": "TEMPLATE_NOT_FOUND",
    "message": "No se encontró la plantilla especificada"
}
Error (500 Internal Server Error)
{
    "error": "FAILED_TO_CREATE_PXE_FILE",
    "message": "Error al crear el archivo PXE"
}

Eliminar archivo PXE

Este endpoint permite eliminar un archivo de arranque PXE específico usando la dirección MAC del cliente.

URL: /ogboot/v1/pxes/{mac}
Método: DELETE

Parámetros de Ruta

Parámetro Tipo Descripción Ejemplo
mac string Dirección MAC del cliente cuyo archivo de arranque se va a eliminar 00:11:22:33:44:55

Ejemplo de Solicitud

curl -X DELETE \
  'http://172.17.8.37/ogboot/v1/pxes/00:11:22:33:44:55' \
  -H 'accept: application/json'

Respuestas

Éxito (200 OK)
{
    "success": "Boot file deleted successfully",
    "message": "The boot file for MAC 00:11:22:33:44:55 has been deleted."
}
Error (404 Not Found)
{
    "error": "NOT_FOUND",
    "message": "No boot file found for the specified MAC address."
}
Error (500 Internal Server Error)
{
    "error": "SERVER_ERROR",
    "message": "Failed to delete the boot file due to server error."
}

Gestión de Plantillas PXE

Obtener todas las plantillas PXE

Este endpoint devuelve una lista de todas las plantillas de arranque PXE disponibles en el sistema.

URL: /ogboot/v1/pxe-templates
Método: GET

Ejemplo de Solicitud

curl -X GET \
  'http://172.17.8.37/ogboot/v1/pxe-templates' \
  -H 'accept: application/json'

Respuestas

Éxito (200 OK)
{
    "success": "Lista de plantillas obtenida con éxito",
    "message": [
        "mi_plantilla.ipxe",
        "otra_plantilla.ipxe"
    ]
}
Error (500 Internal Server Error)
{
    "error": "SERVER_ERROR",
    "message": "Directorio de plantillas no encontrado"
}

Obtener contenido de una plantilla PXE

Este endpoint obtiene el contenido de una plantilla de arranque PXE específica por su nombre.

URL: /ogboot/v1/pxe-templates/{templateName}
Método: GET

Parámetros de Ruta

Parámetro Tipo Descripción Ejemplo
templateName string Nombre de la plantilla PXE a consultar mi_plantilla.ipxe

Ejemplo de Solicitud

curl -X GET \
  'http://172.17.8.37/ogboot/v1/pxe-templates/mi_plantilla.ipxe' \
  -H 'accept: application/json'

Respuestas

Éxito (200 OK)
{
    "success": "Plantilla obtenida con éxito",
    "template_name": "mi_plantilla.ipxe",
    "template_content": "#!ipxe\nset timeout 0\nset timeout-style hidden\n\nset ISODIR ogLive\nset default 0\nset kernelargs INFOHOST\nkernel tftp://SERVERIP/ogLive/ogvmlinuz ${kernelargs}\ninitrd tftp://SERVERIP/ogLive/oginitrd.img\nboot"
}
Error (404 Not Found)
{
    "error": "TEMPLATE_NOT_FOUND",
    "message": "No se encontró la plantilla especificada"
}
Error (500 Internal Server Error)
{
    "error": "FAILED_TO_READ_TEMPLATE",
    "message": "Error al leer la plantilla"
}

Crear Plantilla

Este endpoint crea una nueva plantilla de arranque PXE en el servidor utilizando el nombre y el contenido proporcionado.

URL: /ogboot/v1/pxe-templates
Método: POST

Cuerpo de la Solicitud

{
    "name_template": "mi_plantilla.ipxe",
    "content_template": "#!ipxe\nset timeout 0\nset timeout-style hidden\nset ISODIR __OGLIVE__\nset default 0\nset kernelargs __INFOHOST__\n:try_iso\nkernel http://__SERVERIP__/tftpboot/${ISODIR}/ogvmlinuz ${kernelargs} || goto fallback\ninitrd http://__SERVERIP__/tftpboot/${ISODIR}/oginitrd.img\nboot\n\n:fallback\nset ISODIR ogLive\nkernel http://__SERVERIP__/tftpboot/${ISODIR}/ogvmlinuz ${kernelargs}\ninitrd http://__SERVERIP__/tftpboot/${ISODIR}/oginitrd.img\nboot\n"
}
Parámetro Tipo Descripción Requerido
name_template string Nombre de la nueva plantilla
content_template string Contenido de la plantilla, que debe incluir el script de arranque

Ejemplo de Solicitud

curl -X POST \
  'http://172.17.8.37/ogboot/v1/pxe-templates' \
  -H 'Content-Type: application/json' \
  -d '{
        "name_template": "mi_plantilla.ipxe",
        "content_template": "#!ipxe\nset timeout 0\nset timeout-style hidden\nset ISODIR __OGLIVE__\nset default 0\nset kernelargs __INFOHOST__\n:try_iso\nkernel http://__SERVERIP__/tftpboot/${ISODIR}/ogvmlinuz ${kernelargs} || goto fallback\ninitrd http://__SERVERIP__/tftpboot/${ISODIR}/oginitrd.img\nboot\n\n:fallback\nset ISODIR ogLive\nkernel http://__SERVERIP__/tftpboot/${ISODIR}/ogvmlinuz ${kernelargs}\ninitrd http://__SERVERIP__/tftpboot/${ISODIR}/oginitrd.img\nboot\n"
      }'

Respuestas

Éxito (200 OK)
{
    "success": "Plantilla creada con éxito",
    "message": {
        "template_name": "mi_plantilla.ipxe",
        "template_content": "#!ipxe\nset timeout 0\nset timeout-style hidden\nset ISODIR __OGLIVE__\nset default 0\nset kernelargs __INFOHOST__\n:try_iso\nkernel http://__SERVERIP__/tftpboot/${ISODIR}/ogvmlinuz ${kernelargs} || goto fallback\ninitrd http://__SERVERIP__/tftpboot/${ISODIR}/oginitrd.img\nboot\n\n:fallback\nset ISODIR ogLive\nkernel http://__SERVERIP__/tftpboot/${ISODIR}/ogvmlinuz ${kernelargs}\ninitrd http://__SERVERIP__/tftpboot/${ISODIR}/oginitrd.img\nboot\n"
    }
}
Error (400 Bad Request)
{
    "error": "INVALID_INPUT",
    "message": "Faltan datos requeridos: name_template y content_template son necesarios."
}
Error (403 Forbidden)
{
    "error": "UNAUTHORIZED_ACCESS",
    "message": "Intento de acceso no autorizado fuera del directorio de plantillas."
}
Error (500 Internal Server Error)
{
    "error": "FILE_CREATION_ERROR",
    "message": "Ocurrió un error al crear la plantilla de arranque."
}

Eliminar Plantilla

Este endpoint elimina una plantilla de arranque PXE en el servidor utilizando el nombre proporcionado.

URL: /ogboot/v1/pxe-templates/{name}
Método: DELETE

Parámetros de Ruta

Parámetro Tipo Descripción Ejemplo
name string Nombre de la plantilla de arranque que se desea eliminar mi_plantilla.ipxe

Ejemplo de Solicitud

curl -X DELETE \
  'http://172.17.8.37/ogboot/v1/pxe-templates/mi_plantilla.ipxe' \
  -H 'accept: application/json'

Respuestas

Éxito (200 OK)
{
    "success": "Plantilla eliminada",
    "message": "La plantilla mi_plantilla se ha borrado correctamente"
}
Error (404 Not Found)
{
    "error": "TEMPLATE_NOT_FOUND",
    "message": "No se encontró la plantilla especificada"
}
Error (500 Internal Server Error)
{
    "error": "FAILED_TO_DELETE_TEMPLATE",
    "message": "Ocurrió un error al intentar eliminar la plantilla"
}

Glosario de términos

Término Descripción
PXE Preboot Execution Environment - Entorno de arranque que permite iniciar un ordenador a través de la red
ogLive Cliente de arranque remoto utilizado por OpenGnsys
ogBoot Componente de OpenGnsys que facilita la funcionalidad de arranque remoto
ogCore Servidor principal de OpenGnsys que gestiona la operación del sistema
Checksum Valor hash que identifica de manera única a un cliente ogLive instalado
ISO Archivo de imagen que contiene un cliente ogLive
TFTP Trivial File Transfer Protocol - Protocolo utilizado para transferir los archivos durante el arranque remoto