Cómo configurar Puppet Master y el Agente en CentOS 7

Puppet es una herramienta de gestión de la configuración de código abierto y un marco de automatización de servidores. Puppet puede ejecutarse en sistemas operativos tipo Unix, así como en los sistemas Microsoft Windows. Te permite gestionar y realizar tareas administrativas y la configuración de cientos de sistemas desde un servidor maestro.

En este tutorial, te enseñaré a instalar Puppet en CentOS 7. Instalaré y configuraré un servidor CentOS 7 como «maestro» de Puppet, y el otro como «agente».

Requisitos previos

  • 2 servidores CentOS 7
    • 10.0.15.10 master.hakase.io 2GB de memoria
    • 10.0.15.11 agent.hakase.io
  • Privilegios de root

Qué vamos a hacer

  1. Preinstalación de Puppet
  2. Instalar y configurar el servidor Puppet
  3. Instalar y configurar el agente de Puppet
  4. Verificar la configuración del Agente Puppet
  5. Crear el primer manifiesto de Puppet

Paso 1 – Preinstalación de Puppet

En este paso, realizaremos algunas tareas que incluyen la instalación y la configuración en ambos servidores, puppet master y puppet agent. Configuraremos el archivo del host, sincronizaremos la hora mediante el servidor NTP, desactivaremos SELinux y añadiremos el repositorio de puppet al sistema.

– Configurar los hosts

Conéctate al puppet master y al agente utilizando tu usuario root.

ssh [email protected]
ssh [email protected]

Ahora edita los hosts utilizando el editor vim.

vim /etc/hosts

Añade la siguiente configuración al final de la línea.

10.0.15.10      master.hakase.io
10.0.15.11      agent.hakase.io

Guarda y sal.

Ahora haz una prueba utilizando el comando ping.

ping master.hakase.io
ping agent.hakase.io

Y asegúrate de que obtienes la dirección IP del servidor 10.0.15.10 y 10.0.15.11.

Configurar el archivo de hosts

– Configurar el servidor NTP

Es muy importante mantener sincronizada la hora entre el servidor maestro y el agente.

Instala los paquetes NTP en ambos servidores mediante el comando yum.

yum -y install ntp ntpdate

Una vez completada la instalación, elige el pool NTP que desees ejecutando el comando que aparece a continuación.

sudo ntpdate 0.centos.pool.ntp.org

Ahora inicia el servicio NTP y habilítalo para que se inicie siempre al arrancar el sistema.

sudo systemctl start ntpd
sudo systemctl enable ntpd

La instalación y configuración del NTP se ha completado.

Configurar NTP

– Desactivar SELinux

Edita la configuración de SELinux usando vim.

vim /etc/sysconfig/selinux

Cambia el valor de SELINUX a «desactivado».

SELINUX=disabled

Guarda y sal.

– Añade el repositorio de Puppet

Ahora añade el repositorio de Puppet al sistema utilizando el siguiente comando rpm.

rpm -Uvh https://yum.puppetlabs.com/puppet5/puppet5-release-el-7.noarch.rpm

Añade el repositorio de títeres

Cuando esté completo, reinicia ambos servidores.

reboot

Ahora estamos listos para la instalación y configuración de Puppet.

Paso 2 – Instalar y configurar Puppetserver

En este paso, instalaremos el puppetserver en el servidor master.hakase.io. Instala puppetserver con el comando yum que aparece a continuación.

sudo yum -y install puppetserver

Una vez completada la instalación, tenemos que configurar la asignación de memoria para puppetserver. Estableceremos la asignación máxima de memoria para puppetserver en 1GB.

Edita la configuración de ‘puppetserver’ utilizando vim.

vim /etc/sysconfig/puppetserver

Cambia la línea que aparece a continuación.

JAVA_ARGS="-Xms1g -Xmx1g ...."

Guarda y sal.

A continuación, ve al directorio de configuración de puppet y edita el archivo ‘puppet.conf’.

cd /etc/puppetlabs/puppet
vim puppet.conf

Añade la siguiente configuración.

[master]
dns_alt_names=master.hakase.io,puppet

