VirtualBox: mudanças entre as edições
(Uma revisão intermediária pelo mesmo usuário não está sendo mostrada) | |||
Linha 413: | Linha 413: | ||
== Download do Gparted == | == Download do Gparted == | ||
https://sourceforge.net/projects/gparted/files/gparted-live-stable/1. | https://sourceforge.net/projects/gparted/files/gparted-live-stable/1.3.0-1/gparted-live-1.3.0-1-i686.iso |
Edição atual tal como às 14h17min de 20 de julho de 2021
Sobre
Olá! Visitante, reunimos aqui, informações sobre o VirtualBox, que é um programa de virtualização da Oracle que permite instalar e executar diferentes sistemas operacionais em um único computador sem complicações. Com ele você pode instalar em seu computador qualquer sistema operacional para estudo, laboratório de testes ou POC's , ou seja, você não precisa formatar o seu computador para ver como é um outro sistema operacional, testar alguma funcionalidade ou estudar sobre Redes, Linux, Segurança da Informação etc.. Outra funcionalidade que este software permite é realizar laboratórios técnicos para instalação de servidores, desktops e até sistemas especias, assim auxiliando no conhecimento sobre tecnologia.
Requisitos
Para um bom funcionamento do software VirtualBox, é necessário que o seu computador tenha um espaço em disco suficiente para o armazenamento de vms, assim como quantidade de memória disponível, como estes recursos são variados, estipula-se que o computador o qual vai armazenar as máquinas virtuais tenha pelo menos o dobro de memória que a máquina virtual necessita, ou seja, se uma VM do tipo servidor linux que será criada no virtualbox precise de 1GB de memória, é necessário que o computador físico tenha pelo menos 2GB de memória, já para armazenamento podemos utilizar tanto discos HDs, como ssds e discos externos (USB) para máquinas virtuais. Também torna-se necessário a ativação de suporte a virtualização na BIOS do computador, veja neste link como ativar.
- Habilitar virtualização no hardware: https://wiki.projetoroot.com.br/index.php?title=Habilitar_Virtualiza%C3%A7%C3%A3o
- Habilitar virtualização na VM: https://wiki.projetoroot.com.br/index.php?title=VirtualBox#Habilitar_Virtualiza.C3.A7.C3.A3o
Vídeos
- Instalando VirtualBox
- Criando Máquinas Virtuais
- Instalando Adicionais de Convidados
- Configurações Intermediarias no VirtualBox
- Uso de Templates
- Uso de Snapshots
- Redes no VirtualBox
- Utilizando CLI no VirtualBox
Documentação: https://wiki.projetoroot.com.br/index.php?title=VirtualBox#VirtualBox_por_Shell
- Scripts para VirtualBox
Documentação: https://wiki.projetoroot.com.br/index.php?title=VirtualBox#Scripts
- Servidor VirtualBox
- RemoteBox e AutoStart - Vídeo Extra
Site
Instalando Guest Additions
- Ubuntu/Linux Mint/Debian
apt-get install build-essential dkms linux-headers-$(uname -r)
- CentOS
dnf install epel-release && dnf install gcc make perl kernel-devel kernel-headers bzip2 dkms
Adicionar a ISO de Guest Additions na VM e fazer a instalação conforme o vídeo em: https://youtu.be/BpuRO0AyDkE
VirtualBox por Shell
Listar VMs no Host
* vboxmanage list vms
Exemplo:
vboxmanage list vms
Descobrir informações das VMS
* vboxmanage showvminfo
Exemplo:
vboxmanage showvminfo Linux\ Mint.vbox --machinereadable
Iniciar VM (VirtualBox) por Shell
* vboxmanage startvm /caminho_das_vms/grupo_vm/nome_vm/vm.vbox
Exemplo:
vboxmanage startvm /home/diegocosta/VirtualBox\ VMs/POC/Linux\ Mint/Linux\ Mint.vbox
Desligar VM (VirtualBox) por Shell
* vboxmanage controlvm nome_da_VM poweroff
Exemplo:
vboxmanage controlvm Linux\ Mint poweroff
Iniciar VM (VirtualBox) por Shell em Background (segundo plano)
* vboxheadless -s /caminho_das_vms/grupo_vm/nome_vm/vm.vbox
Exemplo:
vboxheadless -s /home/diegocosta/VirtualBox\ VMs/POC/Linux\ Mint/Linux\ Mint.vbox
Iniciar VM (VirtualBox) por UUID
Exemplo:
vboxheadless -s d8cf16f5-c070-4d86-9468-056d919ede2b
Criar Snapshot
* vboxmanage snapshot
vboxmanage snapshot /home/diegocosta/VirtualBox\ VMs/POC/Linux\ Mint/Linux\ Mint.vbox take BASE
Deletar SnapShot
vboxmanage snapshot /home/diegocosta/VirtualBox\ VMs/POC/Linux\ Mint/Linux\ Mint.vbox delete BASE
Restaurar SnapShot
vboxmanage snapshot /home/diegocosta/VirtualBox\ VMs/POC/Linux\ Mint/Linux\ Mint.vbox restore BASE
Clonar VM
* vboxmanage clonevm
vboxmanage clonevm /home/diegocosta/VirtualBox\ VMs/POC/Linux\ Mint/Linux\ Mint.vbox --name="Linux_MINT-001" --register --mode=all
Modificar VM
* vboxmanage modifyvm
Habilitar Virtualização
- Uso do parâmetro --nested-hw-virt on habilita
- Para desabilitar --nested-hw-virt off
vboxmanage modifyvm /home/diegocosta/VirtualBox\ VMs/POC\Linux\ Mint/Linux\ Mint.vbox --nested-hw-virt on
Adicionar em um Grupo
vboxmanage modifyvm /home/diegocosta/VirtualBox\ VMs/POC/Linux\ Mint/Linux\ Mint.vbox --groups "/testes"
Retornar ao padrão
vboxmanage modifyvm /home/diegocosta/VirtualBox\ VMs/testes/Linux\ Mint/Linux\ Mint.vbox --groups ""
Scripts
Realizar a criação de Shell Script para gerenciar máquinas virtuais, criar VMs e clonar templates. Este método permite que possamos ter uma infra de modo ágil, assim incentivando a cultura DevOps,sendo possível compreender o raciocínio lógico por trás de um simples script, sendo este, um ponto de início para o desenvolvimento de outros scripts mais complexos.
Script 01
- Criando uma VM básica sem template.
#!/bin/sh # Como funciona o script # Script deve estar em /home/"USER"/VirtualBox VMs/ "Caso contrário vai criar as VMS onde estiver" # ./vm.sh NOME_VM TIPO_VERSAO MEMORIA DISCO CAMINHO/ISO.iso "Explicando como executar" # ./vm.sh vm1 Debian_64 1024 32000 /home/diegocosta/Downloads/debian-10.iso # Variaveis "($1 Nome da VM, $2 Tipo do SO, $3 Memoria, $4 HD, $5 Caminho da ISO, Caminho da maquina .vdi - Virtual Disk Image, IFACE1=Interface com fio, IFACE2=Interface sem fio)" VM_NAME=$1 OS_TYPE=$2 MEMORY_SIZE=$3 HDD_SIZE=$4 DVD_PATH=$5 HDD_PATH=$VM_NAME/$VM_NAME.vdi IFACE1=enps0 IFACE2=wlp3s0 # Criando a VM e definições de Hardware virtual "podem ser ajustados conforme necessidade" VBoxManage createvm -name $VM_NAME -ostype $OS_TYPE --register VBoxManage modifyvm $VM_NAME \ --memory $MEMORY_SIZE \ --vram 16 \ --pae off \ --rtcuseutc on \ --nic1 bridged --bridgeadapter1 $IFACE1 \ --nic2 bridged --bridgeadapter2 $IFACE2 \ --mouse usbtablet \ --usb on \ --usbehci on \ --acpi on \ --apic on \ --autostart-enabled on \ --graphicscontroller vmsvga # Cria arquivo vdi no caminho e tamanho informados no shell, faz a identificação de IDE e SATA e por último adiciona na VM (Attached) VBoxManage createvdi --filename $HDD_PATH --size $HDD_SIZE VBoxManage storagectl $VM_NAME --name "IDE Controller" --add ide VBoxManage storagectl $VM_NAME --name "SATA Controller" --add sata VBoxManage storageattach $VM_NAME --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium $DVD_PATH VBoxManage storageattach $VM_NAME --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium $HDD_PATH # Inicializar a VM criada de modo Headless (Inicialização em background) echo "Iniciar VM em ...3" sleep 1 echo "Iniciar VM em ..2" sleep 1 echo "Iniciar VM em .1" sleep 1 echo "Iniciando" sleep 1 #vboxheadless -s $VM_NAME &
Script 02
- Criando uma ou várias VMs com base em Template existente.
#!/bin/bash # Como funciona o script # Script deve estar em /home/"USER"/VirtualBox VMs/ "Caso contrário vai criar as VMS onde estiver" # ./instanacia.sh NOME_do_Template NR. de instancias Nome do clone "Explicando como executar" # ./instancia.sh Debian-10-Template 2 www-teste # Variaveis "($1 Nome do Template, $2 Número de Instâncias para levantar, $3 Nome da VM clone )" VM_TEMPLATE=$1 LAUNCH=$2 NAME=$3 DATE=`date +%d-%m-%Y-%H.%M.%S` VM_PATH=$VM_TEMPLATE #VM_NAME=$NAME-$DATE VM_NAME=$VM_TEMPLATE-$NAME echo Clonando Template de: $VM_PATH # Criando um contador e utilizando o until, um while invertido, o loop irá repetir enquanto a condição for falsa # Clona template e levanta quantas instâncias solicitadas contador=$LAUNCH until [ $contador -le 0 ] do echo Faltam $contador Instâncias para levantar vboxmanage clonevm $VM_PATH --name="$RANDOM-$VM_NAME" --register --mode=all ((contador=contador-1)) done # Inicializar a VM criada de modo Headless (Inicialização em background) echo "Iniciar VM em ...3" sleep 1 echo "Iniciar VM em ..2" sleep 1 echo "Iniciar VM em .1" sleep 1 echo "Iniciando" sleep 1 #vboxheadless -s $VM_NAME &
Server VirtualBox - CentOS 8
- Desativar SeLinux e Firewalld
nano /etc/selinux/config 'disabled'
systemctl disable firewalld systemctl stop firewalld
- Epel Repositório
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm yum update && yum install -y kernel-devel-$(uname -r) kernel-headers gcc make perl wget binutils kernel-devel libgomp patch gcc glibc-headers glibc-devel dkms httpd php php-soap php-xml php-json wget https://download.virtualbox.org/virtualbox/rpm/el/virtualbox.repo -O /etc/yum.repos.d/virtualbox.repo yum update
- Para VirtualBox 5.2
yum install -y VirtualBox-5.2 wget https://download.virtualbox.org/virtualbox/5.2.38/Oracle_VM_VirtualBox_Extension_Pack-5.2.38.vbox-extpack VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-5.2.38.vbox-extpack
- Para VirtualBox 6.1
yum install -y VirtualBox-6.1 wget https://download.virtualbox.org/virtualbox/6.1.4/Oracle_VM_VirtualBox_Extension_Pack-6.1.4.vbox-extpack VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-6.1.4.vbox-extpack
- Ajustes
echo "VBOXWEB_USER=vbox" > /etc/default/virtualbox echo "VBOXWEB_HOST=localhost" >> /etc/default/virtualbox useradd vbox passwd vbox wget https://github.com/phpvirtualbox/phpvirtualbox/archive/master.zip unzip master.zip -d /var/www/html/ cd /var/www/html/ mv phpvirtualbox-master/* . rm -rf phpvirtualbox-master/ cp /var/www/html/config.php-example /var/www/html/config.php chown vbox:vboxusers /var/www/html -R nano /var/www/html/config.php var $username = 'vbox'; var $password = 'PASSWORD'; var $vrdeaddress = 'IP_SERVER'; var $consoleHost = 'IP_SERVER'; var $enableAdvancedConfig = true; systemctl enable vboxweb-service.service systemctl start vboxweb-service.service
AutoStart
nano /etc/default/virtualbox VBOXAUTOSTART_DB="/var/lib/virtualbox-autostart" VBOXAUTOSTART_CONFIG="/etc/default/vb-autostart-perms"
nano /etc/default/vb-autostart-perms default_policy = allow
chmod 0644 /etc/default/vb-autostart-perms chown vbox:vboxusers /etc/default/vb-autostart-perms
mkdir -p /var/lib/virtualbox-autostart chmod 1777 /var/lib/virtualbox-autostart chown vbox:vboxusers /var/lib/virtualbox-autostart
su vbox VBoxManage setproperty autostartdbpath /var/lib/virtualbox-autostart
systemctl enable vboxautostart-service systemctl start vboxautostart-service
vboxmanage import Debian10-Template.ova --vsys 0 --vmname Debian10-Template vboxmanage modifyvm Debian10-Template --autostart-enabled on
RemoteBox
- Ajustar o host
nano /etc/default/virtualbox VBOXWEB_HOST=IP_DO_SERVER ex: (192.168.201.104)
- Instalar as dependências (ver documentação)
http://remotebox.knobgoblin.org.uk/docs/remotebox.pdf
- Download da versão atual ou conforme a versão do VirtualBox instalado
http://remotebox.knobgoblin.org.uk/?page=downloads
Modificar o Disco
* Alterar o tamanho de uma unidade no VirtualBox depois de já criado o disco
- 1 - Desligar a máquina virtual
- 2 - Logar como root no computador local
- 3 - Executar o comando vboxmanage conforme o exemplo
EXEMPLO:
- Linux
vboxmanage modifyhd /home/diegocosta/VirtualBox VMs/Projeto Root/Windows_XP.vdi --resize 30720
- Windows
C:\Program Files\Oracle\VirtualBox>VBoxManage.exe modifymedium disk "c:\Users\usuário\VirtualBox VMs\VM\DISCO.vdi" --resize 41920
Explicação:
- vboxmanage # comando para gerenciamento do virtualbox;
- modfyhd # parâmetro usado para modificar o disco;
- modfymedium disk # parâmetro usado para modificar o disco;
- /home/....../nome_do_host.vdi # caminho de onde se localiza o disco (vdi) da máquina a ser alterada;
- --resize # parâmetro que informa que é para redimensionar;
- 30720 # valor em Mbytes que será aplicado (30 GB).
Converter VMDK to VDI
C:\Program Files\Oracle\VirtualBox>VBoxManage.exe clonehd "c:\Users\USUARIO\VirtualBox VMs\VM\DISCO.vmdk" "c:\Users\USUARIO\VirtualBox VMs\VM\DISCO.vdi" --format vdi
Converter VDI to VMDK
C:\Program Files\Oracle\VirtualBox>VBoxManage.exe clonehd "c:\Users\USUARIO\VirtualBox VMs\VM\DISCO.vdi" "c:\Users\USUARIO\VirtualBox VMs\VM\DISCO.vmdk" --format vmdk
Download do Gparted
https://sourceforge.net/projects/gparted/files/gparted-live-stable/1.3.0-1/gparted-live-1.3.0-1-i686.iso