Como criar máquinas virtuais VirtualBox a partir do terminal Linux

Conteúdo

Logotipo da VirtualBox

A maioria dos provedores de nuvem aluga servidores virtuais em vez de hardware real. Se você pretende fazer o mesmo em seus próprios servidores, se deve executar diferentes sistemas operacionais ou gerenciar vários ambientes, você pode fazer isso totalmente do seu terminal.

Se você está planejando usando máquinas virtuais, você pode estar interessado em um hipervisor. Um hipervisor substitui seu sistema operacional host e é projetado de forma personalizada para gerenciar várias máquinas virtuais. Você não poderá executar aplicativos no sistema operacional host, mas você pode virtualizar facilmente o Ubuntu Server ou algo assim e executar os aplicativos em cima do hipervisor.

Instalando o VirtualBox e o pacote de extensão VBox

O VirtualBox é um software de virtualização gratuito baseado em GUI que funciona como um aplicativo em seu sistema operacional host (um hipervisor do tipo 2). Você pode ter usado isso antes em um computador pessoal para configurar uma máquina virtual, mas o VirtualBox na verdade tem uma interface de linha de comando completa e pode ser totalmente usado apenas a partir de um terminal, o que o torna perfeito para este caso de uso. Outra solução seria QEMU, mas o VirtualBox foi testado e é imbatível por ser gratuito e de código aberto.

Apesar disto, VirtualBox CLI é um pouco difícil de manusear, então, se você estiver jogando apenas em um servidor doméstico e tiver um pouco de RAM de sobra, você pode instalar um ambiente de desktop leve em seu servidor e configurar o VirtualBox da maneira normal. Você ainda pode executar máquinas virtuais no modo headless para mantê-las em execução após sair do DE.

Se você planeja seguir a CLI, a instalação é bastante simples, uma vez que é habilitado diretamente de apt:

sudo apt-get install virtualbox

Apesar disto, você vai querer anotar a versão que está instalada ( VBoxManage -v ), já que você precisará instalar mais algumas coisas. Porque estamos configurando no modo sem cabeça, precisaremos de uma maneira de nos conectar à máquina antes que o SSH possa ser configurado / RDP.

Dirigir-se a Página de download do VirtualBoxe encontre o link do pacote de extensão para a versão em que está sendo executado. Baixe com wget:

wget https://download.virtualbox.org/virtualbox/5.2.42/Oracle_VM_VirtualBox_Extension_Pack-5.2.42.vbox-extpack

E instale-o:

sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.2.42.extpack

Por alguma razão, VRDE não pareceu funcionar para nós com o pacote de extensão VNC embutido instalado. Remover este pacote resolveu o problema:

sudo VBoxManage extpack desinstalar VNC

Configure uma máquina virtual

Para iniciar, vamos criar uma nova máquina virtual chamada “Ubuntu”. Você pode ver uma lista de tipos de sistemas operacionais suportados VBoxManage list ostypes.

sudo VBoxManage createvm --name "Ubuntu" --ostype Ubuntu_64 --register

Dê à máquina um pouco de RAM e crie um novo disco rígido. Nós iremos com 4 GB de RAM e 32 GB de espaço no disco rígido, mas ambos podem ser expandidos mais tarde. Observe que o disco rígido é um disco virtual e não está pré-alocado.

sudo VBoxManage modificado "Ubuntu" --memória 4096
sudo VBoxManage criouhd --nome de arquivo "Ubuntu.vdi" --Tamanho 32000

Defina o número de CPUs virtuais. Isso é medido em roscas, não em núcleos completos de CPU.

sudo VBoxManage modificado "Ubuntu" --Cpus 2

a seguir, mais uma configuração para o disco rígido. Em geral, isso acontece automaticamente quando você cria máquinas a partir do gui, mas você terá que criar manualmente um driver sas e conectá-lo ao vm para que o disco rígido funcione corretamente.

sudo VBoxManage storagectl "Ubuntu" --nome "Controlador SAS" --add sas --controller LSILogicSAS
sudo VBoxManage storageattach "Ubuntu" --storagectl "Controlador SAS" --porta 0 --dispositivo 0 --tipo hdd --meio "Ubuntu.vdi"
sudo VBoxManage storagectl "Ubuntu" --nome "Controlador SAS" --hostiocache em

Faremos o mesmo com o disco que conterá o ISO para instalar o sistema operacional. Isso pressupõe que seu ISO está em /home/user/Ubuntu.iso, portanto, alterá-lo de acordo.

sudo VBoxManage storagectl "Ubuntu" --nome "Controlador IDE" --add ide --controller PIIX4
sudo VBoxManage storageattach "Ubuntu" --storagectl "Controlador IDE" --porta 0 --dispositivo 0 --dvddrive tipo --meio "/home/user/Ubuntu.iso"

Depois de, ligar alguns interruptores relacionados ao desempenho para evitar lentidão do uso excessivo de RAM:

sudo VBoxManage modificado "Ubuntu" --nestedpaging on
sudo VBoxManage modifyvm "Ubuntu" --grandes páginas em

