oVirt en 2 horas. Parte 3. Configuraciones adicionales

En este artículo, revisaremos una serie de configuraciones opcionales pero útiles:

Este artículo es una continuación; para el inicio, ver oVirt en 2 horas Parte 1 y parte 2.

Artículos

  1. Introducción
  2. Instalación del administrador (ovirt-engine) y hipervisores (hosts)
  3. Configuraciones adicionales - Estamos aquí

Configuraciones adicionales del administrador

Para comodidad de trabajo, instalaremos paquetes adicionales:

$ sudo yum install bash-completion vim

Para habilitar la autocompletación de comandos bash-completion, se debe cambiar a bash.

Adición de nombres DNS adicionales

Esto será necesario cuando se deba conectar al administrador por un nombre alternativo (CNAME, alias o simplemente un nombre corto sin el sufijo de dominio). Por razones de seguridad, el administrador solo permite conexiones por una lista de nombres permitidos.

Creamos el archivo de configuración:

$ sudo vim /etc/ovirt-engine/engine.conf.d/99-custom-sso-setup.conf

users.module.ts

SSO_ALTERNATE_ENGINE_FQDNS="ovirt.example.com some.alias.example.com ovirt"

y reiniciamos el administrador:

$ sudo systemctl restart ovirt-engine

Configuración de autenticación a través de AD

oVirt tiene una base de usuarios integrada, pero también admite proveedores LDAP externos, incluyendo AD.

El camino más sencillo para una configuración estándar es ejecutar el asistente y reiniciar el administrador:

$ sudo yum install ovirt-engine-extension-aaa-ldap-setup
$ sudo ovirt-engine-extension-aaa-ldap-setup
$ sudo systemctl restart ovirt-engine

Ejemplo de funcionamiento del asistente
$ sudo ovirt-engine-extension-aaa-ldap-setup
Implementaciones LDAP disponibles:
…
3 - Active Directory
…
Por favor, selecciona: 3
Por favor, introduce el nombre del bosque de Active Directory: example.com

Por favor, selecciona el protocolo a usar (startTLS, ldaps, plain) [startTLS]:
Por favor, selecciona el método para obtener el certificado CA codificado en PEM (Archivo, URL, Inline, Sistema, Inseguro): URL
URL: wwwca.example.com/myRootCA.pem
Ingresa el DN del usuario de búsqueda (por ejemplo, uid=nombredeusuario,dc=ejemplo,dc=com o dejar vacío para anónimo): CN=oVirt-Engine,CN=Users,DC=ejemplo,DC=com
Ingresa la contraseña del usuario de búsqueda: *contraseña*
[ INFO ] Intentando vincular utilizando ‘CN=oVirt-Engine,CN=Users,DC=ejemplo,DC=com’
¿Vas a usar Single Sign-On para máquinas virtuales (Sí, No)? [Sí]:
Por favor, especifica el nombre del perfil que será visible para los usuarios [example.com]:
Por favor, proporciona credenciales para probar el flujo de inicio de sesión:
Ingresa el nombre de usuario: algúnUsuarioCualquiera
Ingresa la contraseña del usuario:
…
[ INFO ] Secuencia de inicio de sesión ejecutada con éxito
…
Selecciona la secuencia de prueba a ejecutar (Hecho, Abortar, Inicio de sesión, Buscar) [Hecho]:
[ INFO ] Etapa: Configuración de transacción
…
RESUMEN DE CONFIGURACIÓN
…

El uso del asistente es adecuado para la mayoría de los casos. Para configuraciones complejas, las configuraciones se realizan manualmente. Más detalles en la documentación de oVirt, Usuarios y Roles. Después de conectar exitosamente el Engine a AD, aparecerá un perfil adicional en la ventana de conexión, y en la pestaña Permisos de los objetos del sistema — la capacidad de otorgar poderes a usuarios y grupos de AD. Cabe destacar que el catálogo externo de usuarios y grupos puede ser no solo AD, sino también IPA, eDirectory, entre otros.

Multipath

