Debian - inicializando VMs (VirtualBox) no boot

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

[ Hits: 5.434 ]

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

Linux Active Directory

mkzeowmp - zeo mount point para PZP (python, zope e plone)

Loadbalance FAILOVER V.2

Firewall

Fazer backup de todas base de dados no PostgreSQL


  

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