ogDocumentation/Instalador_no_grafico_v1/README.md

13 KiB

Instalador no gráfico

Tabla de contenidos

Requerimientos

  • Servidor con Ubuntu 24.04 instalado
  • Conexión a Internet.
  • Acceso a terminal por SSH
  • Acceso como root

Proceso de instalación

Hacemos login en la máquina que vamos a instalar como usuario root.

Imagen1.png

Ejecutamos los siguientes comandos:

curl -q -k https://ognproject.evlt.uma.es/gitea/api/v1/repos/opengnsys/oginstaller/raw/python-installer/opengnsys_installer.sh?ref=python-installer -o opengnsys_installer.sh

chmod 755 opengnsys_installer.sh

./opengnsys_installer.sh

Imagen2.png

Nos aparece una pantalla con los componentes que queremos instalar y versión que queremos instalar, seleccionaremos los componentes deseados y la versión que se requiera del producto. En este caso seleccionaremos todos los componentes y la versión opengnsys_devel-0.0.10

Imagen3.png

ogCore

Para el servicio ogCore los datos que se requieren son:

  • Usuario Administrador: Valor por defecto ogadmin
  • Contraseña del usuario: Valor por defecto 12345678

Imagen4.png

ogGui

Para el servicio de Interfaz gráfica, los datos que se piden son: URL de Conexión al servidor de ogCore: Valor por defecto https://127.0.0.1:8443

Imagen5.png

ogDHCP

  • Para el servicio de DHCP los parámetros que se piden son:
  • IP del servidor de ogBoot
  • IP del propio servidor de DHCP
  • Directorio donde se instalará el dhcp
  • Interfaces de red por las que se servirá el servicio de DHCP

Imagen6.png

ogBoot (PXE)

Los parámetros que se requieren son:

  • IP del servidor de ogCore
  • IP del propis servidor de ogBoot
  • Directorio de ogBoot
  • Usuario para realizar los exports de SAMBA (¡cuidado, este parámetro está embebido en los ogLive, por lo que no es conveniente cambiarlo a no ser que se haya creado un ogLive con la configuración para ello!)
  • Password del usuario de Samba (¡cuidado, este parámetro está embebido en los ogLive, por lo que no es conveniente cambiarlo a no ser que se haya creado un ogLive con la configuración para ello!)

Imagen6.png

ogRepository

Los parámetros que se requieren son

  • IP del servicio de ogrepository
  • Usuario para realizar los exports de SAMBA (¡cuidado, este parámetro está embebido en los ogLive, por lo que no es conveniente cambiarlo a no ser que se haya creado un ogLive con la configuración para ello!)
  • Password del usuario de Samba (¡cuidado, este parámetro está embebido en los ogLive, por lo que no es conveniente cambiarlo a no ser que se haya creado un ogLive con la configuración para ello!)

Imagen7.png

Chequeo de los servicios

Una vez que la instalación se ha completado, podemos comprobar que los servicios se han instalado correctamente y ha funcionado según lo esperado.

Permisos de los usuarios

Todos los componentes se han debido instalar en /opt/opengnsys/ , donde carpeta servicio es:

  • ogboot
  • ogdhcp
  • ogrepository
  • ogCore
  • ogGui

Las carpetas ogboot, ogdhcp, ogrepository, deben pertenecer al usuario opengnsys, las carpetas ogCore y ogGui deben pertenecer al usuario root.

Imagen8.png

En el directorio /run/php/ se encuentran los sockets por los que se sirven las apis de ogboot y ogdhcp. Si los servicios están corriendo estos ficheros deben pertenecer al usuario opengnsys

Imagen9.png

En el directorio /etc/sudoers.d/ se encuentra el archivo opengnsys con la siguiente configuración.

Imagen10.png

Parada y arranque de los servicios

Todos los servicios funcionan bajo una API (cada servicio con la suya propia) y se getionan como servicios standard de Linux, si bien cada servicio tiene sus particularidades.

