Debian - inicializando VMs (VirtualBox) no boot
Publicado por Cláudio Souza Jr. (última atualização em 27/10/2014)
[ Hits: 5.818 ]
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
Instala o Stardict Dicionario!
POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - RESTAURANDO MBOX VIA SSH
Script contra ataques de Brutal Force por SSH.
Detalhes técnicos do processador - CPUINFO
Nenhum comentário foi encontrado.
KDE Plasma - porque pode ser a melhor opção de interface gráfica
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Gentoo: Trocando wpa_supplicant pelo iwd no NetworkManager (Systemd)
Instalar Linux em notebook Sony Vaio VPCEG13EB (10)
Vou destruir sua infância:) (6)
Quando vocês pararam de testar distros? (24)