En un entorno de producción, el sistema de almacenamiento debe estar conectado al host a través de múltiples caminos independientes de entrada y salida. Generalmente, en CentOS (y por lo tanto en oVirt) no hay problemas para agrupar múltiples caminos hacia el dispositivo (find_multipaths yes). Se han escrito sobre configuraciones adicionales para FCoE en la parte 2. Es importante prestar atención a la recomendación del fabricante del sistema de almacenamiento; muchos recomiendan usar la política round-robin, mientras que de manera predeterminada en Enterprise Linux 7 se utiliza la política de tiempo de servicio.

A través del ejemplo de 3PAR
y el documento Guía de Implementación de HPE 3PAR Red Hat Enterprise Linux, CentOS Linux, Oracle Linux y OracleVM Server EL se crea como Host con Generic-ALUA Persona 2, para el cual se ingresan los siguientes valores en la configuración /etc/multipath.conf:

defaults {
           polling_interval      10
           user_friendly_names   no
           find_multipaths       yes
          }
devices {
          device {
                   vendor                   "3PARdata"
                   product                  "VV"
                   path_grouping_policy     group_by_prio
                   path_selector            "round-robin 0"
                   path_checker             tur
                   features                 "0"
                   hardware_handler         "1 alua"
                   prio                     alua
                   failback                 immediate
                   rr_weight                uniform
                   no_path_retry            18
                   rr_min_io_rq             1
                   detect_prio              yes
                   fast_io_fail_tmo         10
                   dev_loss_tmo             "infinity"
                 }
}

Después, se da el comando para reiniciar:

systemctl restart multipathd

oVirt en 2 horas. Parte 3. Configuraciones adicionales
Fig. 1 — política de múltiples entradas/salidas por defecto.

oVirt en 2 horas. Parte 3. Configuraciones adicionales
Fig. 2 — política de múltiples entradas/salidas después de aplicar las configuraciones.

Configuración de gestión de energía

Permite realizar, por ejemplo, un reinicio de hardware de la máquina, si el Engine no recibe respuesta del Host durante un periodo prolongado. Se implementa a través del Fence Agent (agente de cercado).

Compute -> Hosts -> HOST — Editar -> Gestión de Energía, luego activar «Habilitar Gestión de Energía» y añadir un agente — «Agregar Agente de Cercado» -> +.

Especificamos el tipo (por ejemplo, para iLO5 se debe especificar ilo4), el nombre/dirección de la interfaz ipmi, así como el nombre/contraseña del usuario. Se recomienda crear un usuario separado (por ejemplo, oVirt-PM) y, en el caso de iLO, otorgarle privilegios:

  • Iniciar sesión
  • Consola Remota
  • Reinicio y Energía Virtual
  • Medios Virtuales
  • Configurar Ajustes de iLO
  • Administrar Cuentas de Usuario

No pregunte por qué de esta manera, se ha elegido por experiencia. El agente de fencing en consola requiere menos privilegios.

Al configurar las listas de control de acceso, tenga en cuenta que el agente no se ejecuta en el engine, sino en el 'host vecino' (llamado Proxy de Gestión de Energía), es decir, si solo hay un nodo en el clúster, la gestión de energía no funcionará. reemplazará.

Configuración de SSL

La guía oficial completa se encuentra en la documentación, Apéndice D: oVirt y SSL — Reemplazo del Certificado SSL/TLS del motor oVirt.

El certificado puede ser tanto de nuestra CA corporativa como de un centro de certificación comercial externo.

Nota importante: el certificado está destinado para la conexión al administrador y no afectará la interacción entre el Engine y los nodos — estos utilizarán certificados autofirmados emitidos por el Engine.

Requisitos:

  • certificado del CA emisor en formato PEM, con toda la cadena hasta el CA raíz (del CA subordinado al principio hasta el CA raíz al final);
  • certificado para Apache, emitido por el CA emisor (también complementado con toda la cadena de certificados del CA);
  • clave privada para Apache, sin contraseña.

Supongamos que nuestro centro de certificación emisor funciona bajo CentOS, se llama subca.example.com, y las solicitudes, claves y certificados se encuentran en el directorio /etc/pki/tls/.

Realizamos copias de seguridad y creamos un directorio temporal:

