8 votos

La tecnología para la corta vida privada VMs

Estoy tratando de construir un sistema que se ejecutará de corta duración (CI y compilaciones de prueba) de los componentes de software, es obligatorio de acuerdo a mis necesidades que cada uno vive en un host. Yo estoy tomando la definición para incluir paravirtualsation opciones como bueno, como parece que me va a ahorrar un montón de dolores de cabeza.

Estoy trabajando en un Mac, por lo que prácticamente toda la tecnología que está fuera, libvirt y quemu, etc simplemente no funciona para mí. Sin embargo, estoy de planificación en la implementación de Debian, así que cualquier cosa que se ejecuta en Debian está de vuelta en la mesa, siempre que el script para el aprovisionamiento de los host de la máquina, así como de los dominios invitados.

Mi intención instalación se que puedo usar para arrancar un instalador de Debian, que algo debe significar que en el arranque, la máquina se proporciona automáticamente (Chef, Puppet, Babushka, no me importa, la verdad), y parte de que el aprovisionamiento debe construir una plantilla rootfs que pueden ser utilizados para el arranque de un contenedor. El recipiente también necesita ser creado, de modo que cuando el contenedor llega, sabe qué tipo de trabajo se tiene que hacer, y puede hacer el trabajo, y luego salir.

En resumen, el flujo de trabajo necesito:

  1. De arranque de una máquina (virtual o no) y tenerlo listo para hacer el trabajo.
  2. El trabajo deberá ser realizado por un script instalado por el chef/títeres/babushka/etc
  3. Cuando el trabajo es en una máquina virtual se debe de empezar a hacer el trabajo.
  4. La VM debe hacer el trabajo, salir y liberar recursos para los padres/host de la máquina. (es importante que esta escala para, al menos, cientos de las máquinas virtuales en razonable de hardware)

He llegado a un punto en el que he intentado de la siguiente, y abandonado por las razones entre líneas a continuación:

Para el host de la máquina

  1. Pre-seed Debian micro imágenes ISO con Instalinux (LinuxCOE copia) (Malo: no funciona en absoluto ("No hay módulos del kernel encontrado"( porque el Instalinux imágenes están fuera de sincronía con los repositorios FTP, al parecer, esta solución es muy frágil, también no permite mucho margen para después de la instalación, y soltando conoce las claves SSH, claves de host, etc en la máquina, parece que dispara y olvida, en fin me gustaría tener una máquina de correr, pero no hay acceso a ella.)
  2. Pre-seed Debian ISO netinst (Malo: mismos problemas, como los anteriores, excepto que, al menos, la instalación suele completarse ya que no hay ningún kernel disparidad entre la ISO y el repositorio FTP. Todavía limitado para la post-instalación. Buenas: Absolutamente fiable y repetible, fáciles de lanzar en cualquier máquina virtual de tecnología de la pila en Mac o en un bare metal de la máquina, podría trabajar en cualquier lugar, sin embargo no puedo después de la instalación es suficiente)
  3. Varios métodos de construcción de un rootfs, y la compilación como un disco duro de arranque de la imagen (Mala: Lo poco que he podido conseguir trabajo era frágil como el infierno, que sería difícil de instalar en una máquina real, y es un complejo proceso de construcción. Bueno: Si yo pudiera llegar a trabajar, esto parece proporcionar el mayor alcance para la pre-configuración de la máquina para una determinada especificación con claves ssh, claves de host, nombre de host, el software instalado Git y cualquier otra cosa, pero entonces la pregunta sería cómo empaquetarlo para su distribución, o cómo secuencia de comandos es la recreación.)

Francamente no estoy seguro de lo que la tecnología que se espera que use para abrir una máquina virtual a partir de la nada a una marcha, el trabajo y la utilidad del sistema. Parece como tres pasos de mí) sistema operativo b) configuración del sistema (usuarios, etc) y, a continuación, c) sistema de ficheros cambios.

Para que el huésped (virtual) de las máquinas:

  1. Un montón de cosas, en su mayoría, creo que la respuesta aquí es de sólo lectura rootfs creado con debootstrap, y una partición especial en la LXC recipiente que contiene el trabajo realizado para esta instancia específica (un trabajo de manifiesto). Insertar todas las habituales advertencias acerca de la construcción de la OS, de arranque, creación de usuarios, la desprotección de software de git, y hacer el trabajo.

Estoy realmente no está seguro de qué herramientas a alcanzar, parece que el problema debe estar bien resuelto. Pero yo simplemente no puede averiguar donde conseguir realmente un comienzo.

