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
- Preinstalación de Puppet
- Instalar y configurar el servidor Puppet
- Instalar y configurar el agente de Puppet
- Verificar la configuración del Agente Puppet
- 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 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.
– 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
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.
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
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:
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.
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.
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.
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.