[main]
certname = master.hakase.io
server = master.hakase.io
environment = production
runinterval = 1h

Guarda y sal.

Ahora inicia el puppetserver y habilítalo para que se inicie siempre al arrancar.

systemctl start puppetserver
systemctl enable puppetserver

La instalación y configuración del Puppetserver se ha completado con éxito.

Configurar el servidor de títeres

Si utilizas firewalld en tu sistema, añade el puerto de puppetserver a la lista utilizando el comando firewall-cmd que aparece a continuación.

firewall-cmd --add-port=8140/tcp --permanent
firewall-cmd --reload

Configurar el cortafuegos

Paso 3 – Instalar y configurar el agente de Puppet

Vamos a instalar el agente de puppet en el servidor ‘agent.hakase.io’.

Instala el agente puppet utilizando el comando yum que aparece a continuación.

yum install -y puppet-agent

Una vez completada la instalación, ve al directorio de configuración de puppet y edita el archivo puppet.conf.

cd /etc/puppetlabs/puppet
vim puppet.conf

Pega la siguiente configuración.

[main]
certname = agent.hakase.io
server = master.hakase.io
environment = production
runinterval = 1h

Guarda y sal.

A continuación, registraremos el agente puppet en el maestro puppet.

Ejecuta el siguiente comando en el shell del agente puppet.

/opt/puppetlabs/bin/puppet resource service puppet ensure=running enable=true

El agente puppet se está ejecutando ahora en el servidor y está intentando registrarse en el maestro puppet.

Ahora vuelve al shell del maestro de marionetas y ejecuta el comando que aparece a continuación.

/opt/puppetlabs/bin/puppet cert list

Y obtendrás la solicitud de firma de certificado (CSR) pendiente del servidor del agente de títeres ‘agent.hakase.io’.

Firma el certificado con el siguiente comando.

/opt/puppetlabs/bin/puppet cert sign agent.hakase.io

Y el resultado debería ser similar al siguiente:

Configurar el agente puppet

El agente de puppet se está ejecutando ahora en el sistema, y el certificado para el agente ha sido firmado por el maestro de puppet.

Paso 4 – Verificar la configuración del Agente Puppet

Después de que el maestro de marionetas haya firmado el archivo del certificado para el agente, ejecuta el siguiente comando en el agente de marionetas para verificar la configuración.

/opt/puppetlabs/bin/puppet agent --test

Y obtendrás el resultado que se muestra a continuación.

Verificar la configuración del agente puppet

El agente de Puppet extrajo la configuración del puppet master y la aplicó al servidor sin ningún error.

Paso 5 – Crear el primer manifiesto

La instalación y configuración del puppet master y del agente se han completado. Y para este paso, crearemos un manifiesto sencillo para probarlo.

Crearemos el manifiesto para la instalación del servidor web Apache httpd.

En el servidor puppet master, ve al directorio ‘/etc/puppetlabs/code/’ y crea el nuevo archivo de manifiesto ‘site.pp’ utilizando vim.

cd /etc/puppetlabs/code/
cd environments/production/manifests

Crea un nuevo archivo de manifiesto.

vim site.pp

Pega la siguiente configuración.

node 'agent.hakase.io' {
    package { 'httpd':
        ensure  => "installed",
    }
    service { 'httpd':
        ensure => running,
    enable => true
    }
}

Guarda y sal.

Ahora abre el shell del servidor del agente puppet y ejecuta el siguiente comando.

/opt/puppetlabs/bin/puppet agent --test

El comando recuperará el nuevo archivo de configuración del manifiesto desde el maestro puppet y lo aplicará al servidor agente.

El resultado es el siguiente.

Crear el manifiesto de la marioneta

Abre tu navegador web y escribe la dirección IP del agente puppet.

http://10.0.15.11/

Y obtendrás la página HTTP por defecto que se muestra a continuación.

Página de prueba de Apache

El servidor web httpd se ha instalado mediante el manifiesto de puppet.

La instalación y configuración del Puppet Master y del Puppet Agent en CentOS 7 se ha completado con éxito.

Referencia

También te podría gustar...