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
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.
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
Configurar el Sistema Operativo
Cargar la Tabla de particiones previamente hecha
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
Asociar las plantillas al S.O.
Generar la plantilla Predeterminada
**Ahora hay que volver otra vez al sistema operativo y editar el apartado plantillas añadiendo las que hemos creado
Dominios
También hay que crear los dominios sobre los que vamos a trabajar, esto está en la pestaña Infraestructura –> dominios
Subredes
A continuación hay que crear una subred, para ello ir a la sección Infraestructura –> subredes
Rellenar los campos con los datos correspondientes
Añadir al dominio que hemos creado previamente
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