¿Cómo automatizar la configuración del servidor Linux?

25

¿Hay alguna forma de automatizar la configuración del servidor Linux? Estoy trabajando para configurar un par de nuevos servidores de compilación, así como un servidor FTP, y me gustaría automatizar la mayor parte del proceso posible.

La razón de esto es que la instalación y configuración de estos servidores debe hacerse de una manera fácilmente repetible. Pensamos que automatizar la mayor cantidad posible de este proceso haría que sea más fácil repetirlo según sea necesario en el futuro.

Esencialmente, todo lo que necesitan los servidores es instalar el sistema operativo, así como un puñado de paquetes. No hay nada demasiado complicado sobre las configuraciones.

Entonces, ¿hay alguna manera de automatizar este proceso (o al menos una parte de él)?

EDITAR: Además, digamos que uso Kickstart, ¿hay alguna forma de eliminar los repositorios predeterminados de Ubuntu e instalar los paquetes de una colección de archivos .deb que tenemos localmente (preferiblemente a través de apt, en lugar de dpkg)?

usuario1617942
fuente
¿Qué distribución elegiste instalar? Eso sería útil para determinar el siguiente paso
eyoung100
Sin embargo, tenga en cuenta que la tarea de automatización puede llevar mucho tiempo. Si planea instalar menos de 10 hosts, puede que no valga la pena la tarea.
Archemar
Recientemente me enteré de las características que ofrece saltstack (Repo más contribuido en Github). Recomiendo encarecidamente que lo busque, ya que ofrece herramientas para crear nuevos servidores en servicios como aws e implementar configuraciones, configuraciones, escribir archivos, acceso a shell remoto, acceso a shell masivo. incluso restricción de acceso. Casi todo lo que necesitarías hacer parece. Aunque tengo buenos amigos que juran por Ansible para nuevas configuraciones de servidor.
ThorSummoner
+1 para ti y mattdm ... No sabía que este foro existía hasta que lo vi en las Preguntas de la Red Caliente y ni siquiera pensé que esta pregunta tuviera una respuesta. ¡Me alegra que hayas preguntado y la respuesta fue muy buena !
Sylas Seabrook

Respuestas:

36

¡Sí! Este es un gran problema, e increíblemente común. Y hay dos enfoques básicos. Una forma es simplemente con las instalaciones con secuencias de comandos, como, por ejemplo, las usadas en Fedora, RHEL o el arranque de CentOS. Mira esto en la guía de instalación de Fedora: Instalaciones Kickstart . Para su caso simple, esto puede ser suficiente. (Tome esto como un ejemplo; hay sistemas similares para otras distribuciones, pero como trabajo en Fedora, eso es con lo que estoy familiarizado).

El otro enfoque es utilizar la gestión de la configuración . Este es un gran tema, pero busca en Puppet, Chef, Ansible, cfengine, Salt y otros. En este caso, puede usar un kickstart genérico muy básico para aprovisionar una máquina mínima, y ​​la herramienta de administración de configuración para llevarlo a su función adecuada.

A medida que crecen sus necesidades e infraestructura, esto se vuelve increíblemente importante. El uso de la administración de configuración para todos sus cambios significa que puede recrear no solo la instalación inicial, sino también el estado evolucionado del sistema a medida que introduce los ajustes y arreglos inevitables causados ​​por la interacción con el mundo real.

Pensamos que automatizar la mayor cantidad posible de este proceso haría que sea más fácil repetirlo según sea necesario en el futuro.

Está absolutamente en el camino correcto: este es el principio fundamental de la administración de sistemas profesionales. Incluso tenemos una imagen meme para ello:

AUTOMATIZAR TODAS LAS COSAS

A menudo es moderadamente difícil de configurar inicialmente, y puede haber una gran curva de aprendizaje para algunos de los sistemas más avanzados, pero se amortiza para siempre. Incluso si solo tiene un puñado de sistemas, piense cuánto quiere trabajar para recrearlos en caso de catástrofe en el medio de la noche o cuando esté de vacaciones.

mattdm
fuente
1
¡Muchas gracias! Comenzaré a investigar todo esto.
user1617942
No mencionaste Zapatero.
Brian
@staticx Sí, esto no es exhaustivo. También hay todo un mundo de sistemas de aprovisionamiento: Cobbler, Foreman, Satellite / Spacewalk, FAI, Razor, y eso ni siquiera entra en la nube.
mattdm
@ChrisK Ja, yo diría lo mismo;)
William Edwards
0

Slingshot es un script para automatizar la instalación y configuración de paquetes de software de Linux. Tirachinas tiene y usa una plantilla / sistema de mensajería.

http://www.dyncomp.net/what-is-slingshot/

Daniel Huckson
fuente
0

Recomiendo mucho a Puppet . Es ampliamente utilizado, bien documentado y respaldado.

Willian Paixao
fuente