Instalar puppet agente en vagrant


Instalar puppet agente en vagrant

oscar Escrito por oscar 08 May 2023 549 0

Puppet es una herramienta de automatización de infraestructura utilizada para configurar y administrar sistemas a través de un lenguaje de configuración declarativo. Con Puppet, los administradores de sistemas pueden describir la configuración deseada de un sistema en un archivo de configuración y luego ejecutar un agente en el sistema para aplicar automáticamente la configuración. Esto permite una mayor consistencia y precisión en la configuración de sistemas, así como una mayor facilidad de implementación y actualización de cambios. mas información en ¿Qué es puppet? | CodigoElectronica

Entrono de trabajo

Programas

Carpeta y archivos de trabajo

Primero crearemos la carpeta de trabajo en donde guardaremos los archivos de Vagrant y donde se crean los temporal que que Vagrant necesita.

Puppet

En esta carpeta creamos e archivo vagrantfile.

C:.
    Vagrantfile

Archivo vagrantfile

Procedemos a explicar el contenido del archivo Vagrant file:

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/focal64"

  config.vm.hostname = "puppet"
  config.vm.network "private_network", ip: "192.168.50.4"
end
  1. Estamos usando Ubuntu focal (2004) para crear las maquinas.
  2. Definimos una maquina puppet, la cual tendrá la IP 192.168.50.4 en esta maquina server instalaremos Puppet.

Muy importante, hemos nombrado los hosts de las maquinas como puppet y node01, estos mismos nombre los vamos a respetar en la siguiente configuración que mencionaremos mas adelante.

Ejecutamos Vagrant

En la carpeta del proyecto, dentro de la consola de comandos ejecutamos:

vagrant up

 

Vagrant up

 

Puppet agente

Procedemos a realizar la configuración del agente de Puppet, en este caso para la practica, vamos a instalar y configurar todo el agente de Puppet desde cero y manualmente para que vean como se realiza esta instalación.

Para acceder a la maquina del agente, ejecutamos lo siguiente:

vagrant ssh

Instalar puppet agent

Nos guiaremos en la instalación con la documentación oficial Installing Puppet Server, primero descargamos el paquete de puppet correspondiente a la versión de Ubuntu, que la podemos encontrar en paquetes de puppet.com.

Primero descargaremos el paquete de Puppet 6 para Ubuntu Focal.

wget https://apt.puppetlabs.com/puppet6-release-focal.deb

 Ahora cargamos el paquete a el sistema de paquetes de Linux.

sudo dpkg -i puppet6-release-focal.deb

Actualizamos el listado de paquetes.

sudo apt-get update -yq && sudo apt-get upgrade -yq

 Realizamos la instalación de Puppet agent.

sudo apt install puppet-agent -y

Configuración de los hosts

Procedemos a agregar los hosts de la maquina puppet y de los nodos agentes, editamos el archivo hosts.

sudo nano /etc/hosts
192.168.50.4    puppet puppet.example.com

Muy importante, los nombres de los hosts deben coincidir con el nombre de las maquinas creadas en VirtualBox

puppet.conf

Realizamos la configuración de puppet.

sudo nano /etc/puppetlabs/puppet/puppet.conf

Añadimos al final del archivo las siguientes lineas.

[main]
logdir=/var/log/puppet
vardir=/var/lib/puppet
ssldir=/var/lib/puppet/ssl
rundir=/run/puppet
factpath=$vardir/lib/facter

[agent]
server=puppet.example.com
certname=puppet
runinterval=30m

Validar puppet agente

Por ultimo ejecutamos los siguientes comandos en orden.

Para detener el servidor del agente.

sudo systemctl stop puppet

Para iniciar el servidor de agente. 

sudo systemctl start puppet

Para ver el estado del servidor del agente.

sudo systemctl status puppet

Habilitamos el servicio de puppet para que inicie el servidor de Puppet cuando inicie Ubuntu. 

sudo systemctl enable puppet

Ejemplo de prueba 

Vamos a crear un ejemplo simple para validar que todo esta correcto, primero crearemos la carpeta de manifests (manifiestos de puppet) para crear los archivos .pp

sudo mkdir /etc/puppetlabs/puppet/manifests

Luego creamos el archivo sites.pp

sudo nano /etc/puppetlabs/puppet/manifests/sites.pp

En este archivo agregamos el siguiente código. 

node default {
    file {'/home/vagrant/test': # Resource type file
        ensure => 'directory', # Create a directory
        owner => 'root', # Ownership
        group => 'root', # Group Name
        mode => '0755', # Directory permissions
    }
}

Este código de Puppet define un recurso de archivo (file) que crea un directorio en la ruta /home/vagrant/test en un nodo (host) específico.

El nodo se especifica como default al principio del código, lo que significa que estas configuraciones se aplicarán a todos los nodos que no tengan una definición específica en el código.

Los parámetros del recurso son los siguientes:

  • ensure => 'directory': Esto indica que el recurso debe ser un directorio. Si el directorio no existe, se creará. Si ya existe, no se realizarán cambios.
  • owner => 'root': Esto establece el propietario del directorio en root.
  • group => 'root': Esto establece el grupo del directorio en root.
  • mode => '0755': Esto establece los permisos del directorio en 0755. Los permisos se establecen utilizando el número octal 0755, lo que significa que el propietario tiene permiso para leer, escribir y ejecutar, y que los usuarios del grupo y otros solo tienen permiso para leer y ejecutar.

Procedemos a ejecutar el archivo con la siguiente linea

sudo /opt/puppetlabs/bin/puppet apply /etc/puppetlabs/puppet/manifests/sites.pp

 


Comentario

Debe aceptar antes de enviar