Instalación del servidor
Requisitos previos
La máquina debe tener acceso a internet en el proceso de instalación
Configuración del hostname
La instalación del servidor necesita que se configure correctamente el nombre del equipo.
hostnamectl set-hostname puppet-master
Añada el nombre de dominio en el fichero /etc/hosts
con el FQDN.
echo "127.0.0.1 puppet-master.home.local puppet-master" >> /etc/hosts
Configuración de la IP
Ya sea a través de una reserva DHCP en el DHCP server o bien configurando de forma estática la IP en el servidor, asegurese que la máquina tiene una IP estática.
Configuración del firewall
Si la máquina tiene instalado un Firewall local y/o tiene un Firewall perimetral/segmentación, asegurese de que permite el puerto 8140/tcp
para la comunicación entre los agentes y el servidor.
Iptables
iptables -I INPUT -p tcp -m tcp --dport 8140 -j ACCEPT
service iptables save
UFW
ufw allow 8140
Firewalld
firewall-cmd --permanent --zone=public --add-port=8140/tcp
Reinicio
Finalmente reinicie el equipo para que tenga en cuenta le nuevo nombre de la máquina y sobretodo para validar y comprobar que las configuraciones de la ip estática y el firewall se mantienen.
reboot
Instalación
Proceda con la instalación del Puppet Master
Instalación del servidor
wget https://apt.puppet.com/puppet-release-bullseye.deb
dpkg -i puppet-release-bullseye.deb
apt update
apt install -y puppetserver
source /etc/profile.d/puppet-agent.sh
Confirme la versión instalada
puppetserver -v
Edite el fichero de configuración de Puppet
nano /etc/default/puppetserver
y modifique la RAM máxima que va a consumir la Java Virtual Machine (JVM). Por defecto viene configurada con 2Gb, sin embargo para entornos pequeños puede usar 512Mb.
Cambie el valor de las variables
JAVA_ARGS="-Xms2g -Xmx2g"
al valor deseado
JAVA_ARGS="-Xms512m -Xmx512m"
Guarde los cambios. Configure el servidor
puppet config set server puppet-mastermaster.psc.local --section main
puppet config set runinterval 10m --section main
puppet config set environment production --section server
puppet config set dns_alt_names puppet-master,puppet-master.psc.local --section server
Finalmente active y inicie el servicio.
systemctl enable puppetserver
systemctl start puppetserver
El primer arranque de puppet tardará un poco, espere a que finalice sin errores.
A continuación ejecute el siguiente código. Esto aplicará a todos los nodos que tengan Puppet instalado. Modificará el fichero hosts añadiendo dichas lineas. Si dispone de un servidor DNS en el entorno, entonces no será necesario.
Cuidado si habilita el valor purge => true
ya que eliminará cualquier cambio que se realice a mano en los ficheros hosts de las máquinas.
cat <<endblock >> /etc/puppetlabs/code/environments/production/manifests/site.pp
node default {
resources { 'host': purge => true }
host { 'localhost': ip => '127.0.0.1', }
host { 'puppet-master.psc.local': ip => '192.168.0.3', host_aliases => [ 'puppet-master', 'puppet' ] }
host { 'puppet-client.psc.local': ip => '192.168.0.4', host_aliases => [ 'puppet-client'] }
}
endblock
Si en el propio servidor ejecuta
cat /etc/hosts
Posteriormente ejecuta
puppet agent -vt
Y vuelve a visualizar el fichero hosts
cat /etc/hosts
Podrá ver que el contenido es el siguiente
# HEADER: This file was autogenerated at 2022-11-01 17:23:13 +0100
# HEADER: by puppet. While it can still be managed manually, it
# HEADER: is definitely not recommended.
# Your system has configured 'manage_etc_hosts' as True.
# As a result, if you wish for changes to this file to persist
# then you will need to either
# a.) make changes to the master file in /etc/cloud/templates/hosts.debian.tmpl
# b.) change or remove the value of 'manage_etc_hosts' in
# /etc/cloud/cloud.cfg or cloud-config from user-data
#
192.168.0.3 puppet-master.psc.local puppet-master puppet
127.0.0.1 localhost
# The following lines are desirable for IPv6 capable hosts
192.168.0.4 puppet-client.psc.local puppet-client
En el fichero sites.pp del entorno, tambien puede indicar que software o configuraciones van a tener los equipos de dicho entorno.