Open Nebula auf Debian Wheezy installieren I – Core

Opennebula_logoWir 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.


Beitrag veröffentlicht

in

von

Schlagwörter:

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert