Olá a todos!!!
Para facilitar a instalação e configuração do KVM, eu criei um script para Debian/Ubuntu que prepara o ambiente, instala e configura os arquivos da libvirt e instala uma interface web de administração. O script é melhor aproveitado em uma máquina com o SO recém instalado.
Detalhes do Script:
- Em meu ambiente eu utilizo VMs com rede em bridge, e isso foi passado para o script (a performance de rede fica muito mais rápida com essa configuração)
- O script cria a bridge utilizando a primeira placa de rede do sistema
- Todos os blocos de comandos foram feitos em forma de funções para que ficasse mais fácil a sua manipulação.
- O script instala a interface web webvirtmgr (www.webvirtmgr.net) que oferece funcionalidades básicas como criação de VMs, manipulação de storages, console em VNC, etc.
- Toda a instalação levou de 30 a 40 minutos (com uma conexão de 10 mbps)
- Curiosamente em algumas instalações eu tive que reiniciar o servidor após a instalação, mas em outras isso não aconteceu.
Abaixo o código:
#!/bin/bash
# Instalador do KVM e Webvirtmgr Para Debian Squeeze+ e Ubuntu
# Desenvolvido por Rodrigo Garcia 20/11/2012
clear
function sources_install()
{
VERSION=`cat /etc/debian_version`
if [ $VERSION = "wheezy/sid" ]
then
break;
else
# Incluir repositorios "Testing" no sources.list (apenas para Debian)
echo "# Testing" >> /etc/apt/sources.list
echo "deb http://ftp.debian.org/debian/ testing main contrib non-free" >> /etc/apt/sources.list
echo "#Testing Security updates" >> /etc/apt/sources.list
echo "deb http://security.debian.org/ testing/updates main contrib" >> /etc/apt/sources.list
apt-get update
# Instalar pacotes necessarios
apt-get install kvm libvirt-bin git python3.2 python-django virtinst apache2 libapache2-mod-python libapache2-mod-wsgi -y
fi
}
function bridge()
{
# Criar bridge br0
IFACE=`ifconfig | awk 'NR==1 {print $1}'`
echo "allow-hotplug br0" >> /etc/network/interfaces
echo "iface br0 inet dhcp" >> /etc/network/interfaces
echo " bridge_ports $IFACE" >> /etc/network/interfaces # Faz uma bridge com a primeira interface de rede do sistema
echo " bridge_fd 9" >> /etc/network/interfaces
echo " bridge_hello 2" >> /etc/network/interfaces
echo " bridge_maxage 12" >> /etc/network/interfaces
echo " bridge_stp on" >> /etc/network/interfaces
ifup br0
}
function configure_daemon()
{
# Configurar /etc/default/libvirt-bin
echo "start_libvirtd=\"yes\"" > /etc/default/libvirt-bin
echo "libvirtd_opts=\"-l -d\"" >> /etc/default/libvirt-bin
#configurar daemon do libvirt
sed -i '22 s/#//g' /etc/libvirt/libvirtd.conf
sed -i '33 s/#//g' /etc/libvirt/libvirtd.conf
sed -i '98 s/"0770"/"0777"/g' /etc/libvirt/libvirtd.conf
sed -i '146 s/#//g' /etc/libvirt/libvirtd.conf
sed -i '146 s/"sasl"/"none"/g' /etc/libvirt/libvirtd.conf
}
function webvirt_install()
{
# Baixar e instalar webvirtmgr
mkdir /var/www/webvirtmgr
git clone git://github.com/retspen/webvirtmgr.git /var/www/webvirtmgr
# Configurar banco de dados e criar superusuario (este é o único ponto do script em que há interação com o usuário)
/var/www/webvirtmgr/manage.py syncdb
chown www-data:www-data /var/www/webvirtmgr -R
chmod 755 /var/www/webvirtmgr/webvirtmgr.db
# Configuracao do Apache
echo "WSGIScriptAlias / /var/www/webvirtmgr/wsgi/django.wsgi" > /etc/apache2/conf.d/webvirtmgr.conf
echo "Alias /static /var/www/webvirtmgr/static/" >> /etc/apache2/conf.d/webvirtmgr.conf
echo "Alias /media /var/www/webvirtmgr/media/" >> /etc/apache2/conf.d/webvirtmgr.conf
echo "<Directory /var/www/webvirtmgr/wsgi>" >> /etc/apache2/conf.d/webvirtmgr.conf
echo " Order allow,deny" >> /etc/apache2/conf.d/webvirtmgr.conf
echo " Allow from all" >> /etc/apache2/conf.d/webvirtmgr.conf
echo "</Directory>" >> /etc/apache2/conf.d/webvirtmgr.conf
}
function modules()
{
# Reiniciar os módulos
rmmod kvm-intel
rmmod kvm
modprobe kvm
modprobe kvm-intel
}
function services()
{
# Reiniciar os serviços
service libvirt-bin restart
service apache2 restart
}
sources_install
bridge
configure_daemon
webvirt_install
modules
services
exit 0;
Espero que gostem,
Até a próxima!!!
Fiquei com duvida sobre a instalação do Banco de Dados, ele pergunta qual quero usar, porem não me recordo se instalei algum client
ResponderExcluirAliás parabéns pelo Script tá show de bola, mto prático...
ResponderExcluir