Deseja distribuir a máquina virtual Linux para os alunos trabalharem

25

Tenho alunos executando Mac e Windows. A cada semestre, sempre há muitas perguntas sobre como instalar a ferramenta “X”. Gostaria de criar uma única máquina virtual Linux (tentei o VirtualBox) e distribuir a imagem. Dessa forma, todas as ferramentas estão pré-instaladas e todos estão usando o Linux.

A questão é que, como as pessoas têm hardware gráfico diferente, como isso funciona? Ou isso funciona? E se sim, como distribuí-lo? Eles precisam instalar o VirtualBox e carregar algum arquivo que eu lhes fornecer, ou posso criar um único instalador facilmente?

Dov
fonte
13
O Virtualbox permite exportar um appliance . Esse arquivo pode ser importado em qualquer software de virtualização (VMWare, Virtualbox etc.) e se configura no hardware local. Parece ser o que você está pedindo. Um único instalador não é possível, porque você não pode executar o mesmo programa no Windows (.exe) e no Mac (.app).
GiantTree 30/08/2015
Preciso instalar novamente de forma diferente ou posso salvar minha máquina virtual como um dispositivo?
Dov
Você pode salvar qualquer máquina virtual como um appliance no Virtualbox. Basta fazer: Arquivo -> Exportar appliance Ctrl + E
GiantTree
Alguns estão sugerindo o Vagrant como uma solução, pois o tamanho do arquivo pode ser um problema durante o download do arquivo do seu dispositivo. Na verdade, se você instalar um ambiente minimalista e usar thin provisioning ao criar o HD virtual, poderá acabar com um arquivo de 100 MB ou menos muito viável. Só queria adicionar isso lá, já que ninguém mais o abordou.
Geruta 31/08/15
1
@gronostaj: Parece que essa pobre VM foi pega na matriz! : O
Zaibis 01/09/2015

Respostas:

24

Eu gosto da resposta centrada no Vagrant de mperrin , mas como você pode ver nos comentários, minha opinião pessoal é “simplificar” e eu recomendaria uma exportação simples de um OVA do VirtualBox conforme você configurou e passou isso para seus alunos .

Dito isto, você pergunta o seguinte:

A questão é que, como as pessoas têm hardware gráfico diferente, como isso funciona? Ou isso funciona? E se sim, como distribuí-lo? Eles precisam instalar o VirtualBox e carregar algum arquivo que eu lhes fornecer, ou posso criar um único instalador facilmente?

Virando para o DevOps

Não tenho muita certeza do que você está ensinando ou fazendo ou do que espera que seus alunos saiam de todo esse exercício, mas muitas das preocupações que você está transmitindo se voltam para o reino do DevOps (desenvolvimento e operações) e você pode querer considere misturar esse conceito em seus ensinamentos.

Agora, não acho que todo o conceito de DevOps precise ser transmitido, mas em minha mente sua criação de um OVA VirtualBox estável que você passa para os alunos e pede que eles usem em suas máquinas domésticas / escolares definitivamente abriria uma porta para perguntas sobre como lidar com diferentes configurações de hardware / sistema e como se adaptar.

Portanto, minha recomendação para você é recomendar fortemente que os alunos usem o VirtualBox OVA que você configuraria, mas também esteja aberto a permitir que os alunos instalem ferramentas por conta própria. Meu intestino me diz que 95% - ou mais - dos alunos usaria feliz e facilmente o método OVA do VirtualBox, mas você não pode esperar que seja 100% perfeito.

Talvez no final você deva ter apenas uma linha de base de requisitos para o uso de ferramentas de curso e ser flexível em sua implementação.

Seja flexível em relação à forma como as ferramentas são usadas

Por exemplo, desenvolvo muito o desenvolvimento de PHP e administro sistemas / DevOps relacionados ao desenvolvimento de PHP. E como estou em um Mac, prefiro usar o MAMP para desenvolvimento local. Mas trabalho com desenvolvedores que usam Linux ou Windows para seu desenvolvimento. Heck, alguns gostam de usar o Vagrant juntamente com o VirtualBox para suas necessidades de desenvolvimento de LAMP. E minha atitude é que não me importo com a configuração básica do sistema operacional. Desde que a versão do PHP esteja alinhada com as versões que meus clientes usam, eu estou bem com o que quer.

Ocasionalmente, um desenvolvedor declara que um bug foi causado porque, por exemplo, o código que testei no MAMP "não é o mesmo" do que seria em uma instalação do Linux LAMP. E digo com 100% de confiança, que sempre provei que o problema não é o sistema operacional base, mas a codificação do PHP em si.

Portanto, tudo isso é basicamente transmitir o seguinte: Seja flexível na explicação do uso de uma configuração do VirtualBox para os alunos e não espere que um sistema operacional com alimentação por colher simplesmente acabe com todos os problemas. Isso pode deixar 95% de seus problemas fora do parque, mas os 5% restantes sempre deverão ser abordados de alguma forma. Portanto, observe uma configuração do VirtualBox - e talvez um script do Vagrant - como uma ferramenta que pode ser usada em um arsenal para facilitar a vida de alguns, mas não necessariamente a solução definitiva para todos os problemas.

JakeGould
fonte
3
ensinando C ++, java, estruturas de dados, e esta é uma tentativa de fugir do sysadmin / devops que não me interessa!
Dov
1
@Dov Bem, se for esse o caso, exportar um OVA do VirtualBox e distribuí-lo para as pessoas da sua classe é o melhor caminho a percorrer.
JakeGould
18

Você deveria dar uma olhada no Vagrant .

O Vagrant suporta o VirtualBox e permite:

