28 votos

Son herramientas de administración de configuración (Puppet, Chef), capaz de mantener los paquetes instalados hasta la fecha?

Esta es probablemente una simple pregunta para aquellos de ustedes que ya están ejecutando herramientas de administración de configuración. Son herramientas de administración de configuración, tales como Puppet o Chef el enfoque correcto para mantener los paquetes instalados hasta la fecha?

Supongamos que tengo un número de servidores, la mayoría de ellas basadas en Debian y Ubuntu. Qué herramientas de administración de configuración hacen que sea más fácil para los paquetes de actualización instalado desde los repositorios cuando las actualizaciones de seguridad o correcciones de errores a lo largo de venir?

Yo actualmente ejecutar "actualizaciones desatendidas" para permitir que los sistemas de instalar automáticamente las actualizaciones de seguridad, pero todavía tengo que conectar a los servidores y ejecutar aptitude update && aptitude safe-upgrade cada tan a menudo. Naturalmente, esto se pone aburrido, tedioso y propenso a errores más servidores que hay.

Son herramientas tales como Puppet o Chef el enfoque correcto para mantener los paquetes instalados hasta la fecha? ¿El uso de estas herramientas para evitar la ejecución manualmente aptitude o un equivalente de 15 servidores? Estoy bastante seguro de que la respuesta a estas preguntas es "Sí, por supuesto!"

Pero ¿dónde puedo encontrar más información acerca de este caso de uso en particular? Aún no he tenido el tiempo para estudiar Puppet o Chef en profundidad, y el ejemplo de los libros de cocina o sólo las clases de mostrar más o menos trivial ejemplos de instalación de un paquete en particular, tales como ssh. ¿Tiene los recursos para recomendar, aparte de la documentación oficial (yo soy, por supuesto, va a estudiar la documentación una vez que sé que, en su caso, de las herramientas son adecuadas para mí).

22voto

Pablo Venturino Puntos 1660

Usted puede hacerlo con títeres, puedes hacer:

ensure => latest,

o

ensure=> "1.0.2",

para especificar la última/versión requerida. es decir,

package { apache2: ensure => "2.0.12-2" }
package { apache2: ensure => latest }

Esto hace por lo menos significa que usted puede especificar la misma versión para todos los sistemas, así como la prevención de los servidores (potencialmente peligrosa) de forma automática la actualización de sí mismos. He utilizado este método en la producción en un número de sitios, y funciona muy bien.

Ejecuta las actualizaciones desatendidas me asusta un poco, especialmente si se está actualizando de misión crítica paquetes, kernels, mysql bibliotecas, apache, etc. Especialmente si el script de instalación posible que desee reiniciar el servicio!

18voto

John Arundel Puntos 529

Creo que esta es probablemente la pregunta equivocada. Ciertamente que el uso de herramientas de administración de configuración como Puppet y el Chef para mantener su infraestructura es un gran salto adelante de tratar de hacerlo todo manualmente. El tema de mantener su paquete versiones hasta la fecha y en la sincronización no es de las que cualquiera de estas herramientas resuelve directamente. Para automatizar este correctamente que usted necesita para llevar el paquete de los repositorios se encuentran bajo su control.

La forma en la que hago esto es para mantener un dedicado Yum repo (para Redhat/Fedora/CentOS; un buen repositorio para Debian/Ubuntu) que contiene los paquetes que me interesa para un sitio en particular. Estos generalmente se las dependencias de la propia aplicación (Ruby, PHP, Apache, Nginx, bibliotecas, etcétera) y críticos para la seguridad de los paquetes.

Una vez que haya este conjunto (por lo general, usted puede simplemente reflejar los paquetes necesarios desde arriba la repo para empezar) puede utilizar del Puppet de garantizar "= > últimas" sintaxis para asegurarse de que todas las máquinas estarán actualizados con la repo.

Sería conveniente el uso de una 'puesta en escena' repo para permitirle probar las versiones actualizadas de los paquetes antes de que pasen alegremente a la producción. Esto se hace fácilmente con Puppet sin la duplicación de código utilizando el repositorio de plantillas.

La automatización de su paquete de control de versiones recomienda encarecidamente que sacar todos sus sistemas de producción en la sincronización, como el mantenimiento de múltiples repositorios y paquetes de diferentes distros del SO, versiones y arquitecturas de máquina es mucho tiempo y es probable que llevar a todo tipo de ocultar los problemas e incompatibilidades.

Todos los de este consejo se aplica igualmente a las gemas de Ruby, Python, huevos y otros sistemas que se pueden utilizar.

He escrito un pequeño Puppet tutorial que deben ayudarle a levantarse y correr con Puppet rápidamente. Usted podría implementar una costumbre repo definición de sus máquinas el uso de Puppet como el primer paso para traer las versiones de los paquetes bajo control.

9voto

Perlchild Puntos 116

Puppet (estoy bastante seguro de chef hace también) se vincula con el apt-get/yum repositorios de software. Ya que hacen el trabajo pesado de averiguar qué paquetes están disponibles, lo que significa ensure => latest sólo funciona para Ubuntu/CentOS/Debian similares. Como establece el correspondiente archivos correctamente (/etc/apt/sources.list, etc).

5voto

Walter Heck Puntos 84

Esta pregunta es viejo, pero pensé que tenía que responder en un up-to-fecha de la manera como actualmente existentes respuesta no estaba disponible en ese entonces.

Si usted está usando puppet o chef, mira en mcollective. Es una herramienta muy bonito por el puppetlabs chicos que permite enviar comandos a los grupos de servidores. http://docs.puppetlabs.com/mcollective/

También tiene un buen plugin, que puede ser utilizado para hacer un apt update en cualquier número de servidores: http://projects.puppetlabs.com/projects/mcollective-plugins/wiki/AgentApt

5voto

Ryan Sampson Puntos 2898

Mientras Puppet/Chef son los candidatos posibles para esta funcionalidad, para conservar todo el sistema para arriba-a-fecha en que se requiere tipos personalizados o listado de todos los paquetes (incluidas las subyacentes a las bibliotecas del sistema, como libc6) como de los recursos con ensure => latest. Para el caso específico de los sistemas automatizados de las actualizaciones de los paquetes, es posible que desee buscar en la cron-apt paquete, que no lo desea así.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: