He instalado puppetmaster en ubuntu 11.04 y he instalado puppet en todos mis clientes. Me he unido a todos mis clientes de marionetas con Puppet Master. ¿Es posible copiar un archivo a todos estos clientes de marionetas desde puppet master?
Por ejemplo:
Tengo el archivo llamado datas.xls en mi escritorio (Puppet Master). ¿Cómo copio estos archivos a todos mis clientes de títeres en la siguiente ubicación (/ home / operator1 / Desktop / Backup /)?
Actualizar:
- Hola, el archivo no se comparte.
- ¿Cómo modificar esta línea
puppet:///modules/module_name/datas.xls
el archivo que se copiará está en esta ubicación/etc/puppet/modules/mymodule/manifests/datas.xls
?
Error en el cliente: (Resuelto)
root@testing:~# puppetd --test
err: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not find class sudo at /etc/puppet/manifests/site.pp:2 on node testing.chn.jd.com
warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run
Error 2 en el cliente:
root@tme13:~# puppetd --test
err: Could not run Puppet configuration client: Could not retrieve local facts: bad URI(is not URI?): http://169.254.169.254/2008-02-01/meta-data/<HTML><HEAD><TITLE>HTTP access denied</TITLE></HEAD><BODY><img src/
Nueva actualización:
¿Cómo aplicar este módulo a todos los nodos? De modo que el archivo se copiará a todos los nodos.
Respuestas:
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:Luego cree un archivo en ese directorio llamado
init.pp
e ingrese:Luego, coloque el
datas.xls
archivo en elfiles
directorio del módulo, en este ejemplo enmodules/mymodule/files/
. (Tenga en cuenta que también puede haber untemplates
directorio para plantillas ).En el
manifests/site.pp
archivo debe importar el módulo e incluir la clase haciendo algo como: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:
Avíseme en los comentarios si necesita más aclaraciones.
Configurar un cliente para hablar con el titiritero
En el cliente, debe hacer:
Luego edite
/etc/default/puppet
y cambieSTART=no
aSTART=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: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 hacersudo puppetca --list
y luegosudo 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
serOtros consejos útiles
Si tiene problemas, hay algunas cosas que puede hacer. En cualquier máquina con títeres instalados, puede verificar su sintaxis ejecutando
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:que muestra varios resultados útiles, con errores y advertencias resaltados en diferentes colores. Si desea aún más detalles, puede ejecutar:
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.
fuente
puppet:///modules/module_name/datas.xls
del archivo a copiar está en esta ubicación/etc/puppet/modules/mymodule/manifests/datas.xls
/etc/puppet/modules/mymodule/files/datas.xls
; actualizaré la respuesta para que quede más claro al respecto.puppet agent --test