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. Están agrupados en un grupo de clústeres como Base de datos A-n, Producto A-n, NFS, Backoffice, etc. Además, son administrados por un proveedor externo, de acuerdo con nuestras especificaciones y requisitos.
Sin embargo, nos enfrentamos a muchos problemas durante el desarrollo, despliegue e implementación del software (web), especialmente porque los entornos de desarrollo y ensayo no tienen casi nada en común con los sistemas en vivo (me ahorro los detalles desagradables...) .
Por lo tanto, traté de crear máquinas virtuales, copié los diversos sistemas en vivo lo más exactamente posible y los preparé para conectarse, p. las bases de datos de desarrollo en lugar de las "reales" de forma transparente para los desarrolladores (no son root
). Esto funciona bastante bien, pero...
Me preguntaba cómo se podrían administrar esos sistemas de forma remota y en bloque. ? ¿Hay alguna familia de software que desconozco? ¿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 cada sistema y/o preguntar a mi colegas para descargar y ejecutar algún script de dispositivo?
Creo que hay un montón de 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 ejecutan Debian GNU/Linux 6.x "squeeze"
- Ningún desarrollador está obligado a usar un sistema operativo en 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
Respuesta aceptada:
Depende de lo que necesites exactamente y de lo que estés buscando. Pero en general existen múltiples soluciones para la “gestión de la configuración como:
- títere
- cocinero
- cfengine
- ansible
- sal
etc. Personalmente, recomendaría títeres, ya que tiene una gran comunidad y muchas recetas proporcionadas por terceros. Esto le permite configurar y administrar sistemas automáticamente. Si combina esto con repositorios propios y actualizaciones automáticas a través de, p. unattended-upgrades
puede actualizar automáticamente el sistema.
Otra solución es simplemente proporcionar sus propios paquetes como company-base
etc. que automáticamente depende del software necesario y puede configurar su sistema automáticamente.
También debe buscar implementaciones automáticas (básicas y virtualizadas). Si combina esto con la gestión de configuración o su propio repositorio, puede automatizar y reinstalar fácilmente sus sistemas. Si desea comenzar con la instalación automatizada, eche un vistazo a theforman, que es compatible con libvirt, así como con instalaciones básicas y tiene soporte de marionetas integrado. Si desea hacerlo usted mismo, puede consultar kickstart (redhat et. al.) o "preconfiguración" para configurar automáticamente su sistema. Para Debian, también puede usar algo como debootstrap o un envoltorio llamado grml-debootstrap que admita imágenes virtualizadas.
Relacionado:Linux:¿Reaver sigue repitiendo el mismo pin en Kali Linux?Para ayudar a proporcionar las imágenes de VirtualBox para su desarrollador, eche un vistazo a vagrant, que le permite automatizar la creación de sistemas virtualizados con scripts de chef, marionetas y shell compatibles con VirtualBox para personalizar su entorno virtual.
Si desea utilizar la solución de su proveedor actual, debe preguntarles cómo administran sus sistemas, pero probablemente será algún tipo de administración de configuración. Es posible que pueda ejecutar su agente en sus sistemas si puede acceder al servidor de configuración.
Para las palabras clave de Google, busque en devops
, configuration management
, it automation
y server orchestration
.
En resumen, automatice tanto como sea posible y ni siquiera piense en hacer las cosas manualmente.