Instalación de Medulla

Documentación de instalación del servidor Medulla en un sitio único mediante Ansible.

Instalación del sistema operativo Debian para el servidor Medulla

Características técnicas


Requisitos previos – Dimensionamiento de los servidores

Servidor principal

SO

Debian 12.x

Arquitectura

X86-64

CPU

8 núcleos

RAM

8 GB

Partición /

20 GB en EXT4

Partición /var

400 GB como mínimo en XFS o punto de montaje en una bahía de almacenamiento

Servidores de retransmisión multisitio

(si procede)

SO

Debian 12.x

Arquitectura

X86-64

CPU

4 núcleos

RAM

8 GB

Partición /

20 GB en EXT4

Partición /var

400 GB como mínimo en XFS o punto de montaje en una bahía de almacenamiento

Instalación del servidor Debian

Resumen:

- Separar solo /var de / y ponerlos en LVM

- Instalar el servidor SSH y las utilidades estándar del sistema

- No instalar ningún antivirus ni cortafuegos

- Definir una cuenta que

o pueda ejecutar sudo sin contraseña

o pueda conectarse desde la IP 94.130.207.190

o pueda conectarse con la siguiente clave:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCScgwfwJKM5BtgzAYu6FEeJ5jW3onkzFp8D8piLR22kWbRcT/AJ1z0jhS5ZDtn6mumfidVPFbLkDf382u54pOU6JGwy9GhvEIXOSlzgxZMH5kcfeBE/8Ovr9zLtbRKsWQN9YUSt5y6lmcSxuQNVhkRy49/593oamVJACSitSVJ68716hj0gp4N8gUMVkvNgEBDZVSPe0DXz2h7JEzOKx2ejjRaw22ve+qARTw+60gMP0aCLGt/m0cyv+90AZigQwWIPcUk+bBRJn3Ku+Bkw+JuLYURlVc4xoTvT1JTWKXAzMln4nrlisIc9Ex5eEHSkvs/fgJCgU28Fza5n5mBj/pbQRY+/AWLjvBVuLiVReO7hq60fhrX9+j7MWMCYCZQiHbk/r7OprLyl2yGFX1DbgRGF1Sk2R9DtqRhwPzPxtQ7ZtKSjIhLjrZxJ/YJLHSoUsw+4CHprjzU0gXBt1RCQoyhYqEGcnuFyfd9dIBXCINkmp4jfz7CQjrC8uPqAtS1zQU= support@support

Configuración de la partición de discos

Particione los discos siguiendo las instrucciones que se indican a continuación:

Realizar una partición manual

RXi6qfZ9PswkCuWM-embedded-image-k3kebzpb.png

8te0UWcUdspzZBMb-embedded-image-ympc4spb.png

VmC09oQIVFslMAOG-embedded-image-qvsjgdgq.png

Creación de la partición /boot

IwEnXmeZzAnsDTC7-embedded-image-w4xke79q.png

TV5wT18WD9OYAcqi-embedded-image-dwbr5kuq.png

0qRqYiNJCdllwSJ9-embedded-image-qgdzniyl.png

KINj9qRDPfRiYZqh-embedded-image-lxe8vm2c.png

QTGvfLswyCwFcQx5-embedded-image-ogg9lntv.png

gTD9G2rs5dtUG0r5-embedded-image-kwrl6wtl.png

Creación del LVM

Hdz8G7I7yGDXCNMs-embedded-image-rmqzlrgh.png

yMZHBmMiH2vXFpfy-embedded-image-5sakjhab.png

ZLmjvxT9xxd4XlQB-embedded-image-ah2je5fw.png

efACs6NK7Gbp3yNK-embedded-image-iksbohcj.png

navXOvvK11MzaJFx-embedded-image-dt6vkkmg.png

xujPjspeZkZypAVT-embedded-image-fzhrvved.png

UAzAjpCcJyNLYOmb-embedded-image-sbnedsji.png

Creación del grupo de volúmenes vg

DYQK1prhJbIJVCL2-embedded-image-dpriouo9.png

FrJtSW6vic2PpAbj-embedded-image-ratkesnt.png

qeCGGIlWZ2t77JeH-embedded-image-guaasj24.png

Creación del volumen lógico lvroot

oNaJ3t4UQqkEJ7Ez-embedded-image-hu8ybn2n.png

cYmQl6BuhZPZp7fF-embedded-image-wo63hn3s.png

peBSVAHNJOnmb1II-embedded-image-cchq1b6n.png

vROib7ewmIUJYcuA-embedded-image-glmzrnrc.png

Repetir para los volúmenes lvswap y lvvar

DquKSa2Mtlq0gG5R-embedded-image-snhvcaj6.png

KZcKrmFHAJpUMTLP-embedded-image-ntgqhdgq.png

