domingo, 10 de maio de 2015

Configurando o Virtualbox como Serviço no Linux



Virtualbox é um software de virtualização que visa criar ambientes para instalação de sistemas distintos. Ele permite a instalação e utilização de um sistema operativo dentro de outro, assim como seus respectivos softwares, como dois ou mais computadores independentes, mas compartilhando fisicamente o mesmo hardware. Geralmente usado por desenvolvedores de sistemas, ou profissionais de TI.

Em servidores é muito comum utilizar algum sistema virtualizado, principalmente se ele for um servidor Linux. Para deixar mais útil o sistema físico e virtualizado vamos aprender a transformar as máquinas virtuais criada pelo Virtualbox em serviço do Linux.

 Assim você poderá ter um controle maior do sistema virtualizado através do Terminal e não dependendo muito da interface do Virtualbox. Dê um play na videoaula baixo para ver como ficou.








Explicando alguns comandos que foram utilizados



chkconfig: comando para habilitar ou desabilitar serviços no sistema. Com o argumento "--add" você adiciona o serviço e com o argumento "on" você habilita. Esse comando é facilmente encontrado em distos Red Hat.

daemon: Daemon é um script que é utilizado para dar start, stop ou restart em um serviço. De forma independente em plano de fundo, ao invés de ser controlado diretamente por um usuário.

runlevel: é o nível de inicialização do sistema. Este nível decide qual serviço vai inicializar ou não com o sistema. O processo de inicialização do sistema é tratado pelo daemon.
update-rc.d: é uma ferramenta de gerenciamento de scripts de inicialização. Se você quer que um script que você colocou no "/etc/init.d" seja iniciado a sintaxe é :
"update-rc.d nome start NN runlevel . (...)"

Na videoaula utilizei "start 90" e  runlevel  "2 3 4 5" ,  sendo que 90 seria a colocação que o meu script seria iniciado, seria uns dos últimos.  Já o  "2 3 4 5" ele iniciaria em modo multiusuário que possa ser tanto em modo gráfico ou modo texto.

Se você quer que um script que você colocou no /etc/init.d" seja parado a sintaxe é: "update-rc.d nome stop NN runlevel . (...)"

Na videoaula utilizei "stop 10" e runlevel " 0 1 6 ", sendo que o 10 seria a colocação que o meu script seria finalizado, seria uns dos décimos primeiros a ser finalizados. Já o   " 0 1 6" corresponde a:

0 → Logo após iniciar o sistema o mesmo já finaliza todos os serviços e desliga.

1 → Temos ao finalizar o modo monousuário.

6 → Modo que reinicia a máquina.



Caso você esteja utilizando o Ubuntu server 14.04 você não encontrará o comando "chkconfig" mesmo se rodar o comando "apt-get install". Uma alternativa para esse comando é o "sysv-rc-conf". Para instala-lo rode comando:


#apt-get install sysv-rc-conf






Iniciando, Pausando e Desligando as VM's



Para iniciar todas as máquinas virtuais listadas no arquivo "machine_enabled" rode o comando root:

#service vboxcontrol start



Para fazer a pausa de todas as máquinas virtuais iniciadas:

#service vboxcontrol stop



Para visualizar todas as máquinas virtuais que estão em execução:

#service vboxcontrol status



Iniciar uma máquina virtual específica:

#service vboxcontrol start-vm nomedaVM



Parar uma máquina virtual específica (enviando um sinal para desligamento por ACPI):

#service vboxcontrol stop-vm nomedaVM



Desligando forçado (vulgo desligar no botão):

#service vboxcontrol poweroff-vm nomedaVM



Todos os testes foram feitos com êxitos em servidores utilizando o Ubuntu Server 12.04 64 bits e Debian 8 64 Bits, utilizando 3 máquinas virtuais com sistemas Windows Server 2003, Windows Server 2012 e uma VM Windows como banco de dados.

Somente na videoaula que estou utilizando uma versão para desktop com sistema Debian que também está funcionando sem problemas.

Se você encontrou algum erro ou tem algo acrescentar a esse tutorial não deixe de comentar.