Puppet es un monstruo para entenderlo, así que aprender con el ejemplo no es malo. A continuación, supongo que está utilizando módulos, por favor diga en un comentario si no lo está o si necesita más detalles sobre cómo armar el módulo.
Digamos que comienzas un nuevo módulo llamado mymodule
. En el directorio de inicio de Puppet (generalmente /etc/puppet
) en el Puppet Master, debe crear el directorio de archivos y manifiestos del módulo:
mkdir -p modules/mymodule/manifests
mkdir -p modules/mymodule/files
Luego cree un archivo en ese directorio llamado init.pp
e ingrese:
class myfile {
file { '/home/operator1/Desktop/Backup':
ensure => directory,
mode => '0755',
owner => 'operator1',
group => 'operator1',
}
file { "/home/operator1/Desktop/Backup/datas.xls":
mode => "0644",
owner => 'operator1',
group => 'operator1',
source => 'puppet:///modules/module_name/datas.xls',
}
}
Luego, coloque el datas.xls
archivo en el files
directorio del módulo, en este ejemplo en modules/mymodule/files/
. (Tenga en cuenta que también puede haber un templates
directorio para plantillas ).
En el manifests/site.pp
archivo debe importar el módulo e incluir la clase haciendo algo como:
import 'mymodule'
node base {
include myfile
}
node server1 inherits base {}
node server2 inherits base {
# extra config here
}
Asegúrese de que todos sus nodos hereden de la base y eso debería ser todo lo que necesita hacer. A partir de la marioneta 0.25 puede usar expresiones regulares en el nombre del nodo, por ejemplo:
node server[0-9] inherits base {}
Avíseme en los comentarios si necesita más aclaraciones.
Configurar un cliente para hablar con el titiritero
En el cliente, debe hacer:
sudo apt-get install puppet
Luego edite /etc/default/puppet
y cambie START=no
a START=yes
.
También edite /etc/puppet/puppet.conf
y agregue una línea a la [main]
sección para indicarle dónde encontrar el titiritero:
server=puppet.mydomain.com
Entonces podemos hacer una prueba con sudo puppetd --test
. Si recibe errores de clave, es posible que deba ir al servidor maestro de marionetas y firmar la clave del cliente. Para verificar el nombre exacto que puede hacer sudo puppetca --list
y luego sudo puppetca --sign server1.mydomain.com
(o el nombre del servidor del comando de lista).
Ahora comienza el servicio de títeres con sudo service puppet start
y deberías estar lejos. El servicio de títeres se ejecutará cada hora, por lo que si actualiza sus recetas de títeres, también se actualizarán todos sus clientes.
Eliminar archivos
Observo en la pregunta original que quería saber cómo eliminar archivos. Editarías el manifests/init.pp
ser
file { "/home/operator1/Desktop/Backup/datas.xls":
ensure => absent,
}
Otros consejos útiles
Si tiene problemas, hay algunas cosas que puede hacer. En cualquier máquina con títeres instalados, puede verificar su sintaxis ejecutando
puppet --parseonly --ignoreimport myfile.pp
o verifique todo sacando la --ignoreimport
bandera, aunque eso puede dar lugar a algunos mensajes de error divertidos que no son realmente errores que he encontrado. También puede ejecutar puppet live en una máquina cliente de puppet haciendo:
sudo puppetd --test
que muestra varios resultados útiles, con errores y advertencias resaltados en diferentes colores. Si desea aún más detalles, puede ejecutar:
sudo puppetd --test --debug
pero eso generalmente genera tanta salida que es difícil pasar, así que solo hazlo si ya has probado los pasos anteriores y estás atascado y necesitas ver todo lo que se está haciendo.
Tenga en cuenta que esto se basa en la marioneta 0.25.x, que es lo que uso actualmente en el trabajo, y también es la versión en Ubuntu 10.04. El código de Puppet en la sección principal definitivamente seguirá funcionando, pero las versiones posteriores de Puppet tienen nuevas banderas que pueden ayudar con la salida de depuración.