13 KiB
Instalador no gráfico
Tabla de contenidos
- Requerimientos
- Proceso de instalación
- Chequeo de los servicios
- Permisos de los usuarios
- Parada y arranque de los servicios
- Primeros pasos
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.
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
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
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
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
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
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!)
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!)
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.
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
En el directorio /etc/sudoers.d/ se encuentra el archivo opengnsys con la siguiente configuración.
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/
Desde donde se pueden probar los distintos endpoints de la API de forma estándar mediante swagger.
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/
Introduciendo el usuario y la password configuradas en la instalación accederemos a la interfaz web.
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
Si todo está correcto, el status debería devolver algo similar a esto:
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
Si todo está correcto el endpoint de status debería responder algo como esto:
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/
Si la instalación ha sido correcta, el status debería devolver algo similar a esto
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
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
Una vez hecho esto, podemos reiniciar ogcore y hacer login en la interfaz gráfica:
Si accedemos al esado del servicio DHCP
Si accedemos al estado del servicio de ogBoot
Para comprobar la conectividad con ogRepository, tenemos que dar de alta el repositorio. Para ello vamos a repositorios
Rellenamos los datos correspondientes
Y si ahora hacemos click en el lapiz podremos ver el repositorio