Como testar o script de provisionamento da VM sem provisionar


10

Atualmente, estou em um estado em que os testes me custam dinheiro e muito tempo ...

Antecedentes: estou implantando VMs no softlayer e usando um script de pós-implantação (bash) que instalará todos os softwares que eu preciso depois que a VM estiver pronta. O problema é que eu só posso testar esse script implantando uma VM, e atualmente está demorando cerca de 4h para que o script seja concluído ... Portanto, todas as alterações que eu fizer precisam criar uma nova VM (custa dinheiro) e esperar por 4 horas para ver se o script está quebrado ou não ... Isso está se tornando caótico e não poderei avançar se continuar assim.

Preciso de uma nova maneira de abordar esse tipo de situação e poder testar o script de provisionamento mais rapidamente e sem precisar implantar uma nova VM todas as vezes.

Vocês conhecem alguma ferramenta para me ajudar nesse cenário?


4
Não é possível testar seu script de provisionamento (bash) em uma VM de desenvolvimento local executando-o localmente?
Rekovni

3
Este é um lugar onde uma nuvem privada brilharia. Comprar um e configurá-lo pode custar menos do que o que você está fazendo atualmente. Execute os números. Veja o que faz sentido para você.
chicks

Respostas:


10

Eu posso ver algumas opções:

  • Use o Vagrant para criar suas VMs; ele separa o processo de criação da VM (incluindo o sistema operacional base) e o provisionamento real. Ele também possui algumas opções para executar determinadas etapas de provisionamento apenas em determinadas circunstâncias.
  • Use Ansible, Puppet ou algo parecido para alternar para um modo de provisionamento em que você não faz as mesmas coisas todas as vezes, mas apenas o necessário. Isso significa que você pode iniciar o trabalho e, na primeira parte com falha, parar. Corrija essa parte e continue.
  • Use o Docker. Isso é um pouco diferente da abordagem Vagrant / Ansible, na medida em que cria contêineres (dos quais você realmente não precisa, pelo que sei). Além do enfoque Ansible, ele tem o benefício de oferecer um processo de desenvolvimento passo a passo detalhado. Ou seja, se um passo falhar, você ainda terá todas as imagens que levam a isso; portanto, durante o desenvolvimento, com um pouco de disciplina, você se torna muito, muito rápido.

Todas essas ferramentas fazem muito mais do que você precisa, mas todas elas oferecem uma maneira de realizar seu trabalho de forma incremental. Vagrant, Ansible e Docker são bem fáceis de aprender, no que me diz respeito (desde que você esteja no modo Dev / Test, as partes "interessantes" começam quando você vai para a produção). O Ansible é muito minimalista e não precisa de nada, exceto uma conexão ssh. O Vagrant e o Docker podem não ser viáveis ​​em sua infraestrutura, você verá rapidamente.


6

http://www.vagrantup.com

Você pode usar o vagrant para implantar VMs no laptop local.

Você também pode verificar se é possível dividir o script em partes menores para que não demore quatro horas para testá-lo.


5

Se o teste local não for uma opção, a abordagem mais direta seria usar instantâneos / backups do volume do disco para sua vantagem. Isso ainda custará $$$, mas economizará tempo a longo prazo. Você deve então separar seu script bash em diferentes segmentos / scripts de trabalho que podem ser testados individualmente. Depois que seu servidor for provisionado, execute um script e tire uma captura instantânea. Se tiver sido bem-sucedido, execute o próximo script, tire uma captura instantânea, enxágue e repita. Se o seu script falhar, modifique-o, reverta para o último instantâneo bem-sucedido e tente novamente.

NOTA: Não tenho certeza se você pode tirar instantâneos de discos de máquina virtual no IBM Cloud / Softlayer, mas parece que você pode criar uma imagem de VM com bastante facilidade.

Fazendo backup de imagens de máquina virtual

Você pode fazer backup de uma imagem de máquina virtual em sua instância. Essa função cria uma cópia da imagem da máquina virtual e da configuração da nuvem que pode ser restaurada posteriormente. Além disso, você pode gerenciar essas imagens de backup. Os detalhes sobre a imagem de backup são os seguintes:

A imagem de backup é uma cópia exata da imagem da máquina virtual e da configuração da nuvem. Nenhuma limpeza de imagem é realizada.

  • A imagem de backup não pode ser implantada como uma nova instância. Ele pode ser usado apenas para restaurar a imagem da máquina virtual associada e a configuração da nuvem.

  • Somente o proprietário do projeto (ou um administrador) tem acesso para restaurar as imagens da máquina virtual de backup e a máquina virtual de backup.

  • Se você estiver usando uma nuvem do OpenStack, apenas uma operação de backup da instância será permitida ao mesmo tempo. Se outro usuário estiver executando um backup e você iniciar um na mesma instância, você receberá um erro informando que há uma solicitação conflitante. Para executar um backup, você deve esperar até que o outro backup seja concluído.

  • As instâncias do OpenStack PowerVM e z / VM não suportam esta ação.

  • Se a instância for excluída usando o IBM® Cloud Manager com OpenStack, os backups associados também serão excluídos.

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.