Foreman: Guía definitiva

Foreman: Guía definitiva

Como he explicado en posts anteriores de Foreman, es un sistema dedicado a la gestión de ciclos de vida de los hosts. Pero no se queda solo ahí, además de interactuar con puppet, es capaz de integrar diferentes servicios, tales como; DNS, DHCP, FreeIPA, SSH, TFTPd, PXE… Y es compatible con diferentes herramientas como; OpenSCAP, Ansible, VMware, OpenStack, oVirt, Docker… De este modo hace que desde una herramienta se puedan controlar varios escenarios de un modo muy automatizado.

En este post, explicaré una instalación avanzada con todos los requisitos necesarios, y el como gestionar los módulos y demás opciones que nos brinda esta herramienta.

Instalación

Para la instalación utilizaremos un CentOS

Preparación

Hosts

Editar el archivo /etc/hosts y poner la entrada correcta

NTP

Instalar NTP y actualizar la hora

Memcached

Instalar memcached

Iniciarlo y habilitarlo para el inicio del sistema

IPv6

Deshabilitar IPv6

Aplicar cambios

Selinux

Firewalld

Deshabilitar el firewalld

Repositorios

Añadir los repos necesarios

Actualizar el sistema

Reiniciar el sistema para aplicar todos los cambios

Foreman

Instalar el paquete foreman-installer

Empezar con la configuración de foreman.

Nota: Con la opción -i se hace interactivo y elegir los parámetros y plugins que se quieren instalar.

Si se quiere editar mediante archivo de texto, su ruta es: “/etc/foreman-installer/scenarios.d/foreman-answers.yaml”

Para empezar con la instalación ejecutar:

Ejemplo:

Si se quiere cambiar algo, se puede cambiar. Y si no, seleccionar la opción 53 para que empiece la instalación.

Plugins

Algunos de los plugins instalados son:

  • ansible: para control de ansible
  • bootdisk: para poder crear ISOs a partir de las plantillas
  • cockpit: control de hosts remotamente (logs, servicios, terminal, networking…)
  • default_hostgroup: Añadir los hosts a un grupo predefinido si no tienen uno
  • dhcp_browser: GUI para editar las leases del dhcp
  • discovery:Para habilitar la detección MaaS
  • docker: Para desplegar y gestionar dockers desde foreman
  • memcache: Para incrementar el rendimiento cacheando peticiones
  • openscap: Gestionar las vulnerabilidades de los hosts
  • tasks: Plugin para gestión de tareas
  • templates: Para sincronizar las community templates
  • abrt: Plugin para centralizar el reporting de bugs de los hosts
  • pulp: Plugin para gestión de repositorios y paquetes en sistemas basados en RHEL
  • remote_execution_ssh: Para ejecutar comandos remotos a través de SSH

 

Nota: si algo falla revisar el log

Una vez terminado todo el proceso de instalación, tiene que salir el siguiente mensaje:

Nota: En el caso de que falle, volver a lanzar foreman-installer porque puede que no haya configurado el proxy correctamente.

Habilitar los servicios necesarios

Configuración

Primeros pasos

Para empezar a configurarlo, hay que acceder a la web:

Para iniciar sesión, el usuario es el que nos indica al acabar la instalación.

Subredes

Para crear subredes, la forma correcta es editar el archivo de configuración de DHCP y luego importar las redes desde Foreman

Reiniciar el demonio dhcp

Y por último ir al apartado de foreman “Infraestructura –> Proxis inteligentes” e importar las subredes ipv4

Configurar la interfaz importada

Luego quedaría configurar los proxis y el range en el apartado de “Infraestructura –> Subredes”

Nota: Si se van a servir IPs de otra interfaz, hay que añadir la interfaz en /etc/sysconfig/dhcpd y reiniciar el servicio

NotaII: Si se crean redes fireferentes a la principal, hay que crear también los archivos de DNS inverso

Desplegar hosts

Para desplegar hosts, seguir el siguiente post

Configuración de módulos

OpenScap

Cargar los SCAP Contents desde la terminal

Instalar el modulo de scap de foreman

Una vez instalado el módulo, hay que crear las policies

Crear la Nueva Policy

Empezar con la configuración

Una vez creado quedaría así

Ahora queda, configurar el modulo de openscap de foreman y desplegarlo en los hosts. Para eso, hay que ir a clases y editarlo

Y configurar los campos:

Una vez hecho esto, hay que desplegar el modulo sobre el host y ya se puede lanzar el informe de la siguiente manera. Ir al host sobre el que queremos ejecutarlo y darle a run OpenSCAP scan

Y para ver los resultados, hay que ir a “Hosts –> Informes”

Nota: hay que pasarle la ssh-key de root de foreman al host contra el que se va a lanzar el escaneo.

Cockpit

Añadir lo patches en los siguientes ficheros:

Para poder interactuar con los hosts, es necesario instalarles un agente. Se puede instalar el agente desde aquí o instalarlo mediante módulos de puppet en foreman y luego desplegarlo.

Si se quiere hacer algún cambio en el cliente:

Memcached

Docker

DockerServer

Deshabilitar IPv6

Instalar en el Docker server

Habilitar el servicio

Exponer el socket de docker

Deshabilitar y parar firewalld

Iniciar docker

Ahora, en el apartado de compute resource, crear el recurso docker

 

Desplegar un contenedor

Para esto, hay que ir a “Contenedores –> Nuevo contenedor”, seleccionar el servidor de docker creado previamente y “Siguiente”

En el siguiente paso, desde “Central Docker” que es DockerHub, buscamos una imagen que nos interese y ponemos el tag.

 

Configurar el contenedor con las opciones que necesitemos

Por último, configurar el entorno y crear el contenedor

Y ya estaría creado

Para ver los contenedores gestionados, hay que ir a “Contenedores –> Todos los contenedores”

Troubleshootig/Tips

Los environmnets no cargan los fliles de los módulos correctos

Editar el environment.conf del environment y añadir lo siguiente para hacer un override de los módulos generales. Si se quieren añadir mas paths porque se llaman a otros módulos también añadir.

Hacer que foreman solo reparta IPs a los hosts gestionados por el

Para esto, hay que editar el archivo /etc/dhcp/dhcpd.conf y añadir la siguiente línea

Una vez hecho esto, reiniciar el servicio

 

Este post irá creciendo a medida que vaya encontrando cosas interesantes

 

Links:

https://theforeman.org/training.html

https://github.com/NETWAYS/foreman-training

Puppet & Foreman : The scalable way

No Comments

Post A Comment

CAPTCHA