thulium_drake.foreman

Estado de la Construcción

Configuración de Foreman con Ansible

Este rol proporciona un medio para provisionar un servidor Foreman o Satellite con una organización y contenido.

Este rol requiere las siguientes Colecciones de Ansible para funcionar:

  • 'theforeman.foreman' 3.4.0 o superior
  • 'ansible.utils' 2.6.0 o superior
  • 'ansible.posix' 1.4.0 o superior

Probado con Ansible 2.12 y versiones superiores.

Este rol es compatible con Foreman 3.2 / Katello 4.4 y versiones superiores o Red Hat Satellite 6.11 y versiones superiores.

Otros requisitos en el controlador de Ansible:

  • python-netaddr (para tareas relacionadas con subredes)

¡Consulta el inventario y los playbooks de ejemplo para obtener orientación! O lee mi entrada de blog.

Instalación Offline de Satellite

Si deseas instalar Satellite mediante la ISO de instalación offline, asegúrate de haber configurado los repositorios de RHEL desde una ISO de instalación o espejo.

Vistas de Contenido (CV), Vistas de Contenido Compuestas (COV) y publicación

Cuando este rol se utiliza para crear nuevas vistas de contenido y compuestas, se aplica la siguiente estrategia:

  • Las vistas de contenido se crean con el mismo nombre que el producto que contienen.
  • Los repositorios que se crean nuevos se sincronizarán después de la creación (de manera asíncrona).
  • Las vistas de contenido compuestas que se crean nuevas se promoverán a todos los entornos de ciclo de vida en la organización.

La idea detrás de esto es que las COV son las únicas cosas asociadas con los clientes. Las CV base están presentes solo en la Biblioteca y no deben promoverse a ningún otro entorno.

Todas las COV creadas tienen la publicación automática habilitada y se proporcionan ejemplos de playbooks para "etiquetar" una nueva versión y publicarla.

Descubrimiento de Host

Para el descubrimiento de host, registra los siguientes registros en DNS para permitir que el FDI informe al servidor correcto:

  • Para servidores Foreman:
_x-foreman._tcp.dev.ejemplo.com 600 IN SRV 0 5 443 foreman.dev.ejemplo.com
  • Para Proxies Inteligentes de Foreman:
_x-foreman._tcp.dev.ejemplo.com 600 IN SRV 0 5 8443 fm-proxy.dev.ejemplo.com

Si tu entorno no funciona con estos registros, también puedes establecer foreman_discovery_image_autodetect en falso. Esto utilizará la configuración predeterminada para Foreman. Eso podría fallar al usar Proxies Inteligentes.

Instalación de Proxies Inteligentes

Algunas de las configuraciones utilizadas para Proxies Inteligentes se comparten con el servidor Foreman. Para evitar configuraciones duplicadas, se sugiere el siguiente inventario:

[foreman]
foreman.infra.ejemplo.com

[foreman_proxies]
fm-proxy.dev.ejemplo.com

[foreman_infra]

[foreman_infra:children]
foreman
foreman_proxies

Luego coloca todas las configuraciones globales para Foreman en los group_vars para foreman_infra, que estarán disponibles tanto para el Servidor como para los Proxies. Puedes crear host_vars para cada sistema Foreman (Servidor o Proxies) que contengan las configuraciones específicas de la instancia.

Limitaciones, errores y soluciones alternativas

A veces, el instalador no puede completar con éxito la configuración de los servicios de Foreman. Las tareas de Ansible se han configurado (a menos que estés ejecutando una versión de Foreman/Satellite que no sea compatible con --detailed-exitcodes) para activarse en ese caso.

Cuando ocurre un problema, puedes seguir estos pasos para localizar el problema:

  • Ejecuta foreman-installer manualmente, no se requieren argumentos. Esto te dará una dirección general sobre dónde mirar.
  • Revisa los registros en /var/log/foreman-installer.
  • Reinicia los servicios de Foreman, esto a veces "reinicia" las cosas, después de lo cual Foreman podrá completar con éxito el instalador.

