C贸mo configurar Puppet Master y Agent en CentOS 8

Establecer el nombre de host del servidor

Puppet es una herramienta de administraci贸n de configuraci贸n de c贸digo abierto y un marco de automatizaci贸n de servidores. Puppet puede ejecutarse en sistemas operativos similares a Unix, as铆 como en los sistemas Microsoft Windows. Le permite administrar y realizar tareas administrativas y la configuraci贸n de cientos de sistemas desde un servidor maestro.

En este tutorial, le mostrar茅 c贸mo instalar Puppet en CentOS 8. Instalar茅 y configurar茅 un servidor CentOS 8 como ‘maestro’ de t铆teres y el otro como ‘agente’.

requisitos previos

  • 2 o m谩s servidores CentOS 8
  • Privilegios de ra铆z

Lo que haremos:

  • Preinstalaci贸n de Puppet
  • Instalar y configurar el servidor Puppet
  • Instalar y configurar el agente de Puppet
  • Verificar la configuraci贸n del agente de Puppet
  • Crear el primer manifiesto de Puppet

Paso 1: instalaci贸n previa de la marioneta

En este primer paso, prepararemos los servidores maestro y agente para la instalaci贸n de la marioneta. Vamos a configurar hosts y FQDN del servidor, configurar el servidor NTP y agregar el repositorio de t铆teres para el servidor CentOS 8.

Configurar nombres de host

En primer lugar, configuraremos hosts y FQDN para ambos servidores. El titiritero tendr谩 un nombre de host ‘master’ con el FQDN ‘master.hakase-labs.io’, y el agente tendr谩 el nombre de host ‘agent01’ con el FQDN ‘agent01.hakase-labs.io’.

Configure el nombre de host usando el comando ‘hostnamectl’ a continuaci贸n.

hostnamectl set-hostname hostname

Despu茅s de eso, edite el archivo ‘/etc/hosts’ para configurar el servidor FQDN.

vim /etc/hosts

Cambie la direcci贸n IP y el nombre de dominio por los suyos propios y p茅guelos.

10.5.5.21聽聽 master.hakase-labs.io聽聽 master
10.5.5.22聽聽 agent01.hakase-labs.io聽 agent01

Guardar y cerrar.

Ahora reinicie el servicio con nombre de host para aplicar un nuevo nombre de host y FQDN.

systemctl restart systemd-hostnamed

Y despu茅s de eso, verifique el nombre de host y el FQDN usando el siguiente comando.

hostname
hostname -f

Y obtendr谩 un nuevo nombre de host y FQDN se ha configurado y aplicado al sistema.

Establecer el nombre de host del servidor

Configurar servidor NTP

Para el servidor NTP, usaremos 芦chrony禄 para nuestros servidores.

Instale chrony usando el comando dnf a continuaci贸n.

dnf install chrony

Despu茅s de eso, edite la configuraci贸n de chrony ‘/etc/chrony.conf’ usando el editor vim.

vim /etc/chrony.conf

Ahora cambie el servidor de la piscina con la piscina m谩s cercana de su pa铆s. Puede verificar el NTP del grupo disponible usando el ‘https://www.pool.ntp.org/zone/COUNTRYID‘.

Copie todos los servidores NTP disponibles de su pa铆s y p茅guelos en el archivo ‘chrony.conf’ como se muestra a continuaci贸n.

server 0.id.pool.ntp.org iburst
server 1.id.pool.ntp.org iburst
server 2.id.pool.ntp.org iburst
server 3.id.pool.ntp.org iburst

Guardar y cerrar.

Ahora inicie el servicio chronyd y agr茅guelo al tiempo de arranque de inicio.

systemctl start chronyd
systemctl enable chronyd

La configuraci贸n del servidor NTP se ha completado.

Configurar fecha y hora

Agregar repositorio de Puppet para CentOS 8

Para el servidor CentOS 8 del repositorio de Puppet, puede instalarlo manualmente usando el comando rpm como se muestra a continuaci贸n.

sudo rpm -Uvh https://yum.puppet.com/puppet6-release-el-8.noarch.rpm

Despu茅s de eso, verifique todos los repositorios disponibles en el sistema usando el comando dnf a continuaci贸n.

dnf repolist

Y obtendr谩 que el repositorio de Puppet se ha agregado al sistema CentOS 8.

Agregar repositorio de Puppet

Deshabilitar SELinux

Para deshabilitar SELinux, puede editar la configuraci贸n ‘/etc/sysconfig/selinux’ usando el editor vim.

vim /etc/sysconfig/selinux

Ahora cambie la configuraci贸n del valor ‘SELINUX’ a 芦deshabilitado禄.

SELINUX=disabled

Guarde y cierre, luego reinicie el servidor.

sudo reboot

Una vez que haya iniciado sesi贸n nuevamente, verifique el estado de SELinux usando el siguiente comando.

sestatus

Y obtendr谩 el estado de SELinux deshabilitado.

Paso 2: instalar y configurar Puppetserver

En este paso, instalaremos y configuraremos el servidor de Puppet en el nodo principal.

Instale el servidor de Puppet usando el comando dnf a continuaci贸n.

sudo dnf install puppetserver

