Debian - inicializando VMs (VirtualBox) no boot

Publicado por Cláudio Souza Jr. (última atualização em 27/10/2014)

[ Hits: 5.448 ]

Download vms-boot-start.sh




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.

  



Esconder código-fonte

#!/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

Scripts recomendados

Script de compilação automática do GCC-5.3.0 para Debian/Ubuntu de 32 bits

Gerenciamento com firewalld no CentOS 7

Init Service for Slackware

Script de monitoramento

EPD 0.5 (Criando e editando pacotes de instalação debian)


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts