Go to file
Luis Gerardo Romero Garcia 64ff35368a refs #310 fix mac for array declaration 2024-04-25 11:44:57 +02:00
etc Changes to lower mac adresss to the name script 2024-04-25 09:44:33 +02:00
installer refs #310 fix mac for array declaration 2024-04-25 11:44:57 +02:00
tftpboot Removes old dhcp_boot file and add tftp to template 2024-04-25 08:38:06 +02:00
README.md refs #197 #198 Removes typos from other document 2024-02-06 17:38:29 +01:00

README.md

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

Obtener Lista de Clientes

Obtiene la lista de clientes registrados en el sistema.

URL: /clients Método HTTP: GET Ejemplo de Solicitud:

curl -X GET -H "Authorization: $API_KEY" http://127.0.0.1:8888/clients

Encender Equipos Remotamente (Wake-on-LAN)

Envía comandos de encendido remoto a uno o varios equipos utilizando Wake-on-LAN.

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.

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

Gestiona las sesiones de usuario en el sistema.

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.

Ejemplo de Solicitud:

curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/session -d @session.json

Contenido de session.json:

{ "clients" : [ "192.168.2.1", "192.168.2.2" ], "disk" : "0", "partition" : "1"}

Apagar Equipos

Envía comandos de apagado a uno o varios equipos.

URL: /poweroff
Método HTTP: POST
Parámetros de entrada:

  • clients (array): Lista de direcciones IP de los clientes.

Ejemplo de Solicitud:

curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/poweroff -d @poweroff.json

Contenido de poweroff.json:

{ "clients" : [ "192.168.2.1", "192.168.2.2" ] }

Reiniciar Equipos

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.

Ejemplo de Solicitud:

curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/reboot -d @reboot.json

Contenido de reboot.json:

{ "clients" : [ "192.168.2.1", "192.168.2.2" ] }

Detener Operaciones en Curso

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.

Ejemplo de Solicitud:

curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/stop -d @stop.json

Contenido de stop.json:

{ "clients" : [ "192.168.2.1", "192.168.2.2" ] }

Reiniciar Equipos

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.

Ejemplo de Solicitud:

curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/reboot -d @reboot.json

Contenido de reboot.json:

{ "clients" : [ "192.168.2.1", "192.168.2.2" ] }

Actualizar Información de Equipos

???????

URL: /refresh
Método HTTP: POST
Parámetros de entrada:

  • clients (array): Lista de direcciones IP de los clientes.

Ejemplo de Solicitud:

curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/refresh -d @refresh.json

Contenido de refresh.json:

{ "clients" : [ "192.168.2.1", "192.168.2.2" ] }

Obtener Información de Hardware

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.

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:

{ "clients" : [ "192.168.2.1", "192.168.2.2" ] }

Obtener Información de Software

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.

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:

{ "clients" : [ "192.168.2.1", "192.168.2.2" ] }

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:

{ "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:

{ "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:

{ 
  "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" }
  ]
}

Crear Imagen Básica del Sistema

Crea una imagen básica del sistema en los equipos especificados.

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)

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:

{
  "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"
  }
}

Crear Imagen Incremental del Sistema

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)

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:

{
  "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"
  }
}

Restaurar Imagen Básica del Sistema

Restaura una imagen básica del sistema en los equipos especificados.

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)

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:

{
  "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.

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)

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:

{
  "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"
  }
}

Run Schedule

??????

URL: /run/schedule
Método HTTP: POST
Parámetros de entrada:

  • clients (array): Lista de direcciones IP de los clientes.

Ejemplo de Solicitud:

curl -X POST -H "Authorization: $API_KEY" http://127.0.0.1:8888/run/schedule -d @run_schedule.json

Contenido de run_schedule.json:

{
  "clients":["192.168.56.11"]
}