uYVhoMDThRZGqQR6-embedded-image-jkza0twt.png

AEJKbB4FLVGOYwZK-embedded-image-93rhaz1w.png

Para obtener el siguiente esquema LVM:

wiN6RiAoqlWTTpO7-embedded-image-tjy0unp9.png

IyN684C1YqNlTixG-embedded-image-tlhdjfw0.png

Configurar la partición /

5KxhfcV0spUh97la-embedded-image-rjjlj3ry.png

z4trMBsNo0krFnQQ-embedded-image-zmal04r3.png

Repetir para cada una de las particiones swap y /var:

X6XNDXKhchm0A1Nx-embedded-image-ubsfnaop.png

BkApQxifsvygZxQL-embedded-image-3hqodqtd.png

Para obtener el siguiente esquema de particiones:

E0KfH5OcMAkGBumZ-embedded-image-ugnmmpfl.png

Instalación de los paquetes

ZdgL7U9FlIpckFMo-embedded-image-4c0bkbzl.png

 

 

Comprobación del servidor

1. Descargar el script de verificación desde https://dl.medulla-tech.io/nc/check_server_before_install.sh

wget https://dl.medulla-tech.io/nc/check_server_before_install.sh


2. Ejecuta los siguientes comandos:

chmod +x check_server_before_install.sh

./check_server_before_install.sh

3.    

Todas las pruebas del script deben dar resultado correcto; una vez hecho esto, puede descargar el script de instalación a través del formulario de contacto:

https://github.com/medulla-tech/medulla/blob/master/README.fr.md

Si dispone de un contrato de asistencia técnica, envíe el resultado a delivery@medulla-tech.io. Si no es así, póngase en contacto con el departamento de «ventas» a través de nuestra página webmedulla-tech.io.

Estos son los errores más comunes:

1. Límites de Core Dump (limits)

Contexto: El archivo /etc/security/limits.d/10-coredump-debian.conf define el tamaño máximo de los archivos «core dump». Nuestro script espera valores específicos que no se corresponden con la configuración actual.

Cómo solucionarlo: Modifique el archivo mencionado para que se ajuste a lo esperado.

  1. Abra el archivo: sudo nano /etc/security/limits.d/10-coredump-debian.conf

  2. Modifique las líneas para que queden así:

    • * hard core infinity

    • root hard core infinity

    • * soft core 0

    • root soft core 0

Fuentes recomendadas: Documentación de Debian sobre limits.conf y core dump.


2. Número de archivos abiertos (lsof)

Contexto: Las líneas de lsof correspondientes a los usuarios xxx y messagebus indican que el número de archivos abiertos actualmente se desvía del valor esperado por el script de verificación (a menudo porque hay servicios ya en ejecución o mal configurados).

Cómo solucionarlo: A menudo es solo informativo, pero si necesitas reducir estas cifras:

Fuentes recomendadas: Manual de lsof y gestión de descriptores de archivos en Linux.


3. Parámetros de systemd (NPROC y SIGPENDING)

Contexto: Los valores DefaultLimitNPROC (número máximo de procesos) y DefaultLimitSIGPENDING (señales en espera) deben ser31541

Cómo solucionarlo: Hay que forzar estos valores en la configuración global de systemd para que coincidan exactamente con lo esperado.

  1. Modifique el archivo de configuración: sudo nano /etc/systemd/system.conf

  2. Descomente o añada las siguientes líneas:

    • DefaultLimitNPROC=31541

    • DefaultLimitSIGPENDING=31541

  3. Recargue la configuración y reinicie (o utilice systemctl daemon-reexec).

Fuentes recomendadas: Documentación de systemd-system.conf en freedesktop.org.

Instalar Medulla en Linux

Requisitos previos: 

El script de instalación de Medulla es compatible con la distribución Debian (Bookworm).

Debe disponer de un equipo con:

Comprueba que tu archivo /etc/hosts esté correctamente configurado con el FQDN completo.

Si, por ejemplo, el equipo se llama medulla y el dominio se llama dominio.lan, el archivo /etc/hosts debe contener una línea similar a esta:

127.0.1.1    medulla.dominio.lan    medulla

Compruebe que el archivo /etc/resolv.conf esté correctamente configurado y que el equipo esté bien conectado a Internet.

Instalación del servidor Medulla:

Para instalar el servidor Medulla: Utilice un usuario con permisos sudo para ejecutar el script y el playbook de instalación.

1- Transfiere el script al servidor. 
2- Asigna permisos de ejecución al archivo:  
escriba: chmod +x install_from_ansible.py
3- Inicie la instalación del servidor: 
./install_from_ansible.py

Espera a que finalice el proceso de instalación; aparecerá un resumen con todas las contraseñas necesarias (copíalas en un lugar seguro).

Instalación del agente Medulla

El agente Medulla se puede descargar desde

http://medulla.domaine.lan/downloads/win/Medulla-Agent-windows-FULL-latest.exe

El agente Medulla se puede instalar manualmente o en modo silencioso:

          "Medulla-Agent-windows-FULL-latest.exe /S"

El proceso de instalación continuará tras finalizar la instalación, instalando todas las dependencias.

Finaliza cuando el ordenador aparece en Medulla en azul (en línea).

computer-up.webp

Agente Medulla

Por defecto, proporcionamos un agente global para Medulla ( tal y como se explica en esta publicación). La gestión de las entidades por publicación se realiza a través de GLPI.

Sin embargo, si desea beneficiarse de una asignación automática de máquinas a las entidades directamente a través del agente, también es posible generar agentes específicos por entidad. Esta opción no está activada por defecto, pero podemos ayudarle a configurarla si se ajusta a sus necesidades. Para ver los agentes por entidad: Gestión de entidades

Implementación de Agent mediante WinRM SSH

Preparación de las máquinas

Máquinas Debian (Medulla Main y Medulla Relai)
  • Asegúrese de que netcat esté instalado en las máquinas Debian: 
  • sudo apt update && sudo apt install netcat-openbsd
Máquina Windows (estación de trabajo del cliente)
  • Asegúrese de que PowerShell esté configurado para ejecutar scripts: 
  • Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
  • Responda [A] «Sí a todo»

Scripts de escucha

En máquinas Debian (Medulla Main y Medulla Relai)
Utilice el script listen_ports_debian.sh para poner en escucha los puertos necesarios.

Pasos:
  1. Descarga el scriptlisten_ports_debian.sh en la máquina.
  2. Haga que sea ejecutable (y conviértalo a Unix si es necesario): 
chmod +x listen_ports_debian.sh
dos2unix listen_ports_debian.sh
  1. Ejecute el script
    • ParaMedulla Main
    • ./listen_ports_debian.sh --medulla
    • ParaMedulla Relai
    • ./listen_ports_debian.sh --relay

En el equipo Windows (estación de trabajo)
Utilice el script listen_ports_windows.ps1 para poner a escuchar los puertos necesarios.

Pasos:
  1. Descargue el scriptlisten_ports_windows.ps1 en el equipo.
  2. Ejecute el script:
.\listen_ports_windows.ps1

Scripts de prueba de conexión

En los equipos Debian (Medulla Main, Medulla Relai y Poste Client)

Utilice los scripts medulla_connection_check.sh, medulla_relay_connection_check.sh y windows_connection_check.ps1 para comprobar las conexiones con los equipos.

Pasos:
  1. Descargue los scriptsen las tres máquinas (Medulla Main, Relai y Poste Client).
  2. Haga que sean ejecutables
  3. chmod +x medulla_connection_check.sh
    chmod +x medulla_relay_connection_check.sh
    chmod +x listen_ports_debian.sh
  4. Si es necesario (error al ejecutar los scripts de Debian), conviértalos a Unix:
  5. dos2unix medulla_connection_check.sh
    dos2unix medulla_relay_connection_check.sh
    dos2unix listen_ports_debian.sh
  6. Ejecute el script
    • Para probar las conexiones desdeMedulla Mainhacia Medulla Relai: 
    • ./medulla_connection_check.sh --relay <IP_Medulla_Relai>
    • Para probar las conexiones desdeMedulla Mainhacia un terminal de cliente: 
    • ./medulla_connection_check.sh --client <IP_estación_cliente>
    • Para comprobar las conexiones desdeMedulla Relaia Medulla Main: 
    • ./medulla_relay_connection_check.sh --medulla <IP_Medulla_Main>
    • Para comprobar las conexiones desdeMedulla Reléa un terminal de cliente: 
    • ./medulla_relay_connection_check.sh --client <IP_Estación_Cliente>
    • Para comprobar las conexiones desdeel puesto de cliente haciaMedulla Main y Medulla Relai:
    • .\windows_connection_check.ps1 -Target <IP_Medulla_Main> -Mode pulse
      .\windows_connection_check.ps1 -Target <IP_Medulla_Relai> -Mode relay

Procedimiento completo

Configuración de los puertos

      En Medulla Main (Debian):

./listen_port_debian.sh --medulla

      En Medulla Relai (Debian):

./listen_port_debian.sh --relay

      En el equipo cliente (Windows):

.\listen_ports_windows.ps1

Prueba de conexiones

Desde Medulla Main (Debian)
:
./medulla_connection_check.sh --relay <IP_Medulla_Relai>
./medulla_connection_check.sh --client <IP_Poste_Client>

