Domina tus servidores con Foreman (segunda parte)

Continuamos con la segunda parte sobre la plataforma Foreman, en este caso veremos su instalación en un servidor CentOS 7. Es importante remarcar que va a ser una instalación a medida teniendo en cuenta un factor importante, ya que estoy muy interesado en utilizar un plugin esencial, llamado Katello, que nos permitirá gestionar de manera centralizada los parches y erratas de los servidores que gestionemos.

Antes de nada, definamos conceptos que vamos a utilizar y que es importante que queden claros:

  • Pulp: Sirve para el parcheo y gestión de contenidos.
  • Candlepin: Suscripción y gestión de derechos.
  • Katello: Workflow unificado y webUI para contenido (Pulp) y suscripciones (Candlepin)

Simplificando Katello se encarga de gestionar de manera centralizada los repositorios, parches y despliegues distribuidos de contenido. Todos estos proyectos han sido promovidos y en gran parte desarrollados por Red Hat, como continuación del ya antiguo proyecto Spacewalk.

Requisitos de Foreman y Katello

Al querer utilizar Katello necesitamos más “chicha” en nuestro servidor, los requisitos mínimos son los siguientes:

  • 2 CPU (no hace falta que sean físicos, aunque sería lo deseable)
  • 8 GB de memoria, aunque lo ideal sería por lo menos 12 GB

Es importante que el punto de montaje /var/lib/pulp, tenga mucho espacio, hay que tener en cuenta que los repositorios se ubicarán ahí. Yo le daré 100 GB de espacio, aunque para entornos profesionales si le podemos dar 500 GB o 1 TB mejor que mejor. En cualquier caso siempre podemos utilizar LVM y ampliar el disco a posteriori. Por otra parte tenemos que otorgar unos 10 GB a la ubicación /var/spool/squid. Además en la ubicación /var/lib/mongodb, le otorgaremos 4 GB Para el sistema de ficheros de root con 20 GB de espacio tenemos más que suficiente, por lo que en mi caso quedará así:

  • /boot – 512 MB (sistema ficheros ext2)
  • /home – 4 GB (sistema ficheros ext4)
  • /var/lib/pulp – 100 GB (sistema ficheros ext4)
  • /var/spool/squid – 10 GB (sistema ficheros ext4)
  • /var/lib/mongodb – 4 GB (sistema ficheros ext4)
  • /var/log – 5 GB (sistema ficheros ext4)
  • / – 25 GB (sistema ficheros ext4)
  • SWAP – 2 GB

En mi caso ha quedado así:

Además de esto necesitamos utilizar una serie de puertos, que tendrás que estar accesibles en el servidor, son los siguientes:

  • 80 TCP – HTTP
  • 443 TCP – HTTPS
  • 5647 – TCP – qdrouterd (usado por los clientes)
  • 9090 – TCP – HTTPS – usado para la comunicación con el Smart proxy

En entornos de producción los sistemas operativos recomendados son RHEL en sus versiones 6 y 7 al igual que en CentOS.

Instalación de repositorios

Desde la web de Foreman podemos ver que repositorios tenemos que utilizar según nuestra distribución, en mi caso serían:

  1. yum -y localinstall http://fedorapeople.org/groups/katello/releases/yum/3.2/katello/el7/x86_64/katello-repos-latest.rpm
  2. yum -y localinstall http://yum.theforeman.org/releases/1.13/el7/x86_64/foreman-release.rpm
  3. yum -y localinstall https://yum.puppetlabs.com/puppetlabs-release-pc1-el-7.noarch.rpm # will install with Puppet 4
  4. #yum -y localinstall http://yum.puppetlabs.com/puppetlabs-release-el-7.noarch.rpm # use this instead if you prefer Puppet 3
  5. yum -y localinstall http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
  6. yum -y install foreman-release-scl

Antes de continuar abriremos los puertos en el firewall:

  1. firewall-cmd --zone=public --add-port=80/tcp --permanent
  2. firewall-cmd --zone=public --add-port=443/tcp --permanent
  3. firewall-cmd --zone=public --add-port=5647/tcp --permanent
  4. firewall-cmd --zone=public --add-port=9090/tcp --permanent

Añadido deshabilitar SELINUX

  1. vi /etc/selinux/config
  2. #Dejar la línea así:
  3. SELINUX=disabled

Para que se apliquen los cambios debemos reiniciar el servidor.

Actualizamos los repositorios e instalamos Katello:

  1. yum update
  2. yum -y install katello

Antes de nada, importante, nuestro servidor tiene que tener un nombre FQDN adecuado, en mi caso foreman.ochobitsunbyte.pw

Instalamos Foreman, preparado para katello:

  1. foreman-installer --scenario katello

El proceso puede tardar un rato. Recuerda apuntar la contraseña que te mostrará para poder acceder por primera vez. Si por algún caso la pierdes, siempre la puedes resetear escribiendo desde la consola: foreman-rake permissions:reset

Ahora sí, ya podemos acceder vía web:

Una vez dentro recuerda ir a la sección de «Administrar» y «Usuarios» cambiar la contraseña.

Pues esto es todo para hoy. En los próximos capítulos veremos su funcionamiento.

Fuentes consultadas:

medium.com | erwan.com