Witam, dzis poradnik dotyczący informacji – instalacji i konfiguracji systemu wirtualizacji KVM na serwerze opartym o system Ubuntu/Debian.
Bazowac będziemy na KVM (libvirt) – paczka dla systemu Ubuntu 14.04/Debiana 8, interfejs web WebVirtMgr, serwer www reverse-proxy Tengine – czyli zmodyfikowany nginx (o tym będzie osobny poradnik).
Instalacja dla Ubuntu 14.04 LTS oraz Debian 8
1. Repozytoria – tylko UBUNTU 14.04
rm /etc/apt/sources.list ; wget http://pliki.linuxiarz.pl/kvm/sources.list -O /etc/apt/sources.list
2. Instalacja wirtualizacji KVM
wget -O - http://pliki.linuxiarz.pl/kvm/libvirt.sh | sudo sh
3. Instalacja wymaganych pakietow do pracy z narzędziami “graficznymi” (web interfejsem)
apt install git python-pip python-libvirt python-libxml2 novnc supervisor nano nova-novncproxy -y
Instalacja bibliotek pythona i Django
git clone git://github.com/retspen/webvirtmgr.git cd webvirtmgr pip install -r requirements.txt
Konfiguracja użytkownuka “root” dla interfejsu WebVirtMgr
./manage.py syncdb
przykład:
You just installed Django's auth system, which means you don't have any superusers defined. Would you like to create one now? (yes/no): yes Username (leave blank to use 'root'): Email address: Password: Password (again): Superuser created successfully. Installing custom SQL ... Installing indexes ... Installed 6 object(s) from 1 fixture(s)
I na koniec: (wpisujemy “yes”)
./manage.py collectstatic
Instalacja w katalogu domowym:
cd .. mv webvirtmgr /home/ chown -R www-data:www-data /home/webvirtmgr
Konfiguracja wirtualizacji – do wsparcia interfejsu Web
wget http://pliki.linuxiarz.pl/kvm/webvirtmgr.conf -O /etc/supervisor/conf.d/webvirtmgr.conf
4. Instalacja serwera www pracującego jako reverse-proxy:
4.1 UBUNTU 14.04
apt install fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjbig0 liblua5.1-0 libperl5.18 libxpm4 libxslt1.1 libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python python-minimal python2.7 python2.7-minimal fcgiwrap ssl-cert libossp-uuid16 libtiff5 -y wget http://kompilacje.linuxiarz.pl/Ubuntu%2014.04%20LTS/Tengine-2.2.0/nginx-common_2-tengine-linuxiarz.pl_all.deb wget http://kompilacje.linuxiarz.pl/Ubuntu%2014.04%20LTS/Tengine-2.2.0/nginx-doc_2-tengine-linuxiarz.pl_all.deb wget http://kompilacje.linuxiarz.pl/Ubuntu%2014.04%20LTS/Tengine-2.2.0/nginx-extras_2-tengine-linuxiarz.pl_amd64.deb wget http://kompilacje.linuxiarz.pl/Ubuntu%2014.04%20LTS/Tengine-2.2.0/nginx_2-tengine-linuxiarz.pl_all.deb dpkg -i nginx-common_2-tengine*.deb nginx_2-tengine*.deb nginx-extras_2-tengine*.deb nginx-doc_2-tengine*.deb
Konfiguracja v-hosta:
rm /etc/nginx/conf.d/default.conf wget http://pliki.linuxiarz.pl/kvm/default.conf -O /etc/nginx/conf.d/default.conf
4.2 DEBIAN 8
apt install fontconfig-config fonts-dejavu-core libfontconfig1 libgd3 libjbig0 liblua5.1-0 libperl5.20 libtiff5 libxpm4 libxslt1.1 libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python python-minimal python2.7 python2.7-minimal fcgiwrap ssl-cert libossp-uuid16 -y wget http://kompilacje.linuxiarz.pl/Debian_8/Tengine-2.2.0/nginx-common_2-tengine-linuxiarz.pl_all.deb wget http://kompilacje.linuxiarz.pl/Debian_8/Tengine-2.2.0/nginx-doc_2-tengine-linuxiarz.pl_all.deb wget http://kompilacje.linuxiarz.pl/Debian_8/Tengine-2.2.0/nginx-extras_2-tengine-linuxiarz.pl_amd64.deb wget http://kompilacje.linuxiarz.pl/Debian_8/Tengine-2.2.0/nginx_2-tengine-linuxiarz.pl_all.deb dpkg -i nginx-common_2-tengine*.deb nginx_2-tengine*.deb nginx-extras_2-tengine*.deb nginx-doc_2-tengine*.deb
Konfiguracja v-hosta:
rm /etc/nginx/conf.d/default.conf wget http://pliki.linuxiarz.pl/kvm/default.conf -O /etc/nginx/conf.d/default.conf
5. Restart usług:
service supervisor stop service supervisor start service nginx stop service nginx start
Pobranie przykładowego obrazu ISO
ln -s /var/lib/libvirt/images /home/obrazy cd /home/obrazy ; wget http://cdimage.debian.org/cdimage/weekly-builds/amd64/iso-cd/debian-testing-amd64-netinst.iso
6. Po tym, w przeglądarce (domyślny port www – 80) powinien ukazać się interfejs w którym ustawiasz “sposób” podłączenia do systemu wirtualicji, konfigurujesz sieć, storage itp., oraz tworzysz vm’ke itd..
7. Jeśli nie masz dodatkowych adresów IP to możesz “routować” z głównego interfejsu swojego hosta konkretne porty do maszyn wirtualnych.
Przykładowe polecenie dla maszyny wirtualnej o adresie IP 192.168.122.176 i przekierowaniu do portu 22 (SSH) – port 2222
iptables -t nat -I PREROUTING -p tcp -d 167.114.227.xxx --dport 2222 -j DNAT --to-destination 192.168.122.176:22 iptables -I FORWARD -m state -d 192.168.122.0/24 --state NEW,RELATED,ESTABLISHED -j ACCEPT