VirtualBox auf FreeNAS :D :D

Status
Not open for further replies.

ringhut

Dabbler
Joined
Sep 17, 2013
Messages
10
Hier gibt erstmal ein schönes Bild für euch ;)

82fFu.png


Ausführliche Deutsche Anleitung wurde nun von meinem Liebling Wiesel mit viel Liebe zum Detail erstellt!!!
 

PowerWiesel

Dabbler
Joined
Feb 19, 2014
Messages
17
Also hier ist die deutsche Version des Tutorials von cyberjock,welches auf der Idee und dem Tutorial von xcom beruht.

Vorraussetzungen:

  • Viel RAM. Minimum 8GB für das FreeNAS System ansich + das was du den VM's an RAM gibst.
  • eine CPU mit Intel VT-x oder AMD-V für 64-bit VM's.
  • FreeNAS 9.2.1.x 64-bit only. Unten gleich eine Liste der getesteten Versionen.
  • virtualbox-ose 4.3.10-4.3.12 (wird später erklärt)
Empfehlungen:

  • Die Ports zum Webinterface zu forwarden um über das Internet Zugriff zu erhalten ist keine gute Idee und sollte unterlassen werden !
  • Die Virtualbox additions sind sehr nützlich für die VM's und es wird wärmstens empfohlen diese zu installieren.
Die folgenden Versionen von FreeNAS wurden getestet und haben für uns funtkioniert.

  • 9.2.1.2
  • 9.2.1.3
  • 9.2.1.4
  • 9.2.1.5 bedingt -> siehe unten bei Anmerkungen
  • 9.2.1.6 (erweiterte Anleitung unter Anmerkungen)
Special thanks goes out to the following people who spent several days on this with me while we got this working properly:
  • xcom for the original guide that was used as a basis for this guide
  • Tsaukpaetra for his expertise with troubleshooting problems
  • Divine for assistance with figuring out the driver problems


Erst mal die Anleitung, später noch einige Anmerkungen.

1. Erstelle ein standard jail

Erstelle ein standard 64-bit jail auf deinem FreeNAS System. Achte darauf, dass VIMAGE ausgewählt und NAT und Vinalla deaktiviert sind. Falls das jail beim booten von FreeNAS von selbst starten soll, wähle autostart aus.

2. Konfigurieren des jails

Innerhalb des standard jails und als root:

(falls du nicht sicher bist wie du per ssh in dein jail kommst, siehe unterhalb Punkt 4)

# pkg update
# pkg install apache22 xauth phpvirtualbox mod_php5 nano virtualbox-ose wget

Das dauert jetzt ein Weilchen... Du kannst in der Zeit einen Kaffee trinken :)

Sicherheits Check: Gib "pkg version | grep virtualbox" ein. Wenn die installiert Version nicht 4.3.10-4.3.12 entspricht wird es vielleicht nicht funktionieren. Wenn es nicht mindestens Version 4.3.x ist, wird es höchst wahrscheinlich nicht funktionieren.

# nano /usr/local/etc/apache22/httpd.conf

Ändere folgende Zeilen in der http.conf:

DocumentRoot "/usr/local/www/apache22/data"
-zu-
DocumentRoot "/usr/local/www/phpvirtualbox"

<Directory "/usr/local/www/apache22/data">
-zu-
<Directory "/usr/local/www/phpvirtualbox">

des weiteren gibt es dort eine Sektion mit AddTypes (<IfModule mime_module>) Füge dort folgendes ein:

AddType application/x-httpd-php .php
AddType application/x-httpd-php-sources .phps

Nun beende und speichere deine httpd.conf .

Jetzt legen wir einen neuen user an:

# adduser
Username: vbox
Full name: (Was du möchtest / ist egal)
Uid (Leave empty for default):
Login group [vbox]:
Login group is vbox. Invite vbox into other groups? []: wheel
Login class [default]:
Shell (sh csh tcsh nologin) [sh]: csh (du musst hier nichts eingeben, ich habe es trotzdem getan)
Home directory [/home/vbox]:
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password: (verwende ein starkes/sicheres Passwort)
Enter password again: (gib das Passwort erneut ein)
Lock out the account after creation? [no]:
Username : vbox
Password : *****
Full Name :
Uid : 1001
Class :
Groups : vbox wheel
Home : /home/vbox
Home Mode :
Shell : /bin/csh
Locked : no
OK? (yes/no): yes
pw: mkdir(/home/vbox): No such file or directory
adduser: INFO: Successfully added (vbox) to the user database.
Add another user? (yes/no): no
Goodbye!