$ sudo cp /etc/pki/ovirt-engine/keys/apache.key.nopass /etc/pki/ovirt-engine/keys/apache.key.nopass.`date +%F`
$ sudo cp /etc/pki/ovirt-engine/certs/apache.cer /etc/pki/ovirt-engine/certs/apache.cer.`date +%F`
$ sudo mkdir /opt/certs
$ sudo chown mgmt.mgmt /opt/certs

Descargando certificados, esto se puede hacer desde su estación de trabajo o transferir de otra manera conveniente:

[myuser@mydesktop] $ scp -3 causer@subca.example.com:/etc/pki/tls/cachain.pem mgmt@ovirt.example.com:/opt/certs
[myuser@mydesktop] $ scp -3 causer@subca.example.com:/etc/pki/tls/private/ovirt.key mgmt@ovirt.example.com:/opt/certs
[myuser@mydesktop] $ scp -3 causer@subca.example.com:/etc/pki/tls/certs/ovirt.crt mgmt@ovirt.example.com:/opt/certs

Como resultado, debería ver los 3 archivos:

$ ls /opt/certs
cachain.pem  ovirt.crt  ovirt.key

Instalación de certificados

Copiamos los archivos y actualizamos las listas de confianza:

$ sudo cp /opt/certs/cachain.pem /etc/pki/ca-trust/source/anchors
$ sudo update-ca-trust
$ sudo rm /etc/pki/ovirt-engine/apache-ca.pem
$ sudo cp /opt/certs/cachain.pem /etc/pki/ovirt-engine/apache-ca.pem
$ sudo cp /opt/certs/ovirt03.key /etc/pki/ovirt-engine/keys/apache.key.nopass
$ sudo cp /opt/certs/ovirt03.crt /etc/pki/ovirt-engine/certs/apache.cer
$ sudo systemctl restart httpd.service

Agregar/actualizar archivos de configuración:

$ sudo vim /etc/ovirt-engine/engine.conf.d/99-custom-truststore.conf
ENGINE_HTTPS_PKI_TRUST_STORE="/etc/pki/java/cacerts"
ENGINE_HTTPS_PKI_TRUST_STORE_PASSWORD=""
$ sudo vim /etc/ovirt-engine/ovirt-websocket-proxy.conf.d/10-setup.conf
SSL_CERTIFICATE=/etc/pki/ovirt-engine/certs/apache.cer
SSL_KEY=/etc/pki/ovirt-engine/keys/apache.key.nopass
$ sudo vim /etc/ovirt-imageio-proxy/ovirt-imageio-proxy.conf
# Key file for SSL connections
ssl_key_file = /etc/pki/ovirt-engine/keys/apache.key.nopass
# Certificate file for SSL connections
ssl_cert_file = /etc/pki/ovirt-engine/certs/apache.cer

A continuación, reiniciaremos todos los servicios afectados:

$ sudo systemctl restart ovirt-provider-ovn.service
$ sudo systemctl restart ovirt-imageio-proxy
$ sudo systemctl restart ovirt-websocket-proxy
$ sudo systemctl restart ovirt-engine.service

¡Listo! Es hora de conectarse al administrador y verificar que la conexión esté protegida con un certificado SSL firmado.

Archivado

¿Cómo podríamos prescindir de ello? En esta sección hablaremos sobre el archivado del administrador, el archivado de las VM es un tema aparte. Haremos copias de seguridad una vez al día y las almacenaremos por NFS, por ejemplo, en el mismo sistema donde colocamos las imágenes ISO: mynfs01.example.com:/exports/ovirt-backup. No se recomienda almacenar archivos en la misma máquina donde opera el Engine.

Instalamos y activamos autofs:

$ sudo yum install autofs
$ sudo systemctl enable autofs
$ sudo systemctl start autofs

Creamos un script:

$ sudo vim /etc/cron.daily/make.oVirt.backup.sh

users.module.ts

#!/bin/bash

datetime=`date +"%F.%R"`
backupdir="/net/mynfs01.example.com/exports/ovirt-backup"
filename="$backupdir/`hostname --short`.`date +"%F.%R"`"
engine-backup --mode=backup --scope=all --file=$filename.data --log=$filename.log
#uncomment next line for autodelete files older 30 days 
#find $backupdir -type f -mtime +30 -exec rm -f {} ;

Hacemos el archivo ejecutable:

