Siguiendo con la linea de trabajo de Puppet que he estado publicando, ahora les traigo como trabajar con módulos. Primero veamos la estructura de archivos de configuración de Puppet:
sauth.conf
etckeeper-commit-pre
manifests
puppet.conf
templates
etckeeper-commit-post
fileserver.conf
modules
ssl
La configuración que vamos a generar es para un servidor LAMP. En el directorio “modules” creamos un nuevo directorio que identifique la configuración que vamos a llevar, en este caso seria “lamp”, dentro de este directorio creamos otro directorio llamado, “manifest” allí es donde vamos a meter la config, la cual debe llevar el nombre de “init.pp”, entonces si hacemos un “ls” extendido vemos que esto queda así:
# ls */*/*
lamp/manifests/init.pp
Dentro de “init.pp” declaramos lo siguiente:
class lamp {
#Instalamos apache2
package { ‘apache2’:
ensure => installed,
}
# El servicio debe estar arriba
service { ‘apache2’:
ensure => running,
}
# Instalamos el mysql-server
package { ‘mysql-server’:
ensure => installed,
}
# El servicio debe estar arriba
service { ‘mysql’:
ensure => running,
}
# install php5 package
package { ‘php5’:
ensure => installed,
}
# Ahora creamos un archivo de php con la info
file { ‘/var/www/info.php’:
ensure => file,
content => ‘<?php phpinfo(); ?>’,
require => Package[‘apache2’],
}
}
Luego creamos un archivo dentro de “/etc/puppet/manifests” que se va a llamar “modules.pp” y dentro del mismo declaramos lo siguiente:
import “lamp”
Y por ultimo dentro del archivo “nodes.pp” especificamos el nodo que va a tomar la configuración que acabamos de crear, en este caso se la asignaremos a un equipo llamado muy creativamente “server1”.
node ‘server1.dominio.com’ {
include lamp
# resto de las configuraciones
}
Luego vamos al equipo “server1” y le indicamos que refresque su catalogo para que asuma los cambios:
# puppet agent –test
info: Caching catalog for server1.dominio.com
info: Applying configuration version ‘1413388025’
notice: Finished catalog run in 0.14 seconds
Y todo listo. Cada vez que queramos levantar un servidor Lamp, solo agregamos el nodo en Puppet y le cargamos el modulo correspondiente. Nos vemos
Muy bueno
Gracias, stay tuned. Nos vemos.