GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo instalar Puppet en CentOS 8 / RHEL 8

Puppet es una herramienta de gestión de configuración de código abierto que nos ayuda a automatizar la infraestructura de TI, incluido el aprovisionamiento, la gestión de configuración y la aplicación de parches a cientos de sistemas cliente desde la ubicación central.

Puppet está disponible para los sistemas operativos Linux, Mac, BSD, Solaris y Windows. Está escrito en lenguaje "Ruby" y publicado bajo Licencia Apache,

Esta guía lo ayuda a instalar Puppet en CentOS 8 / RHEL 8.

Arquitectura

Pupper está configurado en una arquitectura agente-maestro. En esta arquitectura, los nodos administrados ejecutan el software del agente de títeres, como un servicio en segundo plano. Por otro lado, uno o más servidores ejecutan la aplicación maestra, es decir. Servidor de marionetas.

El agente de marionetas envía información periódicamente al titiritero y solicita un catálogo. El maestro compila y devuelve el catálogo de ese nodo en particular, utilizando las fuentes de información a las que tiene acceso.

Entorno

Aquí, configuraremos una marioneta en la arquitectura del servidor/agente.

Titiritero

Nombre de host: marionetaservidor.itzgeek.local

Dirección IP: 192.168.0.10

Sistema operativo: Cent OS 8

Cliente títere

Nombre de host: cliente.itzgeek.local

Dirección IP: 192.168.0.20

Sistema operativo: Cent OS 8

Requisitos

Instalar NTP

El tiempo de los nodos maestro y cliente debe estar sincronizado con precisión con el servidor NTP porque el servidor Puppet actuará como la autoridad de certificación.

Si necesita configurar el servidor NTP, entonces:

LEER: Cómo configurar el servidor NTP usando Chrony

Si necesita configurar el Cliente NTP, entonces:

LEER: Cómo configurar el cliente NTP usando Chrony

Si es necesario, cambie también la zona horaria del sistema.

LEER :Cómo cambiar la zona horaria en CentOS 8 / RHEL 8

DNS

El agente de Puppet usa el nombre de host para comunicarse con el servidor de Puppet. Por lo tanto, asegúrese de que los nodos de los agentes puedan resolver el nombre de host del Puppet Server con la ayuda del archivo /etc/hosts o del servidor DNS.

Instalar y configurar el servidor Puppet

Puppet Server es el software de servidor que se ejecuta en el nodo maestro. Puppet Server controla las configuraciones de los nodos gestionados (puppet-agent).

Agregar repositorio

Para instalar el servidor de marionetas, necesitaríamos agregar el repositorio de marionetas instalando el paquete de configuración del repositorio.

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

Instalar Marioneta

Instale el servidor Puppet usando el siguiente comando.

yum install -y puppetserver

Asignación de memoria

De manera predeterminada, Puppet Server está configurado para usar 2 GB de memoria. Puede cambiar la asignación de memoria según la cantidad de nodos conectados a ella.

Para esta demostración, asignaré 512 MB de memoria.

Para cambiar el valor de la asignación de memoria, edite el siguiente archivo.

vi /etc/sysconfig/puppetserver

Cambia el valor.

De:

JAVA_ARGS="-Xms2g -Xmx2g -Djruby.logger.class=com.puppetlabs.jruby_utils.jruby.Slf4jLogger"

Para:

Para 512 MB, use la siguiente configuración.

JAVA_ARGS="-Xms512m -Xmx512m -Djruby.logger.class=com.puppetlabs.jruby_utils.jruby.Slf4jLogger"

Configurar servidor de marionetas

El archivo de configuración de Puppet consta de dos secciones denominadas [maestro] y [principal] para el servidor y el agente de Pupper, respectivamente.

vi /etc/puppetlabs/puppet/puppet.conf

Modifique el archivo según su entorno. Los agentes Pupper pueden usar cualquiera de los nombres de host mencionados en dns_alt_names para conectarse con el servidor Pupper.

# Pupper Server Configuration
[master]
dns_alt_names = puppetserver,puppetserver.itzgeek.local

# Puppet Agent Configuration
[main]
certname = puppetserver.itzgeek.local
server = puppetserver.itzgeek.local
runinterval = 30m

Iniciar servidor de marionetas

Genere la CA de firma raíz e intermedia para Puppet Server.

puppetserver ca setup
Output:

Generation succeeded. Find your files in /etc/puppetlabs/puppet/ssl/ca
Si obtiene el comando puppetserver:no encontrado, ejecute source /etc/profile.d/puppet-agent.sh en la terminal o cierre sesión en la sesión actual y vuelva a iniciarla.

Inicie y habilite el servidor de marionetas.

systemctl start puppetserver

systemctl enable puppetserver

Cortafuegos

El servidor de Puppet escucha en el puerto 8140. Por lo tanto, configure el firewall para permitir que los agentes puedan conectarse al maestro.

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

firewall-cmd --reload

Instalar y configurar Puppet Agent

Agregar repositorio

Para instalar el agente de Puppet, necesitaríamos agregar el repositorio de Puppet en todos los nodos.

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

Agente de instalación

Instale el agente de marionetas en su cliente usando el siguiente comando.