La mayoría de las personas parecen sugerir para el host de la máquina que debo seleccionar una tecnología de virtualización, de arranque de una máquina a un estado de funcionamiento, y luego instantánea (libvirt parece lógico favorito para esta). El uso de la instantánea para que aparezca cualquiera de las siguientes instalaciones para las pruebas, o en la producción.

Para las máquinas de huésped, lxc parece ofrecer la opción más fácil, salvo que el fondo de la página de un contenedor, y conectarse a ella más adelante sobre la consola se rompe en todos los presentes, los granos, y la versión más reciente de lxc a disposición estable de Debian es más de 18 meses de edad, y que carece de una gran cantidad de características que son ampliamente theatre.

Normalmente soy un desarrollador de aplicaciones, y yo no suelo trabajar con el servidor de nivel de la tecnología (y estoy seguro de que el SF marcará esta cuestión como "subjetivo"), pero estoy realmente seguro de que las herramientas para alcanzar.

Última palabra es la que yo conozco de una manera similar apilados proyecto (travis-ci.org) que están usando Vagrant casillas. Que parece más bien un instrumento romo, grande, lento, ruby orientado a las herramientas diseñadas para los pequeños de escritorio de aprovisionamiento de las pruebas de VMs de ser utilizados para los servicios críticos de la infraestructura, pero también sé que algunos de esos chicos, y ellos son más inteligentes que yo, de modo que tal vez simplemente se dio por vencido.

Cualquier ayuda es apreciada.

2voto

Hauke Laging Puntos 3496

Algunas ideas:

  1. Su punto de "cientos de máquinas virtuales en razonable de hardware" me hace (sin la experiencia personal) creo que de VMs que arrancar o bien a través de la red o compartir más de su volumen de espacio (/usr) a través de NFS. Depende de lo similar de sus máquinas virtuales.
  2. "Lo poco que he podido conseguir trabajo era frágil como el infierno" es Difícil de creer. ¿Se puede ser más precisa cuál es el problema?
  3. "sería difícil de instalar en una máquina real" Que significa "difícil" en comparación con lo que, para la quería solución de 1-click para VM creación? Quisiera preguntar: ¿qué tan difícil es esto y qué tan a menudo es que esto va a suceder? ¿Cuál es la diferencia a la hora de recrear el initrd para el hardware correspondiente?
  4. "sin embargo no puedo después de la instalación es suficiente" Lo que usted vara/necesidad y el por qué de que no funcione? Usted podría hacer la descarga de una secuencia de comandos de inicio de proceso. La VM obtiene su IP por DHCP (duro configurado para las VMs dirección MAC) y Samba ofrece diferentes de post-instalación de scripts para las máquinas virtuales, dependiendo de la dirección IP del cliente.

1voto

James Thompson Puntos 91

Al leer tu post me quedé pensando que vagrant y jenkins, con el vagrant plugin que se ajuste a sus necesidades muy bien. Cualquier caja que realmente puede manejar el número de máquinas virtuales que estás hablando no cuenta siquiera de la sobrecarga de las herramientas de conservación del medio ambiente.

0voto

nelaar Puntos 260

El uso de algunas cosa que trabaja en apple y Debian, la única cosa que he intentado es virtual box. Qué bonito el uso de virtualbox aquí se podría construir una máquina virtual en su sistema mac y copiarla en un sistema Debian usando la misma versión de virtual box y se iniciará.

Tener cientos de máquinas virtuales usando virtual box sonido como va a pasar un poco de tiempo utilizando el vboxmange de la interfaz de comandos para la necesaria único de información para cada máquina virtual. Como uuid para unidades de disco duro, la dirección mac de las interfaces de red.

Si la base del sistema se va a utilizar el mismo software configurado de la misma manera, usted puede crear una instantánea del sistema en virtual box y congelar. De modo que no se realizaron cambios son escritos a lo largo de su congelado snap shot, pero en cambio están escritos en la nueva área de almacenamiento temporal. Luego shudown la VM, restaurar de nuevo a la snap shot y que están trabajando en un sistema limpio con los cambios que se hicieron durante las pruebas. Todo esto puede ser escrito usando vboxmange.

Mediante su ajuste de disparo también se podría hacer cientos de copias de la imagen de VM. El uso de la vboxmange interfaz de secuencias de comandos para realizar las copias, de una manera única que importa es decir, uuid y direcciones mac. A continuación, tiene un inicio de secuencia de comandos de llamar a lo que nunca cambia, configs que usted necesita para aplicar en sus máquinas virtuales para probar, o la ejecución de diversas pruebas.

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: