Hallo,
da wir nun mit FreeBSD 9.1 die äußerst praktische "jail.conf" Konfigurationsdatei für das Konfigurieren von Jails haben, fehlt es an einem passenden rc-Script um solche Jails automatisch beim Systemstart starten zu können. Außerdem unterstützt FreeBSDs rc-Script für Jails keine hierarchischen Jails, es können mit ihm also keine Jails in Jails gestartet werden.Zu guter Letzt ist dann noch die fehlende ZFS-Integration zu nennen. Daher habe ich vorhin in die Tasten gehauen und ein eigenes rc-Script "jail2" geschrieben. Features sind:
- Jails werden in der /etc/jail.conf statt in der /etc/rc.conf konfiguriert
- ZFS-Datasets können Jails zugeordnet werden
- Jails können per rc-Script innerhalb von Jails gestartet werden
Den ZFS-Code habe ich mir aus Martin Matuskas "jailrc" geklaut. Es findet sich in der Ports unter sysutils/jailrc. Mein Code soll ebenfalls vorerst als Port angeboten werden.
Kurze Dokumentation der rc.conf Variablen:
- jail2_enable -> jail2 rc-Script ein- oder ausschalten
- jail2_list -> Mit Leerzeichen getrennte Liste der zu startenden Jails. Die Namen entsprechen denen aus der jail.conf
- jail2_$name_zfs -> Mit Leerzeichen getrennte Liste der ZFS-Datasets, die dem jail $name zugeordnet werden.
Um ZFS innerhalb von Jails nutzen zu können, muss das Dataset die Eigenschaft "jailed" besitzen. Zudem muss das Jail die Optionen "allow.mount", "allow.mount.zfs" und "enforce_statfs" gesetzt haben.
Meinen Port findet ihr unter https://github.com/Yamagi/jail2. Da Portmaster es nicht mag, wenn Pakete ohne zugehörige Ports installiert sind, sollte das Repo in ein dauerhaft vorhandenes Verzeichnis geklont werden. Kurze Installationsanleitung:
Ich würde mich freuen, wenn noch einmal jemand mit mehr sh-Mojo (ich hasse den Syntax) über das Script rüberschauen kann. Patches und Pull-Request sind willkommen. Der Port selbst hingegen sollte okay sein. Nächstes Wochenende oder so reiche ich ihn dann ein.
zur jail.conf: Dort habe ich mittelfristig noch einen Patch auf meiner Liste, der die sehr spärliche Manpage aktualisiert. Zumindest eine Liste alle möglichen Optionen - und das sind viele coole Dinge - sollte dort hinein. Man kann dort wirklich alles konfigurieren, sogaren IP-Adressen beim Jailstart setzen lassen, Dateisysteme mounten und so weiter...
da wir nun mit FreeBSD 9.1 die äußerst praktische "jail.conf" Konfigurationsdatei für das Konfigurieren von Jails haben, fehlt es an einem passenden rc-Script um solche Jails automatisch beim Systemstart starten zu können. Außerdem unterstützt FreeBSDs rc-Script für Jails keine hierarchischen Jails, es können mit ihm also keine Jails in Jails gestartet werden.Zu guter Letzt ist dann noch die fehlende ZFS-Integration zu nennen. Daher habe ich vorhin in die Tasten gehauen und ein eigenes rc-Script "jail2" geschrieben. Features sind:
- Jails werden in der /etc/jail.conf statt in der /etc/rc.conf konfiguriert
- ZFS-Datasets können Jails zugeordnet werden
- Jails können per rc-Script innerhalb von Jails gestartet werden
Den ZFS-Code habe ich mir aus Martin Matuskas "jailrc" geklaut. Es findet sich in der Ports unter sysutils/jailrc. Mein Code soll ebenfalls vorerst als Port angeboten werden.
Kurze Dokumentation der rc.conf Variablen:
- jail2_enable -> jail2 rc-Script ein- oder ausschalten
- jail2_list -> Mit Leerzeichen getrennte Liste der zu startenden Jails. Die Namen entsprechen denen aus der jail.conf
- jail2_$name_zfs -> Mit Leerzeichen getrennte Liste der ZFS-Datasets, die dem jail $name zugeordnet werden.
Um ZFS innerhalb von Jails nutzen zu können, muss das Dataset die Eigenschaft "jailed" besitzen. Zudem muss das Jail die Optionen "allow.mount", "allow.mount.zfs" und "enforce_statfs" gesetzt haben.
Meinen Port findet ihr unter https://github.com/Yamagi/jail2. Da Portmaster es nicht mag, wenn Pakete ohne zugehörige Ports installiert sind, sollte das Repo in ein dauerhaft vorhandenes Verzeichnis geklont werden. Kurze Installationsanleitung:
Code:
% git clone https://github.com/Yamagi/jail2
% cd jail2
% make install clean
Ich würde mich freuen, wenn noch einmal jemand mit mehr sh-Mojo (ich hasse den Syntax) über das Script rüberschauen kann. Patches und Pull-Request sind willkommen. Der Port selbst hingegen sollte okay sein. Nächstes Wochenende oder so reiche ich ihn dann ein.
zur jail.conf: Dort habe ich mittelfristig noch einen Patch auf meiner Liste, der die sehr spärliche Manpage aktualisiert. Zumindest eine Liste alle möglichen Optionen - und das sind viele coole Dinge - sollte dort hinein. Man kann dort wirklich alles konfigurieren, sogaren IP-Adressen beim Jailstart setzen lassen, Dateisysteme mounten und so weiter...