quinta-feira, 10 de janeiro de 2013

Instalação do Xen 4.1 no Debian Wheezy 7.0 Netinstall - Script

Neste Post você poderá instalar de forma simples o Xen 4.1 no Debian Wheezy 7.0 e desfrutar desta Incrivel ferramenta gratuita de Virtualização.  O Ambiente foi criado com 3 partições, segue abaixo:

Você tem a liberdade de montar as partições e seus tamanhos conforme sua necessidade, nós usamos o exemplo a seguir:

Hd de 1 TeraByte

Partição Raiz '/' - Tipo: EXT4 - Tamanho: 50 Gb
Partição para os Discos das DOMUs (Maquinas virtuais) - Tipo: Linux LVM - Tamanho: 938 Gb
Partição de Area de troca - Tipo SWAP - Tamanho: 12 Gb

Instalamos o Linux sem configurar a interface de rede local, selecionamos para "Não configurar agora" e prosseguimos a instalação sem rede, poderá usar essa opção conforme sua necessidade.

Para poupar recursos do sistema usamos o Xdm como gerenciador de login e o FluxBox como Gerenciador de Janelas.


Foi optado pelo uso do Virt-Manager para o Gerenciamento das maquinas virtuais, ele facilita a criação, administração e visualização da sua VM, também poderá gerenciar o seu grupo de volumes lógicos, criando volumes lógicos no momento da criação da VM, isto tudo via interface gráfica.



Após a instalação crie um arquivo "script.sh" com o conteudo Abaixo e dê permissão de execução:



#!/bin/bash

function pause(){
   read -p "$*"
}

pause 'Este Script ira instalar o Xen 4.1 no Debian Wheezy, pressione [ENTER] para continuar...'

echo 'Etapa de Configuracao das interfaces de rede LoopBack  e Eth0   '
echo -n 'Deseja configurar as interfaces de rede ? s/n  ' ; read resposta

if [ $resposta == "s" ] ; then
                pause 'O sistema ira configurar a rede, pressione [ENTER] para continuar...'
                echo 'auto lo' > /etc/network/interfaces
                echo 'iface lo inet loopback' >> /etc/network/interfaces
                echo '' >> /etc/network/interfaces
                echo 'auto eth0' >> /etc/network/interfaces
                echo 'iface eth0 inet dhcp' >> /etc/network/interfaces
fi

echo 'Serviço de rede'
echo -n 'Deseja reiniciar Servico de rede ? s/n  ' ; read resposta

if [ $resposta == "s" ] ; then
echo 'Reiniciando os serviços de rede...'
                /etc/init.d/networking restart
fi

echo 'Arquivos de enderecos de repositorio'
echo -n 'Deseja configurar os arquivos de endereco dos repositorios ? s/n  ' ; read resposta

if [ $resposta == "s" ] ; then
                echo 'deb http://security.debian.org/ wheezy/updates main contrib non-free' > /etc/apt/sources.list
echo 'deb-src http://security.debian.org/ wheezy/updates main contrib non-free' >> /etc/apt/sources.list
echo 'deb http://ftp.br.debian.org/debian/ wheezy main contrib non-free' >> /etc/apt/sources.list
echo 'deb-src http://ftp.br.debian.org/debian/ wheezy main contrib non-free' >> /etc/apt/sources.list
echo 'Arquivos de configuração de repositorio configurados...'
fi

echo 'Atualizacao de endereços de repositorio'
echo -n 'Deseja atualizar os enderecos dos repositorios ? s/n  ' ; read resposta

if [ $resposta == "s" ] ; then
apt-get update
fi

echo 'Instalacao de pacotes necessarios'
echo -n 'Deseja instalar os pacotes para instalacao do Servidor Xen ? s/n  ' ; read resposta

if [ $resposta == "s" ] ; then
apt-get install xen-linux-system-3.2.0-4-amd64 xen-utils-4.1 xen-tools sudo xserver-xorg xserver-xorg-core xorg fluxbox xdm xenwatch virt-manager firmware-realtek openssh-server vim less -y
fi

echo 'Configuracao do Gestor de Inicialização GRUB'
echo -n 'Deseja configurar o Grub para o Servidor Xen ? s/n  ' ; read resposta

if [ $resposta == "s" ] ; then
mv /etc/grub.d/10_linux /etc/grub.d/50_linux
echo "" >> /etc/default/grub
echo "# Disable OS prober to prevent virtual machines on logical volumes from appearing in the boot menu." >> /etc/default/grub
echo "GRUB_DISABLE_OS_PROBER=true" >> /etc/default/grub
echo "" >> /etc/default/grub
echo "# Xen boot parameters for all Xen boots" >> /etc/default/grub
echo 'GRUB_CMDLINE_XEN="dom0_mem=1024M"' >> /etc/default/grub
update-grub2
fi

echo 'Copiar Bibliotecas do XEN para o Virt-Manager'
echo -n 'Deseja copiar as bibliotecas do Servidor Xen para o Virt-Manager ? s/n  ' ; read resposta

if [ $resposta == "s" ] ; then
mkdir -p /usr/lib/xen-default/
mkdir -p /usr/lib64/xen/
cp /usr/lib/xen-4.1/* -rv /usr/lib/xen-default/
cp /usr/lib/xen-4.1/* -rv /usr/lib64/xen/
fi

echo 'Configuracao do HOST Xen (DOMAIN 0)'
echo -n 'Deseja configurar os parametros necessarios no Servidor Xen ? s/n  ' ; read resposta

if [ $resposta == "s" ] ; then
sed -i 's|(enable-dom0-ballooning yes)|(enable-dom0-ballooning no)|g' /etc/xen/xend-config.sxp
sed -i 's|#(xend-http-server no)|(xend-http-server yes)|g' /etc/xen/xend-config.sxp
sed -i 's|#(xend-unix-server no)|(xend-unix-server yes)|g' /etc/xen/xend-config.sxp
sed -i 's|# (network-script network-bridge)|(network-script network-bridge)|g' /etc/xen/xend-config.sxp
sed -i 's|(dom0-min-mem 196)|(dom0-min-mem 1024)|g' /etc/xen/xend-config.sxp
sed -i 's|XENDOMAINS_SAVE=/var/lib/xen/save|XENDOMAINS_SAVE=""|g' /etc/default/xendomains
sed -i 's|XENDOMAINS_RESTORE=true|XENDOMAINS_RESTORE=false|g' /etc/default/xendomains
fi

echo 'Configurar a rede Bridge xenbr0'
echo -n 'Deseja Configurar a rede Bridge xenbr0 ? s/n  ' ; read resposta

if [ $resposta == "s" ] ; then
echo '' >> /etc/network/interfaces
echo 'auto xenbr0' >> /etc/network/interfaces
echo 'iface xenbr0 inet dhcp' >> /etc/network/interfaces
echo 'bridge_ports eth0' >> /etc/network/interfaces
echo 'bridge_stp on' >> /etc/network/interfaces
echo 'bridge_maxwait 0' >> /etc/network/interfaces
echo 'bridge_fd 0' >> /etc/network/interfaces
ifconfig xenbr0 up
/etc/init.d/networking restart
brctl addbr xenbr0
fi


#FIM