Cómo probar el script de aprovisionamiento de VM sin aprovisionamiento


10

Actualmente estoy en un estado en el que las pruebas me cuestan dinero y mucho tiempo ...

Antecedentes: estoy implementando máquinas virtuales en softlayer y estoy usando un script posterior a la implementación (bash) que instalará cada software que necesito una vez que la máquina virtual esté lista. El problema es que solo puedo probar esta secuencia de comandos mediante la implementación de una VM, y actualmente toma alrededor de 4 horas para que la secuencia de comandos termine ... Por lo tanto, cada cambio que hago necesito crear una nueva VM (cuesta dinero) y esperar alrededor 4 horas para ver si el script está roto o no ... Esto se está volviendo caótico y no podré avanzar si me quedo así.

Necesito una nueva forma de abordar este tipo de situación y poder probar el script de aprovisionamiento más rápidamente y sin necesidad de implementar una nueva VM cada vez.

¿Conocen alguna herramienta para ayudarme en este escenario?


44
¿No es posible probar su script de aprovisionamiento (bash) en una máquina virtual de desarrollo local ejecutándolo localmente?
Rekovni

3
Este es un lugar donde brillaría una nube privada. Comprar uno y configurarlo podría costarle menos de lo que está haciendo actualmente. Ejecuta los números. Mira lo que tiene sentido para ti.
pollitos

Respuestas:


10

Puedo ver algunas opciones:

  • Use Vagrant para crear sus máquinas virtuales; separa el proceso de creación de la VM (incluido el sistema operativo base) y el aprovisionamiento real. También tiene algunas opciones para ejecutar ciertos pasos de aprovisionamiento solo en ciertas circunstancias.
  • Use Ansible, Puppet o algo así para cambiar a un modo de aprovisionamiento donde no hace lo mismo todo el tiempo, sino solo lo que se necesita. Esto significa que puede comenzar el trabajo y, en la primera parte fallida, detenerse. Arregle esa parte, luego continúe.
  • Utiliza Docker. Esto es ligeramente diferente del enfoque Vagrant / Ansible en que crea contenedores (que en realidad no necesitas, por lo que puedo decir). Tiene el beneficio, más allá del enfoque Ansible, de que le brinda un proceso de desarrollo paso a paso muy detallado. Es decir, si un paso falla, todavía tienes todas las imágenes que conducen a eso, así que durante el desarrollo, con un poco de disciplina, te vuelves muy, muy rápido.

Todas estas herramientas hacen mucho más de lo que necesita, pero todas le brindan una forma de hacer su trabajo de forma incremental. Vagrant, Ansible y Docker son bastante fáciles de aprender, en lo que a mí respecta (siempre que esté en modo Dev / Test, las partes "interesantes" comienzan cuando va a la producción). Ansible es muy minimalista y no necesita nada más que una conexión ssh. Vagrant y Docker podrían no ser factibles en su infraestructura, verá rápidamente.


6

http://www.vagrantup.com

Puede usar vagabundo para implementar máquinas virtuales en la computadora portátil local.

También puede verificar si es posible dividir el script en partes más pequeñas para que no tome cuatro horas probarlo.


5

Si las pruebas locales no son una opción, entonces el enfoque más directo sería utilizar instantáneas / copias de seguridad del volumen del disco para su ventaja. Todavía costará $$$, pero a la larga le ahorrará tiempo. Luego debe separar su script bash en diferentes segmentos / scripts de trabajo que se pueden probar individualmente. Una vez que su servidor esté aprovisionado, ejecute un script y luego tome una instantánea. Si tuvo éxito, ejecute el siguiente script, tome una instantánea, luego enjuague y repita. Si su secuencia de comandos falla, modifique la secuencia de comandos, vuelva a la última instantánea exitosa e intente nuevamente.

NOTA: No estoy seguro de si puede tomar instantáneas de discos de máquinas virtuales en IBM Cloud / Softlayer, pero parece que puede crear una imagen de VM con bastante facilidad.

Copia de seguridad de imágenes de máquinas virtuales

Puede hacer una copia de seguridad de una imagen de máquina virtual en su instancia. Esta función crea una copia de la imagen de la máquina virtual y la configuración de la nube que se puede restaurar más tarde. Además, puede administrar estas imágenes de respaldo. Los detalles sobre la imagen de respaldo son los siguientes:

La imagen de respaldo es una copia exacta de la imagen de la máquina virtual y la configuración de la nube. No se realiza ninguna limpieza de imagen.

  • La imagen de copia de seguridad no se puede implementar como una nueva instancia. Solo se puede usar para restaurar la imagen de máquina virtual asociada y la configuración de la nube.

  • Solo el propietario del proyecto (o un administrador) tiene acceso para restaurar las imágenes de la máquina virtual de respaldo y la máquina virtual de respaldo.

  • Si está utilizando una nube OpenStack, solo se permite una operación de copia de seguridad de instancia al mismo tiempo. Si otro usuario está ejecutando una copia de seguridad y usted inicia una en la misma instancia, recibirá un error que indica que hay una solicitud en conflicto. Para realizar una copia de seguridad, debe esperar hasta que finalice la otra copia de seguridad.

  • Las instancias de OpenStack PowerVM® y z / VM® no admiten esta acción.

  • Si la instancia se elimina utilizando IBM® Cloud Manager con OpenStack, las copias de seguridad asociadas también se eliminan.

https://www.ibm.com/support/knowledgecenter/en/SST55W_4.1.0/liacb/liacbsaverestorevsvmw.html

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.