Despu茅s de eso, necesitamos editar la ‘configuraci贸n de inicio’ para el servidor de Puppet y cambiar la asignaci贸n de memoria dependiendo de la RAM que tengamos.

Edite la configuraci贸n de inicio de puppetserver que se encuentra en ‘/etc/sysconfig/puppetserver’ usando el editor vim.

vim /etc/sysconfig/puppetserver

Ahora cambie la configuraci贸n ‘JAVA_ARGS’ para la asignaci贸n de memoria seg煤n su RAM.

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

Guardar y cerrar.

A continuaci贸n, vaya al directorio ‘/etc/puppetlabs’ y edite el archivo de configuraci贸n de t铆teres ‘puppet.conf’.

cd /etc/puppetlabs/
vim puppet/puppet.conf

En la configuraci贸n maestra, defina los nombres alternativos de DNS con el FQDN del servidor maestro.

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

Despu茅s de eso, defina la configuraci贸n del servidor principal de Puppet como se muestra a continuaci贸n.

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

Guardar y cerrar.

Ahora agregue el servicio del servidor de Puppet al tiempo de arranque de inicio e inicie el servicio.

systemctl enable puppetserver
systemctl start puppetserver

El servidor de Puppet est谩 funcionando en el servidor CentOS 8 con el puerto TCP predeterminado ‘8140’.

Agregue el puerto del servidor de Puppet ‘8140’ al firewalld usando el siguiente comando.

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

Y como resultado, la instalaci贸n y configuraci贸n del maestro de Puppet se complet贸 con 茅xito.

Configurar el cortafuegos

Paso 3: instalar y configurar Puppet Agent

Despu茅s de instalar el servidor maestro de Puppet ‘master.hakase-labs.io’, vamos a instalar un agente de t铆teres en el servidor ‘agent01’.

Inicie sesi贸n en el servidor ‘agent01’ e instale el paquete puppet-agent usando el comando dnf a continuaci贸n.

sudo dnf install puppet-agent

Despu茅s de eso, vaya al directorio ‘/etc/puppetlabs’ y edite el archivo de configuraci贸n ‘puppet.conf’ usando el editor vim.

cd /etc/puppetlabs/
vim puppet/puppet.conf

Cambie la configuraci贸n de ‘certname’ y ‘server’ por la suya propia y p茅guela en la configuraci贸n.

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

Guardar y cerrar.

A continuaci贸n, inicie el servicio de t铆teres y registre el agente de t铆teres en el servidor maestro con el siguiente comando.

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

Y obtendr谩 el resultado de la siguiente manera.

Iniciar servicio de Puppet

El agente de t铆teres ya est谩 funcionando, est谩 intentando registrarse en el servidor maestro de t铆teres.

Ahora regrese al servidor maestro de Puppet y verifique las solicitudes de certificados pendientes.

/opt/puppetlabs/bin/puppetserver ca list

Y obtendr谩 el certificado ‘agent01.hakase-labs.io’ en la lista.

Ahora firme el certificado ‘agent01’ usando el siguiente comando.

/opt/puppetlabs/bin/puppetserver ca sign --certname agent01.hakase-labs.io

Y el agente t铆tere ahora se ha registrado en el servidor maestro.

Registrar agente t铆tere

Paso 4: verificar la configuraci贸n del agente de Puppet

Ahora verifique la configuraci贸n del agente de Puppet y pruebe la conexi贸n entre el agente de Puppet y el maestro usando el siguiente comando.

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

Y obtendr谩 el resultado de la siguiente manera.

Agente t铆tere de prueba

Como resultado, el agente de Puppet extrajo la configuraci贸n de Puppet Master y la aplic贸 al servidor sin ning煤n error.

Paso 5: crear el primer manifiesto

En esta etapa, se ha completado la instalaci贸n y configuraci贸n de Puppet para maestro y agente.

Y para este paso, probaremos nuestra configuraci贸n creando el primer manifiesto de Puppet para instalar el paquete httpd.

Vaya al directorio ‘/etc/puppetlabs/code/environments/production/manifests’ y cree el primer archivo de manifiesto de t铆teres ‘httpd.pp’.

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

vim httpd.pp


Pegue la siguiente configuraci贸n.

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

Guardar y cerrar.

Crear manifiesto

Ahora vaya al nodo del agente de Puppet ‘agente01’ y ejecute el siguiente comando.

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

Y se le mostrar谩 el resultado de la siguiente manera.

Agente t铆tere de prueba

El agente de Puppet extrajo una nueva configuraci贸n del maestro de Puppet para instalar el paquete httpd e iniciar el servicio httpd.

En el nodo ‘agent01′, verifique el estado del servicio httpd y verifique el puerto HTTP ’80’

systemctl status httpd
netstat -plntu

Y obtendr谩 el servicio httpd funcionando en el servidor ‘agent01′ con el puerto HTTP predeterminado ’80’. El paquete httpd se ha instalado a trav茅s del manifiesto de Puppet que hemos creado en la parte superior.

Comprobar el estado de httpd

Y como resultado, la instalaci贸n y configuraci贸n de Puppet master y agent en el servidor CentOS 8 se complet贸 con 茅xito.

Deja una respuesta

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