ogCore

Descripción

Es un servicio compuesto por 3 contenedores definidos en el archivo /opt/opengnsys/ogCore/etc/docker-compose-deploy.yml . Se gestiona como un único servicio mediante systemd.

Parada y arranque de los servicios

# Arranque
root@qindel-box:~# systemctl start ogcore 

# Parada
root@qindel-box:~# systemctl stop ogcore 

# Estado
root@qindel-box:~# systemctl status ogcore 

# Logs del servicio 
root@qindel-box:~# journalctl -xeu ogcore

Archivos de configuración

Localizados en /opt/opengnsys/ogCore/etc/

Fichero Descripción
docker-compose-deploy.yml Configuración del servicio contenerizado
env.json Definición de los endpoints donde ogcore se tiene que conectar
.env Archivo interno de synfony

Acceso al servicio

El API de ogcore se encuentra disponible en la IP de instalación en el puerto 8443. Para poder acceder a la API del servicio basta con ir a la URL

https://:8443/

imagen11

Desde donde se pueden probar los distintos endpoints de la API de forma estándar mediante swagger.

imagen12

ogGui

Descripción

Es una aplicación en Angular servida por un contenedor de Docker que ejecuta un servidor de NodeJS.

Parada y arranque de los servicion

# Arranque
root@qindel-box:~# systemctl start ooggui-app

# Parada
root@qindel-box:~# systemctl stop oggui-app

# Estado
root@qindel-box:~# systemctl status oggui-app

# Logs del servicio 
root@qindel-box:~# journalctl -xeu oggui-app

Archivos de configuración

Situados en /opt/opengnsys/ogGui/etc

Fichero Descripción
.env URL del endpoint donde apuntar a ogCore.

Acceso al servicio

Para acceder a la interfaz gráfica, basta con acceder a la URL donde se ha desplegado al puerto 4200

https://:4200/

imagen13

Introduciendo el usuario y la password configuradas en la instalación accederemos a la interfaz web.

imagen14

ogBoot

Servicio que engloba varios componentes que se ejecutan ahora mismo directamente en la máquina donde se ha desplegado. La API se ejecuta debajo de un servidor nginx que corre en el host y que se encarga de gestionar el servicio.

El servicio consta de un servidor de http/s, un servidor de samba y un servidor de tftpboot.

El código del servicio ogboot se despliega en /opt/opengnsys/ogboot/. En este directorio se encuentra los siguientes directorios que son relevantes:

  • client: Exportado por samba a las imágenes oglive y que contiene el motor de clonación.
  • tftpboot: exportado por samba a las imágenes oglive , que contiene tanto los kernels de arranque por ipxe, como las imágenes de oglive que se van a desplegar.
  • El resto de las carpetas son las propias de la API.

Parada y arranque de los servicios

  • nginx
# Arranque 
systemctl start nginx 
systemctl start tftpd-ha
systemctl start samba  

# Parada 
systemctl stop nginx
systemctl stop tftpd-ha 
systemctl stop samba

# Reinicio 
systemctl restart nginx
systemctl restart tftpd-ha 
systemctl restart samba

# Status 
systemctl status nginx
systemctl restart tftpd-ha 
systemctl restart samba

Los logs del servicio de nginx y de la api se encuentran en:

  • /var/log/nginx/ogboot_access.log
  • /var/log/nginx/ogboot_error.log

Archivos de configuración

Ubicación Fichero Descripción
/opt/opengnsys/ogboot/ .env Archivo de configuración de synfony.
/etc/nginx/sites-available/ ogboot.conf Archivo de configuración de nginx.
/etc/samba smb-ogboot.conf Archivo de configuración de samba.

Acceso al servicio

El API de ogboot se ejecuta en el puerto 8082 del servidor donde se ha desplegado, actualmente el servicio se ejecuta bajo http. Para acceder a la documentación de la API, se puede realizar en la siguiente ruta:

