VirtualBox: mudanças entre as edições
(→Vídeos) |
|||
Linha 116: | Linha 116: | ||
== 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 & | |||
== Modificar o Disco == | == Modificar o Disco == |
Edição das 07h59min de 7 de abril de 2020
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.
Vídeos
- Uso de Templates
- Uso de Snapshots
- Redes no VirtualBox
- Utilizando CLI no VirtualBox
- Scripts para VirtualBox
- Servidor VirtualBox
Site
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
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 &
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
http://downloads.sourceforge.net/gparted/gparted-live-0.23.0-1-i586.iso