Desde Medulla Relé (Debian):
./medulla_relay_connection_check.sh --medulla <IP_Medulla_Main>
./medulla_relay_connection_check.sh --client <IP_Poste_Client>

Desde el equipo cliente (Windows):
.\windows_connection_check.ps1 -Target <IP_Medulla_Main> -Mode pulse
.\windows_connection_check.ps1 -Target <IP_Medulla_Relai> -Mode relay

Resolución de problemas

Problemas de conexión
  • Comprueba las direcciones IP: Asegúrate de que las direcciones IP utilizadas sean correctas.
  • Compruebe los cortafuegos: Asegúrese de que los cortafuegos de los equipos permiten las conexiones en los puertos necesarios.
  • Compruebe los servicios: Asegúrese de que los servicios necesarios estén en ejecución.
Problemas de escucha
  • Compruebe los puertos en escucha: utilice netstat -ano en Windows o ss -tulnp en Debian para comprobar que los puertos están realmente en escucha.
  • Comprueba los errores: consulta los mensajes de error en los scripts para identificar los problemas.

Interfaz de Medulla

Para acceder a la consola de Medulla, abra un navegador web con la siguiente dirección: 

http://medulla.domaine.lan/mmc

http://ip-serveur/mmc/ 

 

Para descubrir Medulla y aprender a utilizar la solución: 

Documentación de Medulla

Configuración de DHCP / PXE

Habilitar el arranque UEFI con PXE

Servidor DHCP:

El servidor DHCP necesita una opción especial para habilitar el arranque PXE.

Las opciones DHCP son:

Configuración del servidor DHCP de Windows

En primer lugar, el servidor DHCP debe determinar qué tipo de equipo está solicitando la asignación del servidor PXE y el archivo adecuado para el arranque.

Para clasificar los equipos, deben definirse las clases de fabricante.

Clases de fabricante

Las clases de fabricante como método de detección se utilizan para determinar cómo los dispositivos solicitan una imagen de arranque al servidor DHCP.

Creación de políticas DHCP personalizadas

Política DHCP de BIOS de 32 y 64 bits
 
Política DHCP de UEFI
Elimine las opciones PXE predeterminadas

Asegúrese de haber eliminado las opciones 067, 066 y 060 de las opciones de ámbito predeterminadas para garantizar que las políticas tengan prioridad; de lo contrario, se producirá un conflicto. Siempre que haya configurado todo correctamente, ahora debería poder arrancar los equipos desde la BIOS o la UEFI.

Servidor DHCP de Linux
# Definiciones PXE
option space PXE;
option PXE.mtftp-ip code 1 = ip-address;
option PXE.mtftp-cport code 2 = unsigned integer 16;
option PXE.mtftp-sport code 3 = unsigned integer 16;
option PXE.mtftp-tmout code 4 = unsigned integer 8;
opción PXE.mtftp-delay código 5 = entero sin signo de 8 bits;
opción PXE.discovery-control código 6 = entero sin signo de 8 bits;
opción PXE.discovery-mcast-addr código 7 = dirección IP;
opción arch código 93 = entero sin signo de 16 bits;
# En el paquete DHCP DISCOVER inicial, el cliente PXE establece la opción 93 en su arquitectura.
# 0000 == PC IA x86 (arranque BIOS)
# 0006 == arranque EFI x86
# 0007 == arranque EFI x64

# Arranque PXE según las especificaciones PXE
class "PXE" {
match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";
espacio-opción-proveedor PXE;
opción PXE.mtftp-ip 0.0.0.0;
si opción arch = 00:07 {
nombre-archivo "bootloader-uefi64/ipxe.efi";
} else {
nombre-archivo "/bootloader/undionly.kpxe";
}
}

# Arranque Etherboot
class "Etherboot" {
match if substring (option vendor-class-identifier, 0, 11) = "Etherboot-5";
option vendor-encapsulated-options 3c:09:45:74:68:65:72:62:6f:6f:74:ff;
option vendor-class-identifier "Etherboot-5.0";
vendor-option-space PXE;
option PXE.mtftp-ip 0.0.0.0;
}

subnet ##MEDULLA_NETWORK## netmask ##MEDULLA_NETMASK## {
option broadcast-address ##MEDULLA_BCAST##; # dirección de difusión
option domain-name ##MEDULLA_DOMAIN##; # nombre de dominio
option domain-name-servers ##MEDULLA_DNS##; # servidores DNS
option routers ##MEDULLA_GW##; # puerta de enlace predeterminada

pool { # Solo se define el grupo

# descomente las dos líneas siguientes para el arranque solo por PXE
#allow members of "PXE"; # solo PXE
#allow members of "Etherboot"; # solo PXE
range ##MEDULLA_START## ##MEDULLA_END##;
next-server ##MEDULLA_IP##;
}
}