Debian - inicializando VMs (VirtualBox) no boot
Publicado por Cláudio Souza Jr. (última atualização em 27/10/2014)
[ Hits: 5.804 ]
Primeiro cumpre esclarecer que o foco está no VirtualBox, instalado em uma distribuição Debian 7.6.0 (32 bits), mas isso deve ser possível com qualquer outro virtualizador e/ou versão Linux, desde que feitas as devidas adaptações.
O procedimento é muito simples. Criamos um script que usa configurações estáticas. Logicamente, este programa requer VirtualBox instalado e funcionando, com o aplicativo vboxmanage devidamente configurado. O apt-get resolve isso na maioria dos casos em distribuições Debian (ou baseadas em Debian). Também requer máquinas virtuais criadas e previamente configuradas. Lembre-se de que o usuário que cria as VMS é o único que poderá controlá-las. Aqui no site tem muita dica boa sobre criação e administração de VMS (inclusive na linha de comando), e na internet tem mais uma pá de coisas muito boas (inclusive em inglês), portanto, não mencionarei esses procedimentos aqui. Pouco provável o contrário, mas os programas "su" e "update-rc.d" também devem estar instalados. O interpretador de comandos que eu usei foi o bash.
Considerações:
1. Como usuário root do sistema, grave o arquivo/script no diretório /usr/local/bin";
2. Com o arquivo/script gravado, dê permissão de execução a ele com o comando:
# chmod +x /usr/local/bin/nome_do_script
3. Crie um link simbólico desse arquivo para o diretório "/etc/init.d":
# ln -s /usr/local/bin/nome_do_script /etc/init.d
4. Atualize a lista de programas iniciados no boot com o comando:
# update-rc.d nome_do_script defaults
Para ser mais prático, e considerando que a intenção é rodar esses comandos no boot/desligamento, você também poderia gravar/criar o arquivo/script em "/etc/init.d". Eu preferi fazer um link simbólico. Usar o usuário root para gravação do arquivo/script é uma atitude não obrigatória, fica a seu critério (logicamente, há implicações decorrentes). Dependendo das configurações das VMS ou/e da capacidade de processamento/carga do seu servidor, isso pode atrasar um pouco a inicialização ou desligamento da máquina. Perceba que todas as VMS têm o mesmo dono.
#!/bin/bash
### BEGIN INIT INFO
# Provides: nome_do_script
# Required-Start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Script de ativacao das maquinas virtuais.
# Description: Script de ativacao e desativacao das maquinas virtuais no boot e no desligamento do sistema.
### END INIT INFO
#
# Declare os nomes das VMS a ativar/desativar no boot e no desligamento da maquina
array=(nomevm1 nomevm2 nomevm3)
# Funcao "iniciar" que vai disparar o metodo "start"
iniciar(){
echo "Inicializando as maquinas virtuais...";
for VmList in ${array[@]}
do
su - usuario_dono_vms -c "vboxmanage controlvm $VmList startvm --type headless >> /dev/null";
echo "Maquina $VmList inicializada...";
echo "----------------------------";
done
sleep 1;
}
# Funcao "parar" que vai disparar o metodo "stop"
parar(){
echo "Interrompendo as maquinas virtuais...";
for VmList in cat ${array[@]}
do
su - usuario_dono_vms -c "vboxmanage controlvm $VmList acpipowerbutton >> /dev/null";
echo "Maquina $VmList desligada...";
echo "----------------------------";
done
sleep 1;
}
# Gatilhos das funcoes
case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar ;;
*) echo "Use os parametros start, stop ou restart."
esac
Registar automáticamente o dns de uma maquina no DNS via DHCP
Nenhum comentário foi encontrado.
LazyDocker – Interface de Usuário em Tempo Real para o Docker
Instalando COSMIC no Linux Mint
Turbinando o Linux Mint: o poder das Nemo Actions
Inteligência Artificial no desenvolvimento de software: quando começar a usar?
[Resolvido] Algo deu errado ao abrir seu perfil
Usando o VNSTAT para medir o seu consumo de internet
Habilitando clipboard manager no ambiente COSMIC
Quando vocês pararam de testar distros? (8)
Quais licenças open source têm valor jurídico? (7)
Não estou conseguindo fazer funcionar meu Postfix na versão 2.4 no Deb... (1)









