Skip to main content

Configuración de entorno

Por defecto Puppet Server crea un entorno llamado production. Podemos crear tantos como nos interese, sin embargo proceda con la configuración de que viene por defecto para comprobar que la instalación es correcta.

Configuración de la jerarquía

En puppet se puede definir una jerarquia a la hora de aplicar los ficheros de configuración.

  1. La configuración del nodo en concreto
  2. La configuración de la familia de sistema operativo
  3. Paquetes comunes

Edite el fichero

nano /etc/puppetlabs/code/environments/production/hiera.yaml

y modifiquelo para tener el siguiente contenido. Se ha cambiado el trusted.certname por hostname y se ha añadido el osfamily.

---
version: 5
defaults:
  # The default value for "datadir" is "data" under the same directory as the hiera.yaml
  # file (this file)
  # When specifying a datadir, make sure the directory exists.
  # See https://puppet.com/docs/puppet/latest/environments_about.html for further details on environments.
  # datadir: data
  # data_hash: yaml_data
hierarchy:
  - name: "Per-node data (yaml version)"
    path: "nodes/%{::hostname}.yaml"
  - name: "Per-os data"
    path: "osfamily/%{::osfamily}"
  - name: "Other YAML hierarchy levels"
    paths:
      - "common.yaml"

Common packages

En la carpeta del entorno, cree el fichero common_packages.pp

cd /etc/puppetlabs/code/environments/production/manifests/
nano common_packages.pp

Y añada el contenido deseado, por ejemplo puede añadir los siguientes paquetes que por lo general se suelen usar en los sistemas Linux.

class common_packages {

  package { 'net-tools':
    ensure => 'installed'
  }

  package { 'htop':
    ensure => 'installed'
  }

  package { 'fail2ban':
    ensure => 'installed'
  }

}

Ahora añada la siguiente linea al fichero sites.pp

echo "include common_packages" >> /etc/puppetlabs/code/environments/production/manifests/site.pp

Quedando de la siguiente manera

root@puppet-master:~# cat /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'] }
}
include common_packages

Reincie el servidor puppet y realice la prueba

systemctl restart puppetserver

Desinstale alguno de los paquetes comunes

y ejecute el comando de actualización del agente.

puppet agent -vt

Podrá ver como vuelve a instalar el paquete htop eliminado