Erstelle einige Ordner für den user und lege die Berechtigungen fest:

# mkdir -p /home/vbox && chgrp -R wheel /home && chown -R root /home && chmod -R 775 /home

Ändere das root Passwort:

# passwd root

Konfiguriere die Dienste:

# sysrc apache22_enable=YES && sysrc sshd_enable=YES && sysrc vboxwebsrv_user="vbox" && sysrc vboxwebsrv_enable="yes"

2a OPTIONAL: Ein paar Einstellungen für die Virtualbox:


# nano /usr/local/www/phpvirtualbox/config.php

a) erweiterte Config
unkommentiere (entferne #) folgende Zeile:

var $enableAdvancedConfig = true;

b) Virtualbox Sprache auf Deutsch umstellen
ändere folgende Zeile:

var $language = 'en';
-zu-
var $language = 'de';

c) Anmeldung am Virtualbox Webinterface ohne Passwort (unsicher)
unkommentiere folgende Zeile:

var $noAuth = true;

Beende und speichere die Datei.

2b OPTIONAL: Wenn du SSL verwenden möchtest, musst du folgendes tun:

# nano /usr/local/etc/apache22/httpd.conf

Füge folgende Zeilen zu dem Dokument hinzu (z.B. ans Ende):

Code:
    Listen 443
    <VirtualHost *:443>
      ServerName 192.168.2.4
      SSLEngine on
      SSLCertificateFile /home/vbox/server.crt
      SSLCertificateKeyFile /home/vbox/server.key
    </VirtualHost>


Verwende die IP des jails als Adresse hinter Servername (statt 192.168.2.4)

Falls du keinen http Zugang möchtest, lösche oder kommentiere die Zeile "Listen 80" in der httpd.conf aus.

Beende und speichere die Datei.

Anmerkung: Die folgende verschlüsslungs-key Einstellungen sind unter Umständen nicht sicher. Verwendung auf eigene Gefahr.

Erstelle verschlüsslung keys für SSL:

# cd /home/vbox
# openssl genrsa -des3 -out server.key 1024 (generiert den private key)
# openssl req -new -key server.key -out server.csr
# cp server.key server.key.org (sichert den key)
# openssl rsa -in server.key.org -out server.key (entfernt den passphrase aus dem key)
# openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt (generiert ein selbstsigniertes Zertifikat)

3. Ersetze die FreeNAS kernel Treiber:

Anmerkung: Wenn du nicht vorhast den network bridge mode für die VM's zu nutzen, brauchst du die ng*.ko Dateien nicht nach /boot/kernel zu kopieren.

Downloade die angfügte files.tar.gz aus diesem Post.

Stoppe das erstellte Virtualbox jail (im FreeNAS Webinterface). Am besten stoppst du alle jails als vorbereitung auf den gleich folgenden reboot.

Im FreeNAS und als root wird nun folgendes gemacht

# mount -uw /
- kopiere die vbox*.ko Datein nach /boot/modules (wenn nötig überschreiben)
- kopiere die ng*.ko Datein nach /boot/kernel
(das geht u.a. auch per ftp (als root) oder scp)
# chmod 555 /boot/modules/*.ko
# chmod 555 /boot/kernel/*.ko
# kldxref /boot/modules /boot/kernel
# echo "vboxnet_enable=YES" >> /conf/base/etc/rc.conf
# mount -ur /

Der letzte Befehl braucht ein paar Minuten. Falls es Fehler gibt, versuch es solang bis kein Fehler mehr ausgegeben wird.

Wenn du bridged networking nutzen möchtest, musst du die Feinabstimmung "ng_ether_load" unter anpassbare Parameter im FreeNAS Webinterface auf YES setzen.

4. Reboot