A seguir, vamos criar a rede que esta máquina virtual usará. Existem muitas opções para esta etapa:

  • NAT, o mais simples, que simplesmente permite que a VM se comunique com o mundo externo por meio da tradução de endereços de rede (NAT). Isso não permite que as máquinas virtuais se comuniquem entre si e não permite o contato host-para-convidado, a menos que a porta seja encaminhada.
  • A rede NAT é equivalente a NAT, exceto que a rede é compartilhada entre as máquinas virtuais e elas podem se comunicar entre si. A rede NAT atua como uma sub-rede virtual.
  • Com ponte, que liga a conexão física diretamente ao VM. A máquina virtual tem um endereço IP real na sua rede. Isso pode funcionar mesmo com uma única conexão Wi-Fi / Ethernet, mas se você tiver uma placa de rede com muitas portas Ethernet, pode alocar uma interface completa diretamente para uma máquina virtual.
  • Vermelho virtual, conectar várias instâncias em uma rede virtualizada isolada. Isso é útil para modelar redes reais, mas não é adequado para a maioria dos casos de uso.
  • Adaptador somente para host, é equivalente à rede virtual, mas torna possível falar com o anfitrião (não com a Internet).

Para este exemplo, vamos usar a rede NAT, uma vez que é simples de configurar e o mais versátil do grupo, oferecendo um equilíbrio de conectividade e isolamento.

Crie uma nova rede no 10.0.0.0/24 sub-rede, Começar:

sudo VBoxManage natnetwork adicionar --netname natnet1 --rede "10.0.0.0/24" --enable
sudo VBoxManage natnetwork start --netname natnet1

E anexá-lo ao VM:

sudo VBoxManage modificado "Ubuntu" --nic1 natnetwork --nat-network1 natnet1

A seguir, teremos que configurar como acessamos esta instância. Porque estamos instalando isso em um servidor sem comando (sem saída de vídeo), não poderemos concluir o procedimento de instalação e instalar um cliente RDP no sistema operacional convidado. Para resolver isso, Usaremos o servidor VirtualBox VRDE, a principal razão pela qual instalamos o pacote de extensão do VirtualBox anteriormente. Isso captura a saída da tela virtual e a torna disponível via RDP.

Ligue e defina uma porta para isso. você vai querer ter certeza de que o sistema operacional host tem esta porta aberta.

sudo VBoxManage modificado "Ubuntu" --vrde on
sudo VBoxManage modifyvm "Ubuntu" --vrdeport 5587

Por último, podemos iniciar a máquina virtual no modo sem cabeça e iniciar a instalação do sistema operacional.

sudo VBoxManage startvm "Ubuntu" --tipo sem cabeça

note que o modo sem cabeça significa que você está executando em um servidor sem cabeça, e não que o sistema operacional convidado não tenha saída de vídeo.

Vai levar um segundo ou dois para começar, e você será capaz de iniciar um cliente RDP e se conectar a ele usando a porta que você especificou. Você pode solicitar um nome de usuário e uma senha; VRDE por padrão é “admin” nenhuma senha.

Encaminhamento de porta após configuração

Assim que a instalação do sistema operacional for concluída, você terá que fazer o encaminhamento de porta para manter o acesso após o VRDE desligar, essencialmente como abrir regras de firewall. Se você estiver configurando um ambiente sem cabeça como o Linux, você simplesmente terá que encaminhar SSH. O seguinte comando irá adicionar uma regra de encaminhamento de porta à sua rede NAT para encaminhar a porta 2200 no sistema operacional host para a porta SSH padrão no convidado. Observe que esta porta precisará ser aberta no firewall do seu host para que isso funcione.

sudo VBoxManage natnetwork modify --netname natnet1 --port-forward-4 "ssh:tcp:[]:2200:[10.0.0.2]:22"

Si está configurando RDP, você precisará configurar o servidor RDP no sistema operacional convidado e certificar-se de que a porta RDP está aberta no firewall convidado. Depois disso, você pode encaminhar a porta da mesma forma:

sudo VBoxManage natnetwork modify --netname natnet1 --port-forward-4 "Rdp:tcp:[]:5589:[10.11.0.2]:3389"

Se você precisar limpar as regras de encaminhamento de portas, você terá que excluí-los pelo nome com este comando bastante desajeitado (a primeira corda antes do cólon):

sudo VBoxManage natnetwork modificar --netname natnet1 --port-forward-4 excluir rdp

Uma vez verificado que você pode se conectar via SSH / RDP diretamente para o sistema operacional convidado, você pode desativar vrde:

sudo VBoxManage modificado "Ubuntu" --vrde fora

Se você planeja usar esta máquina virtual sobre RDP por longos períodos de tempo, você pode querer instalar o pacote VirtualBox Guest Additions para o seu sistema operacional convidado.


Se você decidir gerenciar o VirtualBox usando GUI após configurar esta VM a partir de CLI, observe que esta VM foi criada como root, então você precisará iniciar a GUI do VirtualBox como root para ver esta máquina virtual na lista. Caso contrário, deve trabalhar regularmente.

Ao mesmo tempo, se você quiser que a máquina funcione enquanto seu ambiente de trabalho está desligado, você terá que clicar com o botão direito para iniciar a máquina no modo sem cabeça.

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.