The Foreman: Herramienta de ciclos de vida para Puppet

The foreman, es una herramienta de ciclos de vida, que aprovisiona, configura y monitoriza sistemas. Utiliza por defecto Puppet para configurar equipos pero también se puede integrar con salt, chef o ansible. Es una herramienta muy útil ya que mediante el sistema PXE se puede aprovisionar una máquina desde cero y luego configurarla con puppet. De este modo, todo el proceso es automático, sencillo y limpio.

Prerequisitos

Para empezar, hay que asegurarse de que el archivo /etc/hosts está bien definido. Tiene que tener la siguiente estructura

IP   FQDN   NombreHost

Ejemplo:

192.168.1.100   theforeman.ichasco.com   theforeman

Reconfigurar las locales y añadir en_US.UTF-8 como primaria porque si no en la instalación PostgreSQL fallará (esto solo hay que hacerlo si se instala con PostgreSQL)

dpkg-reconfigure locales

locales

locales2

Una vez hecho esto, instalar el paquete ca-certificates para poder instalar paquetes desde direcciones https

apt install ca-certificates

Descargar e instalar el paquete que trae los repositorios y las claves de puppet

wget https://apt.puppetlabs.com/puppetlabs-release-pc1-jessie.deb
dpkg -i puppetlabs-release-pc1-jessie.deb

Añadir los repositorios de la versión 1.13 de foreman y la key

echo "deb http://deb.theforeman.org/ jessie 1.13" > /etc/apt/sources.list.d/foreman.list
echo "deb http://deb.theforeman.org/ plugins 1.13" >> /etc/apt/sources.list.d/foreman.list
wget -q https://deb.theforeman.org/pubkey.gpg -O- | apt-key add -

Instalación

Actualizar los repositorios e instalar el paquete foreman-installer para que instale foreman y todas sus dependencias

apt update && apt install foreman-installer

Ahora hay que ejecutar el instalador

foreman-installer

NOTA: Si se quiere configurar todos los parámetros de instalación. Se puede hacer con la opción -i. Con esta opción se podrían elegir todos los paquetes a instalar (dhcp, dns, bbdd…) y las configuraciones de estos. En la versión 1.13, da error al rellenar el parámetro del dns-forwarder.

foreman-installer -i

Una vez terminada la instalación, nos mostrará los parámetros que tenemos que saber para acceder

  Success!
  * Foreman is running at https://theforeman.ichasco.com
      Initial credentials are admin / airjnUaWixX8e4Gh
  * Foreman Proxy is running at https://theforeman.ichasco.com:8443
  * Puppetmaster is running at port 8140
  The full log is at /var/log/foreman-installer/foreman.log

Para mayor comodidad, es recomendable el hacer un enlace simbólico de puppet a /usr/bin.

ln -s /opt/puppetlabs/puppet/bin/puppet /usr/bin/puppet

Y también el instalar el módulo de vim para puppet

vim-addons -w install puppet

Configuración

Lo primero de todo, es cambiar la contraseña. Para ello:

Admin User (arriba a la derecha) –> Mi cuenta –> Cambiar la contraseña

Ahora toca empezar con la configuración de lo que es el sistema de provisión

Tablas de particiones

Para empezar, vamos a meternos con las tablas de particiones. En este apartado como en el de plantillas de provisión, es recomendable hacer un clon de estas si se van a editar. Las plantillas van en función del sistema operativo que se quiera implantar. Por ejemplo Preseed sería para sistemas Debian.

Tabla_Particiones

Sistema Operativo

Ahora crearemos un sistema operativo, para esto, vamos a la sección de Hosts –> Sistemas Operativos y le damos a crear uno. En este caso va a ser un Debian

Sistema Operativo 1

Configurar el Sistema Operativo

Sistema Operativo 2

Cargar la Tabla de particiones previamente hecha

Sistema Operativo 3

Elegir el medio de instalación

Plantillas de provisión

Una vez llegados a este punto, hay que darle a enviar y configurar las plantillas de provisión. Para esto, hay que clonar Preseed Default, Preseed default finish, Preseed default iPXE y Preseed default PXELinux. En estas se puede editar el idioma, programas a instalar (esto es recomendable hacerlo con el puppet)… Una vez editado lo que se quiera de la plantilla, hay que asociarla al sistema operativo creado. Y cuando estén todas configuradas, darle al botón de Generar PXE predeterminado

Plantilla de provisonAsociar las plantillas al S.O.

 

Plantilla de ProvisionGenerar la plantilla Predeterminada

 

**Ahora hay que volver otra vez al sistema operativo y editar el apartado plantillas añadiendo las que hemos creado

Sistema operativo 4

Dominios

También hay que crear los dominios sobre los que vamos a trabajar, esto está en la pestaña Infraestructura –> dominios

dominios

Subredes

A continuación hay que crear una subred, para ello ir a la sección Infraestructura –> subredes

subredes

Rellenar los campos con los datos correspondientes

subredes2

Añadir al dominio que hemos creado previamente

 

subred3

Indicar que el proxy ftp será el propio puppetmaster

Entornos

Es recomendable crear entornos para luego poder aprovisionar las máquinas de una forma ordenada. Para ello hay que crearlos mediante la terminal en  /etc/puppetlabs/code/environments. Si se quiere se puede hacer una copia del de producción. Y una vez creado si se le da a “Importar de <nombre_puppetmaster>” importará todos los nuevos que se hayan creado. Y una vez creado, aquí hay que crear todos los módulos que queramos usar y una vez creados, hay que ir a configurar –> clases y darle a “Importar de <nombre_puppetmaster>” y se importarán todas las clases que se hayan creado o instalado.

 

Con esto, terminamos el post de the foreman. Solo quedaría el empezar a crear máquinas y aprovisionaras.

Manual de the foreman: https://theforeman.org/manuals/1.1/#1.Foreman1.1Manual

One comment

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *