Pergunta

Atualmente estou trabalhando em um produto do lado do servidor que é um pouco complexa para implantar em um novo servidor, o que o torna um candidato ideal para testar em uma VM. Nós já estamos usando Hudson como nosso sistema de CI, e eu realmente gostaria de ser capaz de implantar uma imagem de máquina virtual com o software mais recente e maior como um artefato de construção.

Então, como é que um vá sobre como fazer isso exatamente? O software VM é recomendado para esta finalidade? Quanto às necessidades de script a ser feito para alcançar este objetivo? Existem problemas, em particular, ao usar o Windows 2003 Server como o sistema operacional aqui?

Foi útil?

Solução

Sorry negar qualquer uma resposta aceito aqui, mas com base em pesquisas adicionais (graças a suas respostas!), Eu encontrei uma solução melhor e quis resumir o que eu encontrei.

Em primeiro lugar, tanto VirtualBox e VMWare Server são ótimos produtos, e uma vez que ambos são livres, cada um vale a pena avaliar. Nós decidimos ir com VMWare Server, uma vez que é um produto mais estabelecida e podemos obter suporte para ele deve que precisamos. Isto é especialmente importante, uma vez que também estão considerando a distribuição de nosso software para clientes como uma instalação especial servidor VM, em vez de, assumindo que a sobrecarga do VMWare Player não é muito alto. Além disso, há um VMWare scripting interface de chamado VIX que se pode usar para diretamente instalar arquivos para o VM sem a necessidade de instalar o SSH ou SFTP, que é uma grande vantagem.

Assim, a nossa solução é basicamente o seguinte ... Primeiro criamos uma imagem "vanilla" VM com OS, nada mais, e verificá-lo para o repositório. Então, nós escrever um script que age como nosso instalador, colocando os artefatos criados pela Hudson na VM. Este script deve ter interfaces para copiar os arquivos diretamente, mais de SFTP, e através VIX. Isto irá permitir-nos continuar a distribuir software diretamente na máquina de destino, ou através de uma VM de nossa escolha. Esta imagem resultante é então comprimido e distribuído como um artefato do servidor de CI.

Outras dicas

Independentemente do software VM (I podem recomendar VirtualBox, também) Eu acho que você está olhando para o seguinte cenário:

  1. Construir é feito
  2. lançamentos CI máquina virtual (ou ele está sempre correndo)
  3. CI usa scp / SFTP para enviar construção em VM através da rede
  4. CI usa o ssh (se disponível no OS alvo executado em VM) ou outras instalações de execução de comando remoto para instalação gatilho no ambiente VM

VMWare Server é gratuito e um produto muito estável. Ela também lhe dá a capacidade de criar instantâneos da fatia VM e reverter para a versão anterior de sua máquina virtual quando necessário. Ele irá correr bem no Win 2003.

Em termos de provisionamento de novas fatias VM para o seu constrói, você pode simplesmente copiar e colar a pasta que contém os arquivos VMWare, altere o SID e IP da nova VM e você tem uma máquina nova. Leva 15 minutos, dependendo do tamanho de sua fatia VM. Sem necessidade de scripting.

Se você usar o VirtualBox, você vai querer olhar para executá-lo sem cabeça, uma vez que estará em seu servidor. Normalmente, o VirtualBox é executado como um aplicativo de desktop, mas é possível começar VMs a partir da linha de comando e acesso a máquina virtual sobre RDP.

VBoxManage startvm "Windows 2003 Server" -type vrdp

Estamos usando Jenkins + Vagrant + Chef para este cenário.

Assim você pode fazer o seguinte processo:

  • Controle de Versão seu ambiente de VM usando scripts de provisionamento errantes (Chef ou Puppet)

  • Construa o seu sistema usando Jenkins / Hudson

  • Execute o script Vagrant para buscar a última versão estável da saída CI

  • Salvar o estado VM para reutilização no futuro.

Referência:

vagrantup.com

Eu recomendo VirtualBox . É gratuito e tem uma interface de programação bem definida, embora eu não usei pessoalmente-lo em situações de compilação automatizados.

Escolhendo VMWare momento não é uma má escolha.

No entanto, Assim como VMWare dá suporte para o servidor VMWare, SUN dá suporte para o VirtualBox.

Você também pode realizar essa tarefa usando VMWare Studio, que também é gratuito. O fluxo de trabalho básico é este: 1. Crie um arquivo XML que descreve sua máquina virtual 2. Use estúdio para criar o shell. 3. Usar servidor VMWare para fornecimento da máquina virtual.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top