Crie e configure ambientes de desenvolvimento leves, reproduzíveis e portáteis.

Será muito mais fácil compartilhar um ou vários arquivos de texto do que uma grande exportação da imagem do VirtualBox. Especialmente se você deseja gerenciar atualizações.

Depois que o VirtualBox e o Vagrant são instalados, é simples:

vagrant up

Vai:

Um único arquivo Vagrant também pode lidar com especificidades de hosts Windows ou Mac.

mperrin
fonte
7
Embora o Vagrant não seja uma má idéia, basta exportar um dispositivo VirtualBox, instruindo os alunos a instalar o VirtualBox e depois fazer com que eles importem esse dispositivo para o VirtualBox, faça o trabalho em algumas etapas, sem o Vagrant literalmente reconstruir uma máquina do zero ou correr o risco de o Vagrant idiossincrasias aparecendo na mistura.
JakeGould
1
Você está certo, as exportações são certamente a abordagem mais direta e mais simples. Mas, dependendo das necessidades, pensei que vagrant deveria ser mencionado aqui. O gerenciamento de uploads / downloads de arquivos óvulos grandes pode ser problemático, especialmente se as atualizações precisarem ser feitas por projeto. Mais comparação sobre as duas abordagens pode ser encontrada neste tópico muito bom: superuser.com/questions/584100/…
mperrin
Muito boas notas nesse outro post. Meu sentimento é o seguinte: se você acha que precisa do Vagrant para implantar mais de 2 servidores via script, vá em frente. Porém, para a maioria dos usuários de desktop e desenvolvedores simples, apenas “rodar o seu próprio” via VirtualBox também funciona.
JakeGould
1
No seu caso, outra vantagem do vagrant sobre uma exportação é a capacidade de seus alunos aprenderem o "como instalar" e configurar a imagem inspecionando o script de provisionamento. Muito mais fácil do que passar pela história da imagem.
Mperrin 31/08/2015
8

Não importa nada - o virtualbox (e todos os outros softwares de virtualização) emula seu próprio adaptador de vídeo (IIRC cirrus logic). Enquanto o arquivo virtualbox tradicional é dividido em arquivos diferentes para configurações e armazenamento, você pode exportá-lo para um arquivo ovf, conforme sugerido. Se seus alunos podem instalar o virtualbox ou o vmware, isso deve ser trivial. Caso contrário, eles precisam aprender.

A instalação do virtualbox é bastante trivial (supondo que você tenha suporte de hardware).

Há algumas coisas que eu sugiro: mantenha a VM em 32 bits (para que você não precise se preocupar com o suporte ao VT-X no host), criando um tutorial para instalar a caixa virtual nos 2 grandes sistemas operacionais (o Windows é simples, o linux precisa de algumas etapas adicionais) e a importação do arquivo OVF. Isso também significa se os alunos querem usar o vmware player ou algo semelhante. Use o NAT para redes, a menos que você precise executar um servidor acessível de fora.

Se o desempenho não for um problema, você provavelmente poderá agrupar tudo em uma instância do QEMU (eles podem ser configurados para execução independente) e scripts de inicialização adequados. Eu consideraria isso um último recurso.

Eu observaria que muitas universidades realmente fornecem à VM ferramentas adequadas (o IIRC stanfords CS 50 faz isso e é um curso disponível gratuitamente na edx), portanto, pode valer a pena ver como elas o fazem.

Journeyman Geek
fonte
3

Como alternativa à maioria das tecnologias de virtualização, o Linux (por exemplo, Ubuntu) pode ser instalado em um pendrive. Praticamente todos os computadores iniciam um pen drive, e os instaladores mais modernos detectam placas gráficas / placas de rede no momento da inicialização. Se você instalar um Ubuntu de 32 bits, ele será executado em quase todo o hardware que as pessoas provavelmente terão em casa.

Eles são fáceis de distribuir e não requerem QUALQUER software instalado adicional. Eles também podem ser facilmente movidos de uma máquina para outra - desconecte-o do computador da escola e coloque-o no bolso. Quando chegar em casa, basta conectá-lo.

Eles podem ser obtidos com um preço bastante baixo (percebo que os orçamentos das escolas são muito limitados!); dependendo de qual aplicativo seria executado na máquina, 4 GB devem ser suficientes, talvez 8 GB.

AMADANON Inc.
fonte
Todo mundo na pós-graduação tem um laptop. Eu não acho que há uma necessidade de um usb.
Dov
1

Outra opção a considerar. Se você não está realmente preocupado com o fato de eles terem uma GUI, use algo como terminal.com .

Você pode criar seu próprio instantâneo público e simplesmente mantê-lo disponível para seus alunos. É semelhante à abordagem do VirtualBox, mas, em vez de instalar as VMs em sua própria máquina, está na nuvem de outra pessoa.

Então, tudo o que eles precisam é de um navegador da web suficientemente moderno. E se estiverem interessados, eles podem configurá-lo para que possam usar SSH / Putty / etc.

De acordo com as figuras, se os alunos estiverem usando a microinstância (256 MB de RAM, alguns GB de espaço em disco), se pausarem a VM quando não estiverem em uso, isso custaria US $ 9 / ano por 8h / dia. Não posso falar pelo terminal.com, mas suspeito que, se você os tiver contatado, eles poderão fornecer algum tipo de desconto educacional.

Wayne Werner
fonte
Um serviço semelhante é o acesso gratuito ao shell público de [SDF.org] (sdf.org/?join) para educadores. Ensine FAQ . Não é uma VM, mas ainda é boa.
precisa saber é o seguinte