Sou um TA de um curso de programação e tenho a tarefa de criar uma imagem de máquina virtual baseada no Ubuntu 14.04 LTS com todo o software necessário (para desenvolvimento em C ++ e Python) pré-instalado, de modo que todos os alunos tenham o mesmo sistema virtual em execução e evitamos lutas de fazer tudo funcionar em uma variedade de máquinas e sistemas operacionais diferentes. Pretendemos usar o Virtual Box como o software VM host, pois é gratuito e está disponível em várias plataformas.
Ingenuamente, eu usaria apenas a imagem de disco do Ubuntu 14.04 LTS, execute-a na minha Caixa Virtual, instale-a no disco rígido virtual (VDI), configure uma conta de "aluno" com uma senha predefinida, instale todo o software necessário, feche na máquina virtual e distribua o arquivo VDI. Pedimos a cada aluno que importe o VDI para o Virtual Box, execute-o e configure sua conta pessoal (ou apenas use a conta de aluno padrão).
- O procedimento acima é viável?
- Quais são as armadilhas a serem observadas? Precisamos que isso seja praticamente à prova de idiotas. Esperamos mais de 80 alunos e somos apenas quatro ATs, portanto não podemos fornecer suporte individual.
- Existem desvantagens em usar um HDD virtual do tipo VDI alocado dinamicamente?
- Está tudo bem para eu instalar o Guest Additions do Virtual Box logo de cara ou ele faz algo específico do host?
- Existe uma maneira mais elegante de lidar com a criação da conta de usuário? Idealmente, o Ubuntu os colocaria através de um assistente de criação de contas e os definiria suas senhas (além de adicioná-las ao arquivo sudoers) na primeira vez que inicializassem a imagem. Esta não é uma prioridade, no entanto. Eu acho que ter uma conta padrão é bom.
fonte
Respostas:
Embora esta questão seja um pouco baseada em opiniões:
Sim, esse procedimento é viável - acredito que ele conseguiria o que você estava procurando e é algo que eu fiz no passado com outras distribuições Linux.
A única armadilha real é o espaçamento de disco ... verifique se as máquinas dos alunos têm espaço em disco suficiente para lidar com o tamanho do disco virtual. Além disso, assegure-se de manter uma cópia offline em pelo menos uma máquina, para poder usar o disco de modelo / referência para recriar rapidamente um disco quando um aluno matar sua máquina.
As desvantagens de um disco dinâmico é que o sistema operacional host precisa continuar alocando cada vez mais espaço em disco à medida que a VM cresce com dados / atualizações. Isso tem uma sobrecarga de desempenho que às vezes pode ser uma dor de cabeça - especialmente se você estiver executando em uma VM de baixa potência (a energia da máquina host menos a energia usada para expandir um disco tende a fazer com que as VMs fiquem um pouco) .. então não são portáveis (nem todas as máquinas em seu laboratório podem ter mais de 100 GB depois que um aluno mexer com sua VM)
Os complementos convidados não são específicos da máquina. Eles são basicamente um conjunto de drivers. Quando você importa a VM para um novo host, os drivers da VM detectam e ajustam seu hardware para funcionar no novo host.
Criação elegante de usuário - não tenho certeza, talvez um script que seja executado na primeira inicialização e solicite ao usuário que crie uma nova conta antes que o script se destrua? Vou cavar e voltar para você quando tiver 5 minutos de sobra.
Espero que isso ajude pelo menos em parte.
fonte
Respondendo exatamente à sua pergunta, se você precisar adaptar a VM e entregar a ela uma VM VirtualBox entregável, recomendo usar o Packer para pré- empacotar a VM com todas as dependências necessárias. Ele foi criado exatamente para esse fim e permite que você gire uma imagem de um ISO , execute o provisionamento que desejar com relação a essa imagem e crie uma imagem de VM VirtualBox entregável. Isso também é bom para você, porque documenta exatamente o que foi feito na entrega, caso você queira reproduzi-la / adicionar algo a ela. Além disso, você pode verificar o projeto em um sistema de controle de origem e fazer alterações. Aqui está um exemplo disso sendo feito para você começar.
No entanto, se você deseja que eles funcionem rapidamente, recomendo usar o Vagrant e distribuir aos seus alunos um arquivo Vagrant que execute o provisionamento desejado em uma imagem padrão do Ubuntu . Isso tem várias vantagens:
Aqui está um exemplo do Vagrantfile mostrando como fazer provisionamento em uma imagem do Ubuntu 14.04.
fonte
Perfeitamente viável. A alternativa seria Vagrant, Puppet, Chef ou algo semelhante para criar as VMs do zero, mas isso é muito trabalhoso de configurar.
A equipe de desenvolvimento em um dos meus sites faz o mesmo para obter novos desenvolvedores rapidamente em funcionamento.
1 conta predefinida (com direitos sudo) na imagem e um pequeno documento de instruções com as etapas que devem ser seguidas para criar suas contas pessoais.
Observação: você provavelmente precisará de acesso à rede / internet dentro da VM. Isso pode ser feito uma ponte ou NATted no host. Independentemente de sua escolha, você terá que instruir seus alunos como configurar o lado host. Basta configurar a NIC dentro da VM como dispositivo DHCP. Esse é um ponto de partida seguro para a maioria das configurações, mesmo que o usuário precise configurar manualmente manualmente um endereço IP estático.
Colocar um endereço IP estático na VM está realmente causando problemas. É obrigado a estar em uso já por outra VM ficando on-line na mesma LAN ...
fonte