GNU/Linux >> Tutoriales Linux >  >> Ubuntu

¿Cómo instalar y configurar Puppet 4 en CentOS y Ubuntu? [Maestro y Agente]

Puppet, una herramienta de gestión de configuración popularmente conocida para sistemas basados ​​en Unix y Windows que permite a un administrador automatizar fácilmente las tareas de administración del sistema repetitivas y propensas a errores, que incluyen el aprovisionamiento, la instalación de paquetes/software, configuraciones y gestión de toda la infraestructura. Puppet viene en dos sabores:Puppet Enterprise y Puppet de código abierto. Como sugiere el nombre, la versión empresarial es un producto comercial y la versión de código abierto se puede descargar gratis. Este tutorial cubrirá cómo instalar y configurar Puppet de código abierto (versión 4) en sistemas basados ​​en CentOS y Ubuntu.

Antes de comenzar con el procedimiento de instalación, comprendamos la arquitectura de la marioneta.

Arquitectura de Puppet Master/Agent

Puppet generalmente funciona según el modelo Cliente/Servidor, es decir, una arquitectura basada en Maestro/Agente, es decir, Puppet Master y Puppet Agent. El maestro de Puppet controla la información de configuración y los nodos de Puppet Agent administrados solicitan sus propios catálogos de configuración. El siguiente diagrama muestra el flujo de comunicación entre los nodos maestro y agente.

¿Qué es el catálogo?

El catálogo es un documento que contiene información sobre el estado deseado de un sistema. El maestro de marionetas compila el catálogo y los agentes de marionetas lo aplican.

Entorno de instalación de Puppet

En este tutorial, usaré dos nodos:puppetmaster.test.in (Puppet Master) y puppetagent.test.in (Puppet Agent) (son máquinas virtuales que se ejecutan en OpenStack)

¿Cómo instalar y configurar Puppet 4?

Paso 1: El primer paso es verificar la visibilidad de la red entre el nodo maestro y el agente. Deberá asegurarse de que estos dominios se resuelvan a través de DNS o desde un archivo de hosts.

En el nodo Puppet Master:

# ping puppetagent
 PING puppetagent.test.in (10.180.141.126) 56(84) bytes of data.
 64 bytes from puppetagent.test.in (10.180.141.126): icmp_seq=1 ttl=64 time=0.347 ms
 --- puppetagent.test.in ping statistics ---
 1 packets transmitted, 1 received, 0% packet loss, time 0ms
 rtt min/avg/max/mdev = 0.347/0.347/0.347/0.000 ms

En el nodo de Puppet Agent:

# ping puppetmaster
 PING puppetmaster.test.in (10.180.141.125) 56(84) bytes of data.
 64 bytes from puppetmaster.test.in (10.180.141.125): icmp_seq=1 ttl=64 time=0.711 ms
 64 bytes from puppetmaster.test.in (10.180.141.125): icmp_seq=2 ttl=64 time=0.316 ms
 --- puppetmaster.test.in ping statistics ---
 2 packets transmitted, 2 received, 0% packet loss, time 1000ms
 rtt min/avg/max/mdev = 0.316/0.513/0.711/0.198 ms

Paso 2: Instalar NTP

El nodo Puppet Master actuará como una C certificado A autoridad (CA) y emitir certificados para los nodos del agente. Significa que el nodo maestro debe sincronizarse con el tiempo adecuado para evitar problemas al emitir certificados a los nodos de agente. Por lo tanto, debe instalar NTP y sincronizarlo con el servidor horario de su elección.

Consulte las zonas horarias disponibles en el nodo principal:

# timedatectl list-timezones

Establecer la zona horaria regional adecuada:

# timedatectl set-timezone Asia/Kolkata

Instalar NTP:

# yum install ntp

Sincronizar con el servidor horario de su elección:

# ntpdate pool.ntp.org

Abra ntp.conf y agregue los servidores de tiempo de su elección.

# vim /etc/ntp.conf

Guardar y salir.

Iniciar y habilitar el servicio NTP:

# systemctl restart ntpd
# systemctl enable ntpd

Nota :También puede configurar NTP en los nodos de agentes. Para hacerlo, solo siga el Paso 2 en los nodos de Puppet Agent también.

