configuración de filebucket en Puppet

11

¿Cómo configura y trabaja con su archivo de Puppet?

Me gustaría:

  1. Almacenar datos del depósito de archivos en un único servidor
  2. Poder auditar / analizar / podar el depósito de archivos cuando sea necesario
  3. Asegúrese de que los datos del archivo de archivos se transfieran de forma segura entre cliente-> maestro
robbyt
fuente

Respuestas:

16

Bueno, en una clase que está incluida por todos mis nodos, tengo:

filebucket { puppet: server => "puppet.example.edu" }

El valor predeterminado en el tipo de archivo es hacer una copia de seguridad en un archivo de archivos local llamado "títere". Al cambiar el paquete de archivos "puppet" a un paquete de archivos del servidor, obtendrá el paquete de archivos basado en el servidor de forma predeterminada.

Alternativamente, si desea conservar la opción de anular un archivo específico para utilizar un archivo de archivos local, puede hacer lo siguiente:

filebucket { main: server => "puppet.example.edu"; }
File { backup => main }

Ver http://docs.puppetlabs.com/references/latest/type.html#filebucket para obtener más detalles sobre las opciones.

Esto lleva a cabo el ítem # 1 porque le dice a los nodos que todos usen el mismo servidor para el archivo de paquetes. El elemento n. ° 3 se ofrece de forma gratuita porque todavía se trata de una conexión basada en SSL con verificación de certificado SSL.

Filebucket es principalmente útil en caso de recuperación, que probablemente sea el mismo día. En ese caso, mire el informe y use el comando " filebucket" o " puppet filebucket" para recuperar el contenido original basado en el md5sum en el informe.


El artículo # 2 es donde las cosas se ponen difíciles ...

Lo podo con un script como este:

find /var/lib/puppet/clientbucket/ -type f -mtime +45 -atime +45 -delete

Eso elimina cualquier cosa que tenga más de 45 días y que no haya sido visitada en ese momento. Los 45 días se basan en nuestra política de copia de seguridad y retención de copias de seguridad, ya que es lo suficientemente larga como para que haya ocurrido una copia de seguridad con una retención larga y nos da un tiempo de recuperación teórico de 18 meses.


¿Qué tipo de análisis estás buscando? La configuración del depósito en el servidor es una jerarquía organizada por md5sum, y dentro de un nombre de directorio que coincide con md5sum, hay "rutas" para indicar qué archivo y "contenido" es el archivo real. Debe mirar los informes para ver de qué sistema proviene.


No hago ninguna auditoría. ¿Qué tipo de auditoría estás buscando? Eso podría significar muchas cosas.

freiheit
fuente
Gracias, en realidad esto es bastante útil. ¡No me di cuenta de que configurar un servidor centralizado de archivos en el puppetmaster era así de simple! Hay algunos tickets de solicitudes de funciones abiertos para mejores herramientas de administración de archivos de paquetes @puppetlabs. Parece que es un poco inmaduro en este momento. Mi archivo central ahora se está llenando de archivos, pero parece que no tengo una manera de determinar qué host se originó. Sin embargo, su 1-liner es útil.
robbyt
Creo que si varios hosts tienen archivos idénticos en el archivo de archivos, solo se almacenarán una vez, por lo que la relación entre los archivos en el archivo y los hosts no es simple.
Freiheit
0

Una sugerencia sería agregar archivos a un servidor de control de revisión (svn, git). Guardo todos los archivos que se correlacionan con un módulo específico en el directorio de módulos en / files. Cuando se modifica un archivo, se registra en SVN y se envía al maestro mediante ganchos.

Por ejemplo, tengo un módulo que administra postfix y envía los archivos / etc / postfix / virtual a los clientes. Esos archivos se almacenan en / etc / puppet / modules / postfix / files.

Esto le brinda la ventaja de reutilizar el código que se crea en sus módulos, así como de organizar los archivos por módulos.

st3v3o
fuente
2
filebucket! = servidor de archivos. Cometí el mismo error al leer la pregunta la primera vez.
Sirex
Sí, estoy hablando del paquete de títeres. El sistema en Puppet que reubica los archivos reemplazados en un área de ensayo en lugar de simplemente eliminarlos. linux.die.net/man/8/filebucket
robbyt
En realidad tampoco lo entiendo. Si tiene todas las versiones de archivos de configuración en git repo, ¿por qué meterse con filebucket? ¿Eliminar accidentalmente algo más? Eliminar algo más es bastante explícito en la marioneta. IMHO filebucket fue diseñado para personas sin control de versiones en absoluto.
Art Shayderov
No, los archivos de archivos solo son útiles para la recuperación manual de archivos eliminados / sobrescritos accidentalmente (por ejemplo, busca en el registro la suma md5 y recupera el archivo con esa suma del archivo de archivos), pero cuando las transacciones son totalmente compatibles, los archivos de archivos se utilizarán para deshacer transacciones.
Martijn Heemels