Recursos y atributos de puppet


En esté posts nos enfocaremos en conocer los recursos y atributos de puppet, y veremos algunos ejemplos para entender cómo se usan

oscar Escrito por oscar 10 May 2023 1476 0

Precondiciones 

Recursos y atributos de puppet

Puppet es una herramienta de gestión de configuración y automatización de infraestructuras que permite a los administradores de sistemas definir, configurar y administrar la configuración de los servidores y dispositivos de red. Los recursos son los componentes básicos de los manifiestos. 

Recursos:

En Puppet, los recursos son los componentes individuales que se administran en un manifiesto. Un recurso en Puppet es una abstracción de un componente del sistema que se puede administrar. Algunos ejemplos comunes de recursos en Puppet son:

Cada recurso en Puppet tiene un tipo específico que define cómo se debe administrar. Por ejemplo, el recurso de archivo (file resource) se utiliza para administrar archivos y directorios en el sistema. El recurso de paquete (package resource) se utiliza para instalar o desinstalar paquetes de software. El recurso de servicio (service resource) se utiliza para administrar servicios del sistema, como Apache o MySQL.

Atributos de recursos:

Cada tipo de recurso tiene un conjunto de atributos que se pueden establecer para definir el estado deseado del recurso. Por ejemplo, el recurso de archivo tiene atributos como el nombre del archivo, el modo de permisos, el propietario y el grupo. Los atributos se utilizan para definir el estado deseado del recurso, y Puppet se encarga de aplicar los cambios necesarios para que el recurso esté en ese estado.

Estas son solo algunas de las propiedades y recursos que ofrece Puppet. Además, Puppet cuenta con una amplia documentación y una comunidad activa que contribuye con módulos y plugins adicionales para extender su funcionalidad.

Ejemplos

Solo hay algunas reglas para recordar al declarar recursos. El formato es siempre el mismo:

resource_type {'resource_title':
    ensure => present, # usually 'present' or 'absent'
    attribute1 => 1234, # number
    attribute2 => 'value', # string
    attribute3 => ['red','blue'], # array
    noop => false, # boolean
}

Ejemplo permisos

El siguiente ejemplo especifica los permisos para un archivo en especifico

file { '/home/vagrant/test':
  ensure => directory,
  owner  => 'vagrant',
  group  => 'vagrant',
  mode   => '0775',
}

Ejemplo de salida

vagrant@puppet:~$ ls -l
total 4
drwxr-xr-x 2 root root 4096 May  8 17:52 test
vagrant@puppet:~$ sudo /opt/puppetlabs/bin/puppet apply /etc/puppetlabs/puppet/manifests/recursos.pp
Notice: Compiled catalog for puppet in environment production in 0.01 seconds
Notice: /Stage[main]/Main/File[/home/vagrant/test]/owner: owner changed 'root' to 'vagrant'
Notice: /Stage[main]/Main/File[/home/vagrant/test]/group: group changed 'root' to 'vagrant'
Notice: /Stage[main]/Main/File[/home/vagrant/test]/mode: mode changed '0755' to '0775'
Notice: Applied catalog in 0.01 seconds
vagrant@puppet:~$ ls -l
total 4
drwxrwxr-x 2 vagrant vagrant 4096 May  8 17:52 test

Ver recursos

Puppet puede mostrarle un recurso existente escrito en el lenguaje de configuración de Puppet. Esto facilita la generación de código basado en configuraciones existentes. Examinemos el recurso: el usuario con el que inició sesión:

sudo /opt/puppetlabs/bin/puppet resource user vagrant

Podemos observar la respuesta en donde muestra en lenguaje de Puppet la configuración del usuario vagrant.

Ver recursos

Comentario

Debe aceptar antes de enviar