VMs automatizadas do Linux no Hyper-V 2012

4

Eu tenho um requisito para criar uma tonelada de VMs Linux para nossos clientes (nós rodamos infraestrutura gerenciada) no Hyper-V 2012 nos próximos meses e eu tenho um problema com a automação.

Veja como preciso que funcione:

  1. O usuário acessa a página da web e cria uma VM.
  2. a VM é criada com um IP e nome exclusivos
  3. O usuário efetua login em SSH

Eu conheço o Hyper-V muito bem e posso trabalhar com o powershell e sou um programador C # para que o lado de desenvolvimento das coisas seja resolvido. Eu também sei o suficiente sobre o Linux para ser, pelo menos, competente: eu o usei e desliguei por vários anos, mas não fiz nada em nível de empresa com ele.

Tudo isso pode ser feito facilmente por processos manuais, mas eu preciso ser capaz de roteirizar ou programar isso para automatizá-lo, pois pode haver centenas deles sendo criados, mas não sei como.

Meu primeiro pensamento é ter um banco de dados com nomes gerados aleatoriamente e IPs já criados, mas eu não sei como fazer com que uma VM Linux inicialize e pegue um do banco de dados ... Suponho que um script do Kickstart cuidar disso, mas eu não sei o que fazer a partir daí.

Aqui está o que está pulando na minha cabeça:

  1. Crie uma construção std linux. - Fácil de fazer
  2. Alguém clica em "Criar VM" e eu puxo um nome e IP do banco de dados e escrevo em um script de kickstart. - Fácil de fazer
  3. Eu poderia então abrir o arquivo VHDX do modelo, copiar o script e salvá-lo. - Não tenho certeza se possível
  4. O usuário inicializa uma nova VM e o script de kickstart fornece o nome e o IP que eu atribuímos a ela.

Meu problema é que não sei como abrir um arquivo VHDX e inserir um script de kickstart nele ... não consigo descobrir.

Estou chegando até aqui e esta solução pode estar a milhas de distância ... Estou mais acostumado a criar VMs do Windows com scripts e assim por diante, com o qual estou mais familiarizado ... qualquer ajuda seria apreciada.

Obrigado

Mick

    
por Mick 01.07.2013 / 10:47

2 respostas

1

O Windows não pode montar um sistema de arquivos ext3 / 4 de forma nativa e a maioria dos pacotes de software disponíveis para fazer isso (na minha opinião) não é confiável. Então isso acabou.

Algumas ideias para você começar:

  • Configure uma VM Linux que seja executada o tempo todo para o propósito de configurar novas VMs. Quando você cria uma VM do cliente, conecte o VHDX a essa VM de configuração. Escreva um serviço da web que realize a personalização de que você precisa. Você pode ter certeza de que está personalizando o VHDX correto montando a partição usando o ID SCSI, que você saberá porque o PowerShell informará a você qual ID foi atribuída quando você conectou o VHDX.
  • Inicialize inicialmente a VM via PXE. A imagem de inicialização pode fazer a personalização que você precisa e, em seguida, desligar a VM, que seria o sinal para o script do PowerShell para alterar a ordem de inicialização para o disco rígido primeiro e iniciar a VM. Se você seguir esse caminho, sugiro criar uma VLAN dedicada para a personalização do PXE por motivos de segurança.
  • Crie uma partição FAT na sua imagem que você possa montar no Windows e copie o arquivo de configuração para ela. Sua imagem do Linux deve ser configurada para procurar o arquivo de kickstart naquele local ou conter um script para copiá-lo para o local correto durante a inicialização.
por 01.07.2013 / 11:26
0

Na verdade, eu escrevi um script que irá provisionar máquinas renomeando e juntando-as a um Domínio AD usando Samba e Winbind.

O que você precisa fazer é primeiro gerar uma unidade de disquete virtual e gravar um arquivo unattend.xml da Microsoft nela. Meus scripts de provisionamento usam esse arquivo e analisam o nome do computador, nomes de domínio NetBIOS e FQDN, bem como o usuário / senha para ingressar no domínio do AD. Você poderia apenas escrever um arquivo de texto na máquina com uma lista de nomes de computador e PING para um host que não responde, então use essa informação.

Eu dependo do DHCP para endereços IP, mas se você tivesse um emparelhamento de nome / IP em um arquivo de texto na máquina Modelo que também funcionaria. Comece com o DHCP, mas depois converta para IPs estáticos.

Você também pode procurar hospedar o arquivo de configuração em um servidor FTP e alterar sua configuração do dhclient para capturar uma opção DHCP recém-criada que apontará para o arquivo mencionado e, em seguida, utilizá-lo para a configuração da VM.

Existem várias maneiras de descobrir como fazer isso, mas com certeza vai precisar de alguns scripts e de configurar seu modelo corretamente a cada vez.

Também dependerá da distribuição do Linux que você está usando. Atualmente, meu provisionamento funciona em conjunto com o Dell vWorkspace e Hyper-V ou VMware ESX usando Red Hat / CentOS 5.8, 5.8, 6.x e atualmente finalizando o Debian 7 e o Ubuntu 12.04 / 12.10.

-Stephen Yorke www.dezignnet.com

    
por 10.09.2013 / 18:23