Wir gehen für dieses Howto davon aus das 3 Server mit einer sauberen Debian Wheezy installation und Virtualisirungssupport existieren, für weitere Hosts, den Abschnitt für die Worker-Nodes einfach beliebig oft wiederholen.
frontend01 10.0.0.1
worker01 10.0.0.2
worker02 10.0.0.3
Zu beginn stellt sich das Problem mit den vom Projekt bereitgestellten Paketen. Diese sind zwar mit Version 4.0.1 aktuell aber für Debian Sqeeze gebaut, was beim OpenNebula Paket zu unerfüllten abhängigkeiten führt. Dieses habe ich für Debian Wheezy neu gebaut, das Komplettpaket kann HIER heruntergeladen werden. Es wäre schön wenn OpenNebula die Pakete nicht Packen sondern ein Repository anbieten würde, soviel Arbeit ist das nicht.
Wir beginnen damit das tar.gz auf jeden der 3 Hosts spielen.
scp Debian-7.1-opennebula-4.0.1-1.tar.gz root@10.0.0.1 scp Debian-7.1-opennebula-4.0.1-1.tar.gz root@10.0.0.2 scp Debian-7.1-opennebula-4.0.1-1.tar.gz root@10.0.0.3
frontend installieren
Jetzt auf den Host fronend01 verbinden
ssh root@10.0.0.1
und die Datei /etc/hosts editieren
vim /etc/hosts
und die folgenden Zeilen einfügen
10.0.0.2 worker01 10.0.0.3 worker02
und dort das Archiv entpacken und in das Verzeichnis wechseln
tar xfvz Debian-7.1-opennebula-4.0.1-1.tar.gz cd opennebula-4.0.1-1/
Jetzt installieren wir die Abhängigkeiten für die OpenNebula Pakete
apt-get install -y apg binutils build-essential cpp cpp-4.6 cpp-4.7 cracklib-runtime curl dpkg-dev fakeroot g++ g++-4.7 gcc gcc-4.6 gcc-4.6-base gcc-4.7 genisoimage libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libc-dev-bin libc6-dev libcrack2 libcurl3 libdpkg-perl libffi5 libfile-fcntllock-perl libgmp10 libgomp1 libitm1 libmpc2 libmpfr4 libmysql-ruby libmysqlclient18 libnokogiri-ruby libpassword-ruby libpq5 libquadmath0 libreadline5 librtmp0 libruby1.8 libruby1.9.1 libsequel-ruby libsqlite3-ruby libssh2-1 libstdc++6-4.7-dev libtimedate-perl libxmlrpc-c++4 libxmlrpc-core-c3 libxslt1.1 libyaml-0-2 linux-libc-dev make manpages-dev mysql-common ruby ruby-mysql ruby-nokogiri ruby-password ruby-pg ruby-sequel ruby-sequel-pg ruby-sqlite3 ruby-termios ruby1.8 ruby1.8-dev ruby1.9.1 rubygems libamazon-ruby libjson-ruby libsinatra-ruby libuuidtools-ruby ruby-daemons ruby-eventmachine ruby-json ruby-rack ruby-rack-protection ruby-sinatra ruby-tilt ruby-uuidtools thin thin1.8 libaio1 libdbd-mysql-perl libdbi-perl libhtml-template-perl libnet-daemon-perl libplrpc-perl mysql-client-5.5 mysql-server mysql-server-5.5 mysql-server-core-5.5
Nun können wir die Pakete von OpenNebula installieren
dpkg -i opennebula-common_4.0.1-1_all.deb ruby-opennebula_4.0.1-1_all.deb opennebula-tools_4.0.1-1_all.deb opennebula_4.0.1-1_amd64_wheezy.deb
Die Pakete legen u.a. den Benutzer oneadmin an, dieser bekommt ein neues Passwort
passwd oneadmin
Die Worker installieren
Das folgende muss auf jedem Worker ausgeführt werden:
Das Archiv entpacken und in das Verzeichnis wechseln
tar xfvz Debian-7.1-opennebula-4.0.1-1.tar.gz cd opennebula-4.0.1-1/
Jetzt installieren wir die Abhängigkeiten für die OpenNebula Pakete
apt-get install -y augeas-lenses bridge-utils dbus dnsmasq-base ebtables gawk ipxe-qemu libaio1 libasound2 libasyncns0 libaugeas0 libavahi-client3 libavahi-common-data libavahi-common3 libbluetooth3 libbrlapi0.5 libcaca0 libcap-ng0 libcurl3-gnutls libdbus-1-3 libdevmapper-event1.02.1 libdirectfb-1.2-9 libffi5 libflac8 libglib2.0-0 libglib2.0-data libice6 libiscsi1 libjpeg8 libjson0 libnetcf1 libnetfilter-conntrack3 libnl1 libnuma1 libogg0 libparted0debian1 libpcap0.8 libpciaccess0 libpixman-1-0 libpng12-0 libpulse0 libreadline5 librtmp0 libruby1.9.1 libsdl1.2debian libsigsegv2 libsm6 libsndfile1 libspice-server1 libssh2-1 libsystemd-login0 libts-0.0-0 libusbredirparser0 libvdeplug2 libvirt-bin libvirt0 libvorbis0a libvorbisenc2 libx11-xcb1 libxenstore3.0 libxi6 libxml2-utils libxslt1.1 libxtst6 libyajl2 libyaml-0-2 lvm2 netcat-openbsd parted qemu-keymaps qemu-kvm qemu-utils ruby ruby1.9.1 seabios shared-mime-info sharutils tsconf vgabios x11-common
Nun können wir die Pakete von OpenNebula installieren
dpkg -i opennebula-node_4.0.1-1_all.deb opennebula-common_4.0.1-1_all.deb
Wieder wird der Benutzer oneadmin angelegt dieser bekommt erneut ein neues Passwort
passwd oneadmin
Und zurück zum Frontend
Nun den ssh-pubkey des oneadmin auf die Worker spielen
scp /var/lib/one/.ssh/id_rsa.pub oneadmin@worker01:/var/lib/one/.ssh/authorized_keys scp /var/lib/one/.ssh/id_rsa.pub oneadmin@worker02:/var/lib/one/.ssh/authorized_keys
Und sich einmal als oneadmin einloggen
su oneadmin ssh oneadmin@worker01 logout ssh oneadmin@worker02 logout logout
MySQL muss auch noch konfiguriert werden, duzu auf der MySQL Konsole einloggen
mysql -u root -p
Jetzt den Benutzer mit Passwort erstellen und ihm rechte für die OpenNebula Datenbank zuweisen und die Datenbank anlegen und die Nutzer neu einlesen.
CREATE USER 'opennebula'@'localhost' IDENTIFIED BY '12345'; GRANT ALL PRIVILEGES ON opennebula.* TO 'opennebula'@'localhost'; CREATE DATABASE opennebula; Flush PRIVILEGES;
Die Datei /etc/one/oned.conf muss angepasst werden
folgende Zeilen wandern rein
DB = [ backend = "mysql", server = "localhost", port = 3306, user = "opennebula", passwd = "12345", db_name = "opennebula" ]
dafür löschen wir die Zeile mit dem Verweis auf die SQLite Datenbank raus
DB = [ backend = "sqlite" ]
Jetzt den OpenNebula Daemon neu starten
/etc/init.d/opennebula restart
Wenn das fehlerfrei geschieht ist alles gut.
Nun Können wir unsere Worker-Nodes hinzufügen
onehost create worker01 -i kvm -v kvm -n ssh onehost create worker02 -i kvm -v kvm -n ssh
ob das erfolgreich war sieht man nach kurzer Zeit mit
onehost list
die Ausgabe sollte so aussehen
ID NAME CLUSTER RVM ALLOCATED_CPU ALLOCATED_MEM STAT 0 worker01 - 0 0 / 2400 (0%) 0K / 127,5G (0%) on 1 worker02 - 0 0 / 2400 (0%) 0K / 127,5G (0%) on
Details zum Host und evtl. Fehlern erhält man mit
onehost show <ID>
Das Webfrontend Installieren
dpkg -i opennebula-sunstone_4.0.1-1_all.deb
Nun passen wir in der Datei /etc/one/sunstone-server.conf die folgende Zeile so an das dort die Server IP (10.0.0.1) steht
vim /etc/one/sunstone-server.conf :host: 127.0.0.1
zu
:host: 10.0.0.1
Jetzt noch den Dienst neu starten
/etc/init.d/opennebula-sunstone restart
Das Passwort für den Zugriff auf das Frontend findet man in /var/lib/one/.one/one_auth Format Benutzer:Passwort
cat /var/lib/one/.one/one_auth
Nun kann man sich unter http://10.0.0.1:9869/ einloggen
Was in diesem Artikel noch fehlt ist eine Anleitung für Imageerstellung und die Einrichtung eines Storagebackends. Das wird dann Teil 2 und Teil 3 des Artikels.
Schreibe einen Kommentar