Reboote dein FreeNAS System, damit sichergestellt werden kann, dass die Treiber automatisch laden. Wenn du alles richtig gemacht hast, sollte phpVirtualbox nun unter http://ip-deines-jails/ und/oder https://ip-deines-jails/ erreichbar sein. Der standart Login lautet (sofern nicht wie oben beschrieben deaktiviert) admin/admin. Es wird empfohlen das Passwort des Admins zu ändern.

Falls du die VM's auserhalb des jails speichern möchtest, musst du im FreeNAS Webinterface unter Jails - deinJail-Speicher-Add Storage ein Verzeichnis einbinden und die VM's in diesem erstellen.
Wenn du unsicher bist, ließ unter doc.freenas.org nach wie es funktioniert.
-----------------------------------------------------------------------------------------------

Wie komme ich per ssh in das jail ?
Der für mich einfachste Weg ist folgender:

Stelle eine ssh Verbindung zu deinem FreenNAS System her. Nun gib "jls" ein.
Bei mir kommt nun diese Ausgabe:

Code:
[root@freenas] ~# jls
  JID  IP Address      Hostname                      Path
    1  -              vbox                          /mnt/System/jails/Vbox
    2  -              owncloud_1                    /mnt/System/jails/owncloud_1
    3  -              plexmediaserver_1            /mnt/System/jails/plexmediaserver_1
[root@freenas] ~#


Das Virtualbox jail hat bei mir die JID 1.
Nun gibst du "jexec 1 csh" ein und schon bist du im jail.

-----------------------------------------------------------------------------------------------

Anmerkungen:

  • FreeNAS kann nicht als VM innerhalb von FreeNAS erstellt werden :rolleyes:
  • USB support funktioniert nicht in Version 4.3.10 (liegt an Virtualbox nicht an FreeNAS)
  • Bridge mode network support FUNKTIONIERT!
  • Snapshots vom jail können sehr sinnvoll sein - vorher sollten aber alle VM's heruntergefahren sein.
  • Wenn mehr als ein user gleichzeitig auf das Virtualbox Webinterface gleichzeitig zugreifen kann es zu problemen kommen (zB neuladen der Seite). Ebenso kann nur ein user gleichzeitig per VNC auf eine VM zugreifen.
  • Ohne Virtualbox additions kann es u.a. zu Problemen mit der Maus kommen, also am Besten installieren ;)
-----------------------------------------------------------------------------------------------

Zu 9.2.1.5:

Hier funktioniert das automatische Laden der Kerneltreiber aus mir unbekannten Gründen nicht.
Man kann sie mit folgenden Befehlen per ssh manuel laden:

# kldload /boot/kernel/ng*

# kldload /boot/modules/vbox*

Die Befehle können auch als Init Script im Webinterface eingefügt werden (zum automatischen Start)

-----------------------------------------------------------------------------------------------

Zu 9.2.1.6+:

Ab 9.2.1.6 nightly vom 24.5.2014 ist ein fertiges Virtualbox jail template enthalten. Da diese Version noch im beta Stadium ist, wird die Verwendung nur erfahrenen Nutzern empfohlen.

Anleitung:

1. Stelle sicher, dass du die 9.2.1.6 nightly vom 24.5.2014 oder neuer Verwendest.

2. Hinzufügen und installieren des virtualbox template's

Klicke auf den Jails button und dann auf "Add Jails". Wähle das template "VirtualBox-4.3.10"aus. Gib dem Jail einen Namen und eine IP.
Stelle sicher, dass VIMAGE ausgewählt und NAT und vanilla deaktiviert sind.
Aktiviere autostart wenn das jail beim Starrten des FreeNAS Systems von selbst starten soll.

Das template hat fast 700MB und könnte von daher einen moment zum Download brauchen.

Falls du eine Fehlermeldung beim downloaden erhälst, stelle sicher dass der Downloadpfad zum template "http://download.freenas.org/9.2.0/RELEASE/x64/jails/vboxtemplate.tgz" lautet.

3. Feinabstimmung

Wenn du bridged networking nutzen möchtest, musst du die Feinabstimmung "ng_ether_load" unter anpassbare Parameter im FreeNAS Webinterface auf YES setzen.

4. Starten und benutzen des jails

Falls dein jail noch nicht läuft, starte es jetzt. Du erreichst es unter http://ip-deines-jails/.
Der Login lautet: admin/admin.

Das war alles :)

Für weitere otpionale Einstellungen von Virtualbox siehe weiter oben.
 

Attachments

  • files.tar.gz
    121.6 KB · Views: 294

Rand

Guru
Joined
Dec 30, 2013
Messages
906
Ist das zufällig zeitgleich mit der (aktuell zum Rework entfernten) Anleitung von xcom?

Aber nichts desto trotz - immer her damit:)
 

PowerWiesel

Dabbler
Joined
Feb 19, 2014
Messages
17
Doch genau um die gehts :)

habe es gestern mit seiner Hilfe (per PM) zum laufen gebracht.

In der Anleitung wird natürlich stehen, dass sie von ihm stammt.

War eine klasse Arbeit von xcom
 

Rand

Guru
Joined
Dec 30, 2013
Messages
906
Ah fein; wollte es testen aber da war sie schon offline; kam leider nicht mehr an die modules dran;) (die waren nicht im google cache;) )
 

Rand

Guru
Joined
Dec 30, 2013
Messages
906
Internet oder Netzwerk allgemein?
Hast Du denn das Netz unter Configuration konfiguriert?
 

ringhut

Dabbler
Joined
Sep 17, 2013
Messages
10
Hast du mal geschaut ob beim Jail VIMAGE aktiviert ist und NAT, Vanilla deaktiviert?
Und die VMs dann mit der Netzwerkbrücke verbinden. Der epairb Adapter muss als Netzwerkadapter für die VM ausgewählt sein.
 

ringhut

Dabbler
Joined
Sep 17, 2013
Messages
10
Ich und PowerWiesel sind noch am Bug fixen, werden aber die nächsten Tage eine überarbeitete Deutsche Anleitung hier Posten.
Wir haben momentan noch viele Probleme mit den Kernel Modulen, da die teilweise crashen oder einfrieren.

Also noch ein wenig Geduld;)
 

exilem

Dabbler
Joined
Nov 7, 2013
Messages
24
ja irgend wie nur in dem Jail .... wen ich im Terminal auf heise pingen will kommt nur (ping: cannot resolve heise.de: Host name lookup failure)
Deswegen komm ich auch nichtüber pkg_update ...:(
 

Rand

Guru
Joined
Dec 30, 2013
Messages
906
Und
Hast du mal geschaut ob beim Jail VIMAGE aktiviert ist und NAT, Vanilla deaktiviert?
Und die VMs dann mit der Netzwerkbrücke verbinden. Der epairb Adapter muss als Netzwerkadapter für die VM ausgewählt sein.
hast Du gemacht?
Und DNS ist auch allgemein konfiguriert? und eine gültige IP?

<Und die Kernelmodule sind auch an die richtige Stelle kopiert und gelinkt und per chmod auf 555 gesetzt ?;)>
Soweit warst Du ja noch gar nicht;) Sorry
 

exilem

Dabbler
Joined
Nov 7, 2013
Messages
24
hab jetzt nen neues gemacht ohne NAT und da klappt pkg_update .....

ich halte euch mal auf dem laufenden ....
 

exilem

Dabbler
Joined
Nov 7, 2013
Messages
24
Sehr cool ...habs geschaft ...:)
es läuft .....

leider hab ich jetzt irgend ein problem mit der anmeldejung auf der webweite ....

Werder root noch vbox funktionieren .... peer ssh geht vbox mit pw
root geht auch dort nicht ....pw Fehler ....
 

exilem

Dabbler
Joined
Nov 7, 2013
Messages
24
hi ich wieder .... login mit vbox sollte klappen ....


aber jetzt schmeißt er mir die Fehlermeldung entgegen ... ????



Exception Object
(
[message:protected] => Error logging in to vboxwebsrv.
[string:Exception:private] =>
[code:protected] => 64
[file:protected] => /usr/local/www/phpvirtualbox/lib/ajax.php
[line:protected] => 128
[trace:Exception:private] => Array
(
)

[previous:Exception:private] =>
)
 

Rand

Guru
Joined
Dec 30, 2013
Messages
906
Was hast Du vorher dran gedreht;) ?
VBox sollte gar nicht gehen... und bei mir ging admin/admin;)
 
Status
Not open for further replies.
Top