Instalar Puppet Server (en el nodo principal)

El servidor de Puppet es un programa que se ejecuta en el nodo maestro de Puppet y, como se muestra en el diagrama de arquitectura, este servicio creará un catálogo y enviará las configuraciones a los nodos de agentes de Puppet.

Paso 1: Para instalar los servicios de Puppet, debe habilitar el repositorio de colección de Puppet o liberar paquetes. Para los sistemas operativos basados ​​en Yum, puede encontrar los paquetes en yum.puppetlabs.com y para sistemas basados ​​en Apt en apt.puppetlabs.com .

En CentOS, usaré un repositorio de títeres basado en paquetes rpm.

# rpm -ivh https://yum.puppetlabs.com/puppetlabs-release-pc1-el-7.noarch.rpm
puppetlabs-release-pc1-1.0.0-2.el################################# [100%]

En Ubuntu:

# wget https://apt.puppetlabs.com/puppetlabs-release-pc1-xenial.deb
# dpkg -i puppetlabs-release-pc1-xenial.deb
Selecting previously unselected package puppetlabs-release-pc1.
(Reading database ... 205725 files and directories currently installed.)
Preparing to unpack puppetlabs-release-pc1-xenial.deb ...
Unpacking puppetlabs-release-pc1 (1.0.0-2xenial) ...
Setting up puppetlabs-release-pc1 (1.0.0-2xenial) ...
# apt-get update

Instalar el paquete del servidor Puppet:

En CentOS:

# yum -y install puppetserver

En Ubuntu:

# apt-get install puppetserver

Iniciar servidor Puppet:

# systemctl start puppetserver

(o)

# service puppetserver start

Permitir que el servidor de marionetas se inicie durante el arranque del sistema

# systemctl enable puppetserver

(o)

# chkconfig puppetserver on

Instalación de Puppet Agent (en nodos de agente)

Instalaremos el servicio Puppet Agent en los nodos del agente y estos son los nodos que reciben el catálogo del nodo maestro de Puppet y los aplican.

Habilitar repositorio de colección de marionetas:

# rpm -ivh https://yum.puppetlabs.com/puppetlabs-release-pc1-el-7.noarch.rpm

En Ubuntu:

# wget https://apt.puppetlabs.com/puppetlabs-release-pc1-xenial.deb
# dpkg -i puppetlabs-release-pc1-xenial.deb
Selecting previously unselected package puppetlabs-release-pc1.
(Reading database ... 205725 files and directories currently installed.)
Preparing to unpack puppetlabs-release-pc1-xenial.deb ...
Unpacking puppetlabs-release-pc1 (1.0.0-2xenial) ...
Setting up puppetlabs-release-pc1 (1.0.0-2xenial) ...
$ sudo apt-get update

Instalar Puppet Agent:

En CentOS:

# yum -y install puppet-agent

En Ubuntu:

# apt-get install puppet-agent

Iniciar agente títere:

De forma predeterminada, el agente se referirá al nodo maestro de Puppet como "títere". Además, el siguiente comando mostrará el nombre de host que el Agente usará para conectarse al Maestro.

# /opt/puppetlabs/puppet/bin/puppet agent --configprint server
puppet
# /opt/puppetlabs/bin/puppet resource service puppet ensure=running enable=true
 Notice: /Service[puppet]/ensure: ensure changed 'stopped' to 'running'
 service { 'puppet':
 ensure => 'running',
 enable => 'true',
 }

Nota :Busca el servidor configuración en puppet.conf para cambiar el nombre de host de Puppet Master.

Nota :De forma predeterminada, Puppet se instalará en /opt/puppetlabs carpeta.

Solicitar certificado para el nodo Agente a la autoridad de certificación

El nodo maestro de Puppet actuará como la autoridad de certificación, que firma el certificado de los nodos de agente.

# /opt/puppetlabs/puppet/bin/puppet agent -t
 Info: Caching certificate for ca
 Info: csr_attributes file loading from /etc/puppetlabs/puppet/csr_attributes.yaml
 Info: Creating a new SSL certificate request for puppetagent.test.in
 Info: Certificate Request fingerprint (SHA256): BF:E9:8B:85:ED:61:B4:D5:61:2E:F2:C4:0B:0A:24:A3:D5:17:B5:E3:B4:54:53:4F:C7:39:7F:FE:49:1B:AF:4A
 Info: Caching certificate for ca
 Exiting; no certificate found and waitforcert is disabled