dnf install -y puppet-agent

Edite el archivo de configuración de marionetas y configure la información del servidor de marionetas.

Establezca el valor del servidor según el nombre de host de su servidor Puppet. En mi caso, el servidor es puppetserver.itzgeek.local y certname es el nombre de host de mi cliente (client.itzgeek.local).

vi /etc/puppetlabs/puppet/puppet.conf

Establecer como a continuación.

[main]
server = puppetserver.itzgeek.local
certname = client.itzgeek.local
runinterval = 30m

Puede cambiar el valor de runinterval según el requisito. Esta configuración controla cuánto tiempo debe esperar el agente entre las dos solicitudes de catálogo. Puede establecer el valor en segundos (10 o 10 s), minutos (10 m) y horas (1 h).

Inicie el agente de marionetas en el nodo y haga que se inicie automáticamente al arrancar el sistema.

puppet resource service puppet ensure=running enable=true
Output:

Notice: /Service[puppet]/ensure: ensure changed 'stopped' to 'running'
service { 'puppet':
  ensure   => 'running',
  enable   => 'true',
  provider => 'systemd',
}
Si obtiene el comando puppet:no encontrado, ejecute source /etc/profile.d/puppet-agent.sh en la terminal o cierre sesión en la sesión actual y vuelva a iniciar sesión.

Firmar certificado de nodo de agente en el servidor maestro

Debemos aprobar una solicitud de certificado proveniente de cada nodo. Los nodos de agente solicitarán certificados por primera vez si intentan ejecutarse.

Ejecute el siguiente comando en el nodo del agente para realizar una conexión inicial. Puede ignorar las advertencias/errores.

puppet agent -t

Inicie sesión en el servidor Pupper y ejecute el siguiente comando para ver las solicitudes pendientes.

puppetserver ca list
Output:

Requested Certificates:
    client.itzgeek.local       (SHA256)  06:D8:8E:AE:CA:0B:B1:E7:90:B5:B9:1B:75:3C:95:69:D8:EF:27:0A:5D:CC:45:BB:15:34:64:D2:6B:2C:CA:98

Ejecute el comando de firma de certificado de marioneta para firmar una solicitud.

puppetserver ca sign --certname client.itzgeek.local
Output:

Successfully signed certificate request for client.itzgeek.local

El servidor Puppet ahora puede comunicarse con la máquina cliente y controlar el nodo.

Si tiene varias solicitudes de firma de nodos, puede firmar todas las solicitudes en un solo comando.

puppetserver ca sign --all

A veces, es posible que deba revocar el certificado de un nodo en particular para volver a leerlo.

Reemplace con el nombre de host de su cliente.

puppetserver ca revoke --certname AGENT_NAME

Puede enumerar todas las solicitudes firmadas y sin firmar con el siguiente comando.

puppetserver ca list --all
Output:

Signed Certificates:
    puppetserver.itzgeek.local       (SHA256)  E6:2C:6C:1E:9B:C6:AA:D9:84:09:F3:67:45:1B:36:C6:1F:FB:46:5F:92:64:37:19:E3:74:0C:0D:29:D5:C5:F6  alt names: ["DNS:puppetserver.itzgeek.local", "DNS:puppetserver", "DNS:puppetserver.itzgeek.local"]  authorization extensions: [pp_cli_auth: true]
    client.itzgeek.local             (SHA256)  EF:D8:1A:F2:E9:56:A3:1F:DA:A9:8D:9B:71:02:D8:52:F1:44:98:92:A7:5F:DE:FC:5F:55:37:97:EC:9C:9A:96

Verificar cliente de Puppet

Una vez que Puppet Server haya firmado su certificado de cliente, ejecute el siguiente comando en la máquina del cliente para probarlo.

puppet agent --test
Output:

Info: Using configured environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Retrieving locales
Info: Caching catalog for client.itzgeek.local
Info: Applying configuration version '1591351483'
Notice: Applied catalog in 0.01 seconds

Conclusión

Ese es Al. Espero que haya aprendido a instalar Puppet en CentOS 8/RHEL 8. Como lectura adicional, aprenda a crear un archivo de manifiesto simple para crear un archivo y un directorio en el nodo del cliente. Comparta sus comentarios en la sección de comentarios.


Cent OS
  1. Cómo instalar el servidor de correo postfix en RHEL 8 / CentOS 8

  2. Cómo instalar un servidor DNS en RHEL 8 / CentOS 8 Linux

  3. Cómo instalar Puppet 6.x en CentOS 7 / RHEL 7

  4. Cómo instalar Puppet en RHEL 8/CentOS 8

  5. CentOS / RHEL 7:Cómo instalar la GUI

Cómo instalar Zabbix Server 4.x en CentOS 6 / RHEL 6

Cómo instalar el servidor web Jetty en CentOS 7 / RHEL 7

Cómo instalar el servidor Zabbix 5.0/4.0 en CentOS 7/RHEL 7

Cómo instalar el servidor VNC en CentOS 8 / RHEL 8

Cómo instalar el servidor Zabbix 5.0/4.0 en CentOS 8/RHEL 8

Cómo instalar Puppet Server en CentOS 7