http://:8082/ogboot/api/doc

imagen15

Si todo está correcto, el status debería devolver algo similar a esto:

imagen16

ogDHCP

Descripción

El servicio que se encarga de gestionar el DHCP, basado en kea y está gestionado por una API realizada en Synfony. El API se ejecuta también bajo un servidor de nginx .

Parada y arranque de servicios

# Arranque 
systemctl start nginx  
systemctl start kea-dhcp4-server
systemctl start kea-ctrl-agent

# Parada 
systemctl stop nginx 
systemctl stop kea-dhcp4-server
systemctl stop kea-ctrl-agent

# Restart 
systemctl restart nginx 
systemctl restart kea-dhcp4-server
systemctl restart kea-ctrl-agent

# Status 
systemctl status nginx
systemctl status kea-dhcp4-server
systemctl status kea-ctrl-agent

Ficheros de log

  • nginx

/var/log/nginx/ogdhcp_access.log /var/log/nginx/ogdhcperror.log

Archivos de configuración

Ubicación Fichero Descripción
/opt/opengnsys/ogdhcp/ .env Archivo de configuración de synfony.
/etc/nginx/sites-available/ ogdhcp.conf Archivo de configuración de nginx.

Acceso al servicio

El API de ogboot se ejecuta en el puerto 8081 del servidor donde se ha desplegado, actualmente el servicio se ejecuta bajo http. Para acceder a la documentación de la API, se puede realizar en la siguiente ruta:

http://:8081/ogdhcp/api/doc

imagen17

Si todo está correcto el endpoint de status debería responder algo como esto:

imagen18

ogRepository

Descripción

Servicio que engloba varios componentes que se ejecutan ahora mismo directamente en la máquina donde se ha desplegado. La API se ejecuta debajo de un servidor de gunicorn y está desarrollada mediante la librería Flask de Python.

Además sirve por samba los directorios /opt/opengnsys/ogrepository/images mediante el usuario opengnsys.

Parada y arranque de servicios

# Arranque 
systemctl start ogrepo-api
systemctl start samba

# Parada
systemctl stop ogrepo-api
systemctl stop samba

# Status 
systemctl status ogrepo-api
systemctl status samba

# Revisión de logs 
journalctl -xeu ogrepo-api
journalctl -xeu samba

Configuración

Ubicación Fichero Descripción
/opt/opengnsys/ogrepository/ .ogAdmRepo.cfg Archivo de configuración de ogrepository.
/etc/samba/ smb.conf.ogrepository Archivo de configuración de Samba.

Acceso al servicio

El API de ogRepository se ejeecuta en el puerto 8006 del host donde se haya desplegado. Si se quiere acceder al servicio lo podemos hacer mediante la URL

http://:8006/apidocs/

imagen19

Si la instalación ha sido correcta, el status debería devolver algo similar a esto

imagen20

Primeros pasos

Para empezar a trabajar, podemos configurar ogCore mediante la interfaz gráfica de tal manera que por lo menos podamos comprobar la conexión de ogCore con todos los componentes.

Para ello:

En la máquina donde se haya configurado ogCore editamos el archivo /opt/opengnsys/ogCore/etc/env.json

imagen21

Ajustamos los valores OG_BOOT_API_URL, OG_DHCP_API_URL y OG_CORE_IP a los valores correctos dependiendo de nuestra instalación, por ejemplo

imagen22

Una vez hecho esto, podemos reiniciar ogcore y hacer login en la interfaz gráfica:

imagen23

Si accedemos al esado del servicio DHCP

imagen24

Si accedemos al estado del servicio de ogBoot

imagen25

Para comprobar la conectividad con ogRepository, tenemos que dar de alta el repositorio. Para ello vamos a repositorios

imagen26

Rellenamos los datos correspondientes

imagen27

Y si ahora hacemos click en el lapiz podremos ver el repositorio

imagen28

imagen29