En el nodo Puppet Master:firma la solicitud de certificado del agente

Enumere las solicitudes de certificados actuales:

# /opt/puppetlabs/puppet/bin/puppet cert list
  "puppetagent.test.in" (SHA256) BF:E9:8B:85:ED:61:B4:D5:61:2E:F2:C4:0B:0A:24:A3:D5:17:B5:E3:B4:54:53:4F:C7:39:7F:FE:49:1B:AF:4A

Firma el certificado:

# /opt/puppetlabs/puppet/bin/puppet cert sign puppetagent.test.in
Notice: Signed certificate request for puppetagent.test.in
Notice: Removing file Puppet::SSL::CertificateRequest puppetagent.test.in at '/etc/puppetlabs/puppet/ssl/ca/requests/puppetagent.test.in.pem'

Ver todas las solicitudes firmadas:

# /opt/puppetlabs/puppet/bin/puppet cert list --all
+ "puppetagent.test.in"  (SHA256) 0F:41:D0:67:78:BB:7B:48:F8:4B:10:10:C4:F9:FD:DD:46:19:34:4B:BE:4D:6F:4B:2F:45:57:86:33:C2:BC:45
+ "puppetmaster.test.in" (SHA256) 4A:F3:F7:C0:81:7D:76:49:77:31:81:B1:70:50:AE:EE:F9:49:95:22:B0:24:0C:08:C3:5E:30:E6:29:75:28:07 (alt names: "DNS:puppet", "DNS:puppetmaster.test.in")

¡Y listo! Su primera infraestructura de marionetas está lista.

Probemos a Puppet

Puppet usa una herramienta llamada Facter para recopilar información (hechos) sobre los agentes títeres. De forma predeterminada, se recopila información como el nombre del sistema operativo, la versión, el nombre de host, la dirección IP, las claves SSH, etc. Pero también le permite agregar hechos personalizados, que discutiré en un artículo separado.

¿Cómo son útiles los hechos?

Al crear una plantilla de configuración, es posible que desee obtener automáticamente un hecho (por ejemplo, la dirección IP de un nodo de agente) y completarlo en la ubicación adecuada. De manera similar, es posible que desee leer un nombre de host de un nodo de agente y usarlo en la plantilla de configuración.

El siguiente comando (ejecutarlo en el nodo maestro) enumerará todos los datos recopilados de un nodo de agente.

# /opt/puppetlabs/puppet/bin/facter

Salida de muestra:

:::::::::::::::::::::::::::::::
partitions => {
/dev/vda1 => {
filesystem => "xfs",
mount => "/",
size => "39.99 GiB",
size_bytes => 42943138304,
uuid => "6c8f1327-a7c0-40a2-8bb3-89ea95a69d82"
}
}
path => /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
processors => {
count => 2,
isa => "x86_64",
models => [
"Intel Core Processor (Haswell, no TSX)",
"Intel Core Processor (Haswell, no TSX)"
],
physicalcount => 2
}
:::::::::::::::::::::::::::::::::::::::::

¡Eso es todo! Ahora necesita comprender los Manifiestos y módulos para usar Puppet de manera efectiva .


Ubuntu
  1. Cómo instalar y configurar Redis en Ubuntu 18.04

  2. Cómo instalar y configurar Redmine en Ubuntu 18.04

  3. Cómo instalar y configurar Samba en Ubuntu 18.04

  4. Instale Puppet Master y Agent en Ubuntu 20.04

  5. Cómo instalar Puppet master y cliente en Ubuntu 14.04

Instalar y configurar Puppet en CentOS 7 / RHEL 7

Cómo instalar y configurar OpenVAS 9 en Ubuntu

Cómo instalar y configurar Redis en Ubuntu 20.04

Cómo instalar y configurar Redis en CentOS 8

Cómo instalar y configurar Neo4j en Ubuntu 20.04

Cómo instalar y configurar Smartctl en CentOS/RHEL 8 y Ubuntu 20.04