Además de nuestra infraestructura de TI interna, tenemos alrededor de 500 máquinas Linux que alojan nuestros servicios para el mundo en línea. Se agrupan en un grupo de grupos como Base de datos An, Producto An, NFS, Backoffice, etc. Además, son administrados por un proveedor externo, de acuerdo con nuestras especificaciones y requisitos.
Sin embargo, enfrentamos muchos problemas durante el desarrollo, despliegue e implementación de software (web), especialmente porque los entornos de desarrollo y puesta en escena no tienen casi nada en común con los sistemas en vivo (evito los detalles desagradables ...) .
Por lo tanto, intenté crear máquinas virtuales, copié los diversos sistemas en vivo de la manera más exacta posible y los preparé para conectarse, por ejemplo, a las bases de datos de desarrollo en lugar de las "reales" de forma transparente para los desarrolladores (no lo son root
). Esto funciona bastante bien, pero ...
Me preguntaba cómo se podrían administrar esos sistemas de forma remota y a granel . ¿Hay alguna familia de software que no conozca? ¿O, al menos, algunas técnicas o principios con los que uno debería estar familiarizado?
Proporcionaríamos a cada desarrollador un montón de imágenes para que se ejecuten localmente (VirtualBox). El departamento de control de calidad. obtendría clústeres virtuales (XEN o Hyper-V). Si necesito proporcionar un módulo de servidor adicional, redirigir una nueva conexión de base de datos o simplemente quiero actualizar todo lo proporcionado por el administrador de paquetes ... ¿cómo podría hacerlo sin tener que iniciar sesión en todos los sistemas y / o ¿pedirle a mis colegas que descarguen y ejecuten algún script de fijación?
Creo que hay muchas soluciones. Bueno, de alguna manera soy demasiado estúpido para ingresar las palabras clave correctas en los motores de búsqueda ... ¿O no es este problema tan trivial como parece?
Para el registro:
- Casi todos los sistemas están ejecutando Debian GNU / Linux 6.x "squeeze"
- Ningún desarrollador está obligado a usar un sistema operativo particular en su estación de trabajo
- El presupuesto es limitado, por supuesto, pero no demasiado pequeño para comprar software propietario.
- Se prefiere una solución que involucre a nuestro proveedor antes mencionado
fuente
cucumber-puppet
. Por supuesto, puede desarrollar / hacer crecer su propio marco reutilizando los componentes existentes, pero parece que OP no tiene nada actualmente y, si comienza desde cero, creo que es mejor usar un marco existente.Ulrich ya dio la respuesta con respecto a la implementación del software y la configuración automática del servidor.
Los principios detrás de esto son
Usted solicitó una herramienta útil para administrar grandes cantidades de servidores; mi favorito personal es cluster-ssh (
cssh
). Escriba una vez y realice cambios en muchos servidores simultáneamente.Si descubre un problema y tiene una solución que lo elimina:
Si se enfrenta a una gran cantidad de servidores para arreglarlo, este es un proceso que debe estar bien documentado y, al final, un equipo diferente debe verificar si la corrección se ha aplicado por completo.
Empleamos Mantis (código abierto, PHP) para ese propósito.
fuente
Administro unos 30 productos y unos pocos cientos de servidores en varios países. Soy el administrador de configuración de software, por lo que no tengo acceso a la raíz (por diseño), no toco las bases de datos o sus servidores (nuevamente, por diseño) y tengo que saltar muchos obstáculos debido a la seguridad corporativa. Pero sí administro las configuraciones en prueba, preparación y producción, incluidos los enlaces y cambios de la base de datos. Tengo una serie de scripts que salen a los servidores que utilizan combinaciones de
ssh
,python
y Shell scripts.Las cosas principales para pensar son:
ssh
suficiente y desde una ubicación central segura?ssh
ejecutarlo de forma remota? ¿Puedes escribirlo conexpect
una invocación de línea de comandos o solo con ella ?VirtualBox ofrece muchas herramientas de línea de comandos que puede administrar a través de
ssh
sistemas o sistemas comopuppet
lo menciona Ulrich.fuente