$ sudo chmod a+x /etc/cron.daily/make.oVirt.backup.sh

Ahora cada noche recibiremos un archivo de respaldo de la configuración del administrador.

Interfaz de gestión de hosts

Cockpit — interfaz administrativa moderna para sistemas Linux. En este caso, cumple una función similar a la interfaz web de ESXi.

oVirt en 2 horas. Parte 3. Configuraciones adicionales
Fig. 3 — apariencia del panel.

Se instala muy fácilmente, se necesitan los paquetes cockpit y el plugin cockpit-ovirt-dashboard:

$ sudo yum install cockpit cockpit-ovirt-dashboard -y

Activación de Cockpit:

$ sudo systemctl enable --now cockpit.socket

Configuración del cortafuegos:

sudo firewall-cmd --add-service=cockpit
sudo firewall-cmd --add-service=cockpit --permanent

Ahora se puede conectar al host: https://[Host IP or FQDN]:9090

VLANs

Para más información sobre las redes, vale la pena leer en la documentación. Hay muchas posibilidades, aquí describiremos la conexión de redes virtuales.

Para conectarse a otras subredes, primero deben describirse en la configuración: Network -> Networks -> New, aquí el único campo obligatorio es el nombre; la casilla VM Network, que permite a las máquinas usar esta red, está marcada, y para habilitar la etiqueta de conexión, se debe activar Enable VLAN tagging, ingresar el número de VLAN y hacer clic en Ok.

Ahora debemos ir a Hosts de Compute -> Hosts -> kvmNN -> Interfaces de red -> Configurar redes de hosts. La red recién añadida desde la parte derecha Unassigned Logical Networks se arrastrará a la izquierda en Assigned Logical Networks:

oVirt en 2 horas. Parte 3. Configuraciones adicionales
Fig. 4 — antes de añadir la red.

oVirt en 2 horas. Parte 3. Configuraciones adicionales
Fig. 5 — después de añadir la red.

Para conectar varias redes a un host, resulta cómodo asignar etiquetas al crear redes y añadir redes según las etiquetas.

Tras crear la red, los hosts pasarán al estado No Operacional hasta que se complete la adición de la red en todos los nodos del clúster. Este comportamiento se debe al atributo Require All en la pestaña del Clúster al crear una nueva red. Si la red no es necesaria en todos los nodos del clúster, este atributo se puede desactivar, de modo que al añadir la red al host aparecerá en la sección No Requerido y se podrá elegir si conectarla a un host específico.

oVirt en 2 horas. Parte 3. Configuraciones adicionales
Fig. 6 — selección del atributo de requerimiento de red.

Específico para HPE

Casi todos los fabricantes cuentan con herramientas que mejoran la facilidad de uso de sus productos. En el caso de HPE, son útiles AMS (Agentless Management Service, amsd para iLO5, hp-ams para iLO4) y SSA (Smart Storage Administrator, para trabajar con el controlador de discos), entre otros.

Conexión del repositorio HPE
Importamos la clave y conectamos los repositorios HPE:

$ sudo rpm --import https://downloads.linux.hpe.com/SDR/hpePublicKey2048_key1.pub
$ sudo vim /etc/yum.repos.d/mcp.repo

users.module.ts

[mcp]
name=Management Component Pack
baseurl=http://downloads.linux.hpe.com/repo/mcp/centos/$releasever/$basearch/current/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/GPG-KEY-mcp

[spp]
name=Service Pack for ProLiant
baseurl=http://downloads.linux.hpe.com/SDR/repo/spp/RHEL/$releasever/$basearch/current/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/GPG-KEY-mcp

Visualización del contenido del repositorio e información sobre el paquete (informativa):

$ sudo yum --disablerepo="*" --enablerepo="mcp" list available
$ yum info amsd

Instalación y ejecución:

$ sudo yum install amsd ssacli
$ sudo systemctl start amsd

Ejemplo del funcionamiento de la utilidad para trabajar con el controlador de discos
oVirt en 2 horas. Parte 3. Configuraciones adicionales

Por ahora eso es todo. En los próximos artículos planeo hablar de algunas operaciones y aplicaciones básicas. Por ejemplo, cómo hacer VDI en oVirt.

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster