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.ppe 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.xlsarchivo en el filesdirectorio del módulo, en este ejemplo en modules/mymodule/files/. (Tenga en cuenta que también puede haber un templatesdirectorio para plantillas ).
En el manifests/site.pparchivo 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/puppety cambie START=noa START=yes.
También edite /etc/puppet/puppet.confy 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 --listy 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 starty 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.ppser
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 --ignoreimportbandera, 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.