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

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