Cómo instalar el servidor y cliente Puppet en CentOS y RHEL
En CentOS/RHEL 6.5:
# rpm -ivh /el/6.5/products/x86_64/puppetlabs-release-6-10.noarch.rpm
En CentOS/RHEL 7:
# rpm -ivh /el/7/products/x86_64/puppetlabs-release-7-10.noarch.rpm
Instalación del servidor
Instale el paquete "puppet-server" en el servidor que desea utilizar como servidor maestro.
# yum install Puppet-server
Una vez completada la instalación, configure el servidor Puppet para que se inicie automáticamente y lo abra cuando se inicie el sistema.
# chkconfig Puppetmaster on # Service Puppetmaster Start
Ahora que tenemos el servidor en ejecución, debemos asegurarnos de que sea accesible desde nuestra red.
En CentOS/RHEL 6, donde se utiliza iptables como firewall, agregue la siguiente línea a la sección ":OUTPUT ACCEPT" de /etc/sysconfig/iptables.
1 -A INPUT -m state --state NEW -m tcp -p tcp --dport 8140 -j ACCEPT
Para que este cambio surta efecto es necesario para reiniciar iptables.
# service iptables restart
En CentOS/RHEL 7 usando firewalld, puede usar el siguiente comando para lograr la misma operación:
# firewall-cmd - -permanent --zone=public --add-port=8140/tcp # firewall-cmd --reload
Instalación del cliente
Instala el paquete de software del cliente Puppet en el nodo del cliente. ejecute el siguiente comando para este propósito:
# yum install Puppet
Una vez completada la instalación, asegúrese de que Puppet se inicie después de que se inicie el sistema.
# chkconfig Puppet en
Su nodo cliente Puppet debe saber dónde está ubicado el servidor maestro Puppet. La mejor manera de hacerlo es utilizar un servidor DNS, donde puede configurar el nombre de dominio de Puppet. Si no tiene un servidor DNS que funcione, puede usar el archivo /etc/hosts. Para hacer esto, simplemente agregue las siguientes líneas:
1.2.3.4 servidor.su.dominio 2.3.4.5 cliente. -nodo.tu.dominio
1.2.3.4 corresponde a la dirección IP del servidor maestro Puppet, "servidor.tu.dominio" es el nombre de dominio del servidor maestro (el valor predeterminado suele ser el del servidor nombre de host), "nodo-cliente.su.dominio" es el nodo del cliente. Este archivo de hosts debe configurarse en consecuencia en todos los servidores relevantes (servidores Puppet master y cliente).
Después de completar esta configuración, debemos indicar al cliente Puppet quién es el servidor maestro. De forma predeterminada, Puppet busca un servidor llamado "puppet", pero esa configuración generalmente no se ajusta a su configuración de red, por lo que la cambiaremos al nombre de dominio completo (FQDN) del servidor maestro de Puppet.
Abra el archivo /etc/sysconfig/puppet y reemplace el valor "PUPPET_SERVER" con el nombre de dominio del servidor principal de Puppet especificado en /etc/hosts:
PUPPET_SERVER=servidor.su.dominio
Principal El nombre del servidor también debe definirse en la sección "[agente]" de /etc/puppet/puppet.conf:
serverserver=server.your.domain
Ahora puede iniciar el cliente Puppet:
# service Puppet start
Necesitamos usar el siguiente comando para forzar al cliente a contactar con el servidor principal de Puppet:
# Puppet agent - -test
Deberías ver un resultado similar al siguiente. Que no cunda el pánico, esto es normal ya que el servidor aún no está verificado en el servidor Puppet Master.
Saliendo; no se encontró ningún certificado y waitforcert está deshabilitado
Vuelva a su servidor de Puppet Master y verifique la solicitud de verificación del certificado:
# lista de certificados de Puppet
p >Debería ver una lista de todos los servidores que solicitan firmas de certificados del titiritero. Busque el nombre de host del servidor cliente y utilice el siguiente comando para firmar (el nodo-cliente es el nombre de dominio del nodo cliente):
# Puppet cert sign nodo-cliente
En este punto, ya tiene un cliente y servidor Puppet en funcionamiento. ¡Felicidades! Sin embargo, en este momento, el servidor maestro Puppet no puede indicarle al cliente que haga nada. Entonces, ¿por qué no crear un archivo de manifiesto básico y configurar nodos cliente para instalar utilidades básicas?
Conéctese nuevamente al servidor Puppet y asegúrese de que exista el directorio /etc/puppet/manifests.
# mkdir -p /etc/puppet/manifests
Ahora, crea el archivo de manifiesto /etc/puppet/manifests/site.pp con el siguiente contenido
nodo 'nodo-cliente' { incluir custom_utils } clase custom_utils { paquete { ["nmap","telnet","vim-enhanced","traceroute"]: asegurar => último, permitir_virtual => falso, } } p >
Luego reinicie el servicio de Puppetmaster.
# service puppetmaster restart
El intervalo de actualización predeterminado de la configuración del cliente es de 30 minutos. Si desea forzar manualmente que los cambios surtan efecto, debe ejecutar el siguiente comando en el; nodo del cliente:
# Puppet Agent -t
Si desea cambiar el intervalo de actualización del cliente predeterminado, cambie la siguiente línea:
runinterval =
Agregar a la sección "[agente]" de /etc/puppet/puppet.conf en el nodo cliente. La configuración es un intervalo de tiempo, la unidad puede ser segundos (30 o 30 s), minutos (30 m), horas (6 h), días (2d) o años (5y). Nota: Un intervalo de ejecución de 0 significa "ejecutar continuamente", no "nunca ejecutar".
Consejos y métodos
1. Depuración
A veces esto puede suceder: debes enviar la configuración incorrecta y depurar donde aparece Fault. Para hacer esto, siempre puede comenzar verificando los registros en /var/log/puppet/, o ejecutar manualmente el software del agente y ver el resultado:
# Puppet Agent -t
Por defecto, "-t" activa el modo detallado, por lo que le permite ver la salida de Puppet. Este comando también tiene varios parámetros que pueden ayudar a identificar el problema de forma un poco más granular. La primera opción práctica es:
# Puppet Agent -t --debug
debug indica todos los pasos que siguió Puppet durante su ejecución. Es útil para depurar reglas muy complejas. Otro parámetro que puede resultar útil es:
# Puppet Agent -t --noop
Esta opción configura Puppet en el llamado modo de ejecución en seco y no implementa ningún cambio. Puppet solo genera el contenido que se presentará en la pantalla y no escribe nada en el disco.
2. Módulos
Después de un tiempo, te encontrarás en una situación en la que querrás tener un archivo de manifiesto más complejo. Pero antes de sentarte y empezar a escribir el archivo de manifiesto, deberías tomarte un momento y explorar. Forge es un enorme repositorio de software que contiene muchos módulos de la comunidad Puppet. Lo más probable es que encuentre soluciones a sus problemas aquí. Si no lo encuentra, escriba su propio módulo y envíelo para que otros puedan beneficiarse de la cultura del módulo Puppet.
Ahora, digamos que has encontrado un módulo que resuelve tu problema. Entonces, ¿cómo instalarlo en tu sistema? En realidad, la instalación es bastante sencilla, porque Puppet ya contiene una interfaz para descargar módulos directamente. Simplemente escriba el siguiente comando:
# Puppet module install
# búsqueda de módulo de marionetas
Así, obtendrá una lista de todos los módulos que contienen la cadena de búsqueda.
# módulo de marionetas buscar apache
Aviso: Buscando... NOMBRE DESCRIPCIÓN AUTOR PALABRAS CLAVE ejemplo42-apache Módulo de marionetas para apache @example42 ejemplo42, apache puppetlabs-apache Módulo de marionetas para Apache @puppetlabs apache web httpd centos rhel ssl wsgi proxy theforeman-apache Configuración del servidor Apache HTTP @theforeman foreman apache httpd DEPRECADO
Si desea ver qué módulos están instalados, simplemente escriba el siguiente comando:
# lista de módulos de Puppet
Conclusión
En este punto, debería tener un servidor maestro Puppet completamente funcional que pueda proporcionar una configuración básica para uno o más servidores cliente. Ahora siéntete libre de agregar más ajustes a tu configuración y adaptarla a tu infraestructura. No te preocupes por jugar con Puppet, descubrirás que te resultará de gran ayuda.