Para cosas específicas, consulta a continuación.

Información sobre Implementación, Descubrimiento y UEFI vs. BIOS vs. iPXE

Las pruebas han mostrado que varias configuraciones pueden afectar si un host puede arrancar desde la red.

Hemos probado las siguientes configuraciones:

  • Descubrimiento:

    • KVM

      • BIOS: funciona con la configuración predeterminada establecida por este rol. También se puede usar con iPXE.
      • UEFI: puede ser un poco problemático, podrías tener algunos problemas al intentar cargar el FDI desde PXE ya que TFTP se agotará el tiempo. iPXE funciona bien.
    • HyperV:

      • Gen1 (BIOS): funciona con la configuración predeterminada establecida. También se puede usar con iPXE.
      • Gen2 (UEFI): requiere iPXE, debes desactivar SecureBoot.
  • Implementación del SO:

    • KVM

      • BIOS: funciona con la configuración predeterminada establecida por este rol. También se puede usar con iPXE.
      • UEFI: usa pxe_loader: 'Grub2 UEFI' con la configuración predeterminada de este rol. También se puede usar con iPXE.
    • HyperV:

      • Gen1 (BIOS): funciona con la configuración predeterminada establecida por este rol hasta CentOS7, CentOS8 y lo siguiente requieren Gen2.
      • Gen2 (UEFI): requiere iPXE, debes desactivar SecureBoot.
  • Arranque local

Para habilitar iPXE, establece foreman_deploy_ipxe: true y usa pxe_loader: 'None' para tus SO.

Error: Error al crear sistemas operativos

Elimina todos los sistemas operativos de Hosts -> Sistemas operativos (no puedes eliminar el que contiene el servidor de foreman).

Limitación: Los recursos con contraseñas siempre cambian

Debido a que los módulos de Foreman no pueden ver la contraseña actual establecida para los campos de contraseña, no pueden compararse.

Por lo tanto, estos siempre cambian (sistemas operativos, credenciales de repositorio ascendente, etc.). Esto puede causar acciones adicionales dependiendo del recurso que se cambie. Hasta ahora, esto no ha demostrado ser problemático, pero la ejecución del play puede tardar un poco más debido a ello.

Limitación: Los grupos de hosts siempre usan la primera tabla de particiones en la lista

Como los Grupos de Hosts son el resultado combinado de Claves de Activación, Sistemas Operativos y Ciclos de Vida, la cantidad de configuraciones disponibles es limitada. En el momento de escribir esto, el rol configurará todos los grupos de hosts con la misma Tabla de Particiones.

A continuación se muestra un ejemplo para una implementación con una tabla de particiones diferente:

# La tabla de particiones a continuación está configurada para ignorar
# todos los discos excepto el primero para la partición automática.
# Ten en cuenta que no autodetecta tipos de disco (vd o sd)
# por lo que deberás codificar el disco que se utilizará.
foreman_partition_tables:
  - name: 'Kickstart default first disk only'
    os_family: 'Redhat'
    layout: |
      <%#
      kind: ptable
      name: Kickstart default first disk only
      model: Ptable
      description: Administrado por Ansible, tus cambios se perderán
      %>
      zerombr
      clearpart --all --initlabel
      ignoredisk --use-only=sda
      autopart <%= host_param('autopart_options') %>

foreman_operating_systems:
  - name: 'CentOS'
    major_version: 7
    arch:
     - 'x86_64'
    os_family: 'Redhat'
    kickstart: true
    kickstart_repo: 'CentOS7-Base'
    partitions:
      - 'Kickstart default first disk only'
    root_pass: 'some_password'
    parameters:
      - name: 'autopart_options'
        value: '--nohome'
Acerca del proyecto

Ansible toolkit for Foreman

Instalar
ansible-galaxy install thulium_drake.foreman
Licencia
gpl-3.0
Descargas
1.4k
Propietario