VirtualBox: mudanças entre as edições

De Wiki Projeto Root
Ir para navegação Ir para pesquisar
Linha 295: Linha 295:




== AutoStart ==
=== AutoStart ===


   nano /etc/default/virtualbox
   nano /etc/default/virtualbox

Edição das 04h01min de 18 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

https://youtu.be/YeKZ4pgO8t8

  • Uso de Snapshots

https://youtu.be/N2BW6EVN5j4

  • Redes no VirtualBox

https://youtu.be/6MvOf5wCRPc

  • Utilizando CLI no VirtualBox

https://youtu.be/96eTyAJhYMA

Documentação: https://wiki.projetoroot.com.br/index.php?title=VirtualBox#VirtualBox_por_Shell


  • Scripts para VirtualBox

https://youtu.be/DxzMsDIol8A

Documentação: https://wiki.projetoroot.com.br/index.php?title=VirtualBox#Scripts

  • Servidor VirtualBox

https://youtu.be/v9uBlKzaClg

  • RemoteBox e AutoStart - Vídeo Extra

https://youtu.be/auz1C0oW1EY

Site

https://www.virtualbox.org/

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 &


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

  http://downloads.sourceforge.net/gparted/gparted-live-0.23.0-1-i586.iso