Crear y probar nuestros modulos de puppet

puppet labs

Crear la arquitectura de nuestro modulo

La arquitectura de nuestro nuevo módulo, siempre va a tener una distribución de archivos parecida a:

manifests
--- init.pp
README.mdtemplates
 --- template.erb
tests
 --- test1.pp
files

Escribir el init.pp y tests

Para escribir los  módulos, proponemos Gepetto sobre Eclipse.

Para verificar la sintáxis de las clases, se puede usar puppet-lint

gem install puppet-lint
 puppet-lint manifests/init.pp

Al escribir los tests, se pueden asociar al nodo default para mantenerlos sencillos

 node default {
 include mymoduleclass
}

Probar en un nodo con puppet instalado en local

Configuramos en puppet.conf de donde se van a leer los módulos

[main]
(..)
 puppetmodulepath=/etc/puppet/modules:/usr/share/puppet/modules

Para verificar la clase:

puppet apply --noop tests/test1.pp

Para aplicar cambios

puppet apply tests/test1.pp

Crear certificado de usuario para probar servicios web con ssl

En ocasiones es necesario contar con un certificado de usuario, para poder hacer pruebas sobre un servicio web.

Creación del certificado

Para crear el certificado, en una máquina linux con openssl instalado, creamos el certificado. Por defecto, la clave privada se crea con una clave (passphrase). Dado que es un certificado simplemente para test, vamos a crear también el fichero de clave privada sin passphrase (paso 3)

 

# Creación de clave privada
openssl genrsa -out testing_password.key 4096
# Creación de clave pública
openssl req -new -x509 -days 3000 -key testing_password.key -out testing.crt
# Hacer una copia del fichero de claves sin proteger con contraseña
openssl rsa -in testing_password.key -out testing_nopasswd.key
# Exportar en pkcs12 para poderlo usar con navegadores como firefox
openssl pkcs12 -export -out testing.p12 -inkey testing_password.key -in testing.crt

Ver más información

Uso del certificado

Ahora, para probar el servicio web, podemos importarlo desde un navegador , o ponerlo en línea de comando en wget: wget


wget https://myhost.com/service --no-proxy --no-check-certificate --certificate=testing.csr