![]() |
|
|
|||||||
| Portal | Wiki | IRC-Chat | Registrieren | Benutzerliste | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
![]() |
|
|
Themen-Optionen | Thema bewerten | Ansicht |
|
|
#1 |
|
Possessed With Psi Powers
|
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: Code:
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...
__________________
Eure Tastatur verfügt nicht umsonst über zwei Shift-Tasten! Benutzt sie bitte, denn sonst ist es mir fast unmöglich euere Posts zu entziffern. Homepage: http://www.yamagi.org | Yamagi Quake II: http://www.yamagi.org/quake2
|
|
|
|
|
|
#2 |
|
Lion King Fan
Registrierungsdatum: May 2004
Ort: Pride Rock
Beiträge: 1.328
|
Ich finde das super, das du dich darum gekuemmert hast, aber ein zweites jail start script?
Mich hat das nicht vorhandene jail.conf start script schon lange genervt, darum habe ich eine Weiche in die /etc/rc.d/jail eingebaut, die nach der Existenz der /etc/jail.conf schaut und dann einen anderen code zweig ausfuehrt, der recht aehnlich zu deinem Code ist, aber ohne das ZFS Zeugs. ![]() Das ist zugegebenermassen nicht schoen, aber es erspart einem ein zweites Script mit dem Hinweis natuerlich, das wenn eine jail.conf existiert und diese nicht leer ist, das die halt verwendet wird und nur die Parameter jail_enable und jail_list interpretiert.
__________________
HP: Simba - The Lion King |
|
|
|
|
|
#3 |
|
Possessed With Psi Powers
|
Du hast natürlich recht. Ein um jail.conf erweitertes rc-Script hat es schon aus POLA-Gründen deutlich einfacher es ins Basissystem zu schaffen, als mein Script. Es ist ja mit vorhandenen Konfigurationen nicht mehr kompatibel. Aber ich gebe auch gern zu, dass ich mit das vorhandene Script und auch Martin Matuskas sysutils/jailrc angeschaut habe und beide sehr widerlich fand. Es ist viel Code, teilweise mit unnötig komplexen Konstrukten und so weiter. Für mehr als einen schnellen Hack wären dort erst einmal größere Aufräumarbeiten notwendig und dafür habe ich weder Zeit noch Lust. Ganz zu schweigen von meinem eher geringen sh-Mojo.
![]()
__________________
Eure Tastatur verfügt nicht umsonst über zwei Shift-Tasten! Benutzt sie bitte, denn sonst ist es mir fast unmöglich euere Posts zu entziffern. Homepage: http://www.yamagi.org | Yamagi Quake II: http://www.yamagi.org/quake2
Geändert von Yamagi (22.10.2012 um 07:04 Uhr). |
|
|
|
|
|
#4 |
|
Registered User
Registrierungsdatum: May 2005
Ort: Berlin
Beiträge: 351
|
Hi,
nur mal kurz zwischen gefragt. Warum wurde das überhaupt so angegangen? Es gibt doch den eigentlich perfekten Port "ezjail" dafür? Oder übersehe ich was? Danke und Grüße, Kai |
|
|
|
|
|
#5 | |
|
Lion King Fan
Registrierungsdatum: May 2004
Ort: Pride Rock
Beiträge: 1.328
|
Der ist aber nicht im Basissystem.
Vielleicht waere das aber wirklich mal eine Erwaegung wert. Zitat:
__________________
HP: Simba - The Lion King |
|
|
|
|
|
|
#6 |
|
Possessed With Psi Powers
|
Zu ezjail: Das ist halt eine philosophische Frage. ezjail ist ein wunderbares Tool, um große Mengen homogener Jails effizient managen zu können. Das möchte ich hier in diesem Einsatzkontext allerdings nicht. Ich will einfach ein paar heterogene Jails nach /usr/jails kippen und dort vergessen. Das soll mit so wenig Magie und Overhead wie möglich ablaufen, tatsächlich sind es sogar nur Minimal-Jails mit jeweils einem Prozess. Unter anderem daher dieses Script.
Ich würde mir ezjail nicht im Basissystem wünschen. Ja, es ist ein wunderbares Tool. Aber wir leben im Jahr 2012, wo ein System "out of the Box" nicht mehr Gott, die Welt und noch ein wenig mehr zufriedenstellen muss. Ich finde eher, dass man das Basissystem noch weiter verschlanken sollte und zu 10.0 einige große Brocken wir BIND und Sendmail rauswerfen und durch Minimalimplementierungen ersetzen. Wer denn das volle Paket will, kann es sich nachinstallieren. Dadurch gewinnen alle 3 Seiten: Das FreeBSD Projekt muss nicht ständig an Software rumpatchen, die nicht in den eigenen Release-Zyklus passt. Man denke nur an die ganze Menge SA zu den verschiedenen BIND-Komponenten, die daraus resultieren. Nutzer, die diese Software nutzen, haben aktuelle Versionen und können schneller aktualisieren, als die SA herausgegeben werden. Nutzer, die sie nicht nutzen, haben keinen Ärger mehr mit sinnlosen, potentiell anfälligen Komponenten. Ein ezjail im Basissystem heißt halt, dass es zwischen 9.0 und 9.1 nicht ein Update gegeben hätte. Von der POLA-Problematik bei größeren Sprüngen ganz zu schweigen. Zu /etc/rc.d/jail und der jail.conf: Die jail.conf ist aus Notwendigkeit zustande gekommen. Zu Beginn (mit FreeSBD 4.0) waren Jails 800 Zeilen C-Code und nicht mehr als ein weiterer Eintrag in der Prozesstabelle. Nachdem es bei 5.0 und 6.0 bei kleineren Verbesserungen geblieben war, kamen dann halt irgendwann im 7.x-Zyklus die "Multi-IP jails". Damit wurden wurden mehrere IP-Adressen, IPv6 und eigene Routing-Tabellen pro Jail möglich. Mit 8.0 kamen dann die "Jail2", mit einem wesentlich besseren Rechtemanagement, hierarchischen Jails jund so weiter. Schließlich noch die Jail-Integration einiger Dateisysteme. Der ganze vnet-Krempel ist dabei noch gar nicht erwähnt. All das trieb die Komplexität deutlich in die Höhe, weshalb James Gritton das neue jail(8)-Kommando schrieb, um den Kram elegant beherrschbar zu machen. Die jail.conf ist nun daraus gewachsen, dass es sich einfach anbietet, all diese tollen Optionen in einer zentralen Datei verwalten zu können. Das rc-Script könnte nun natürlich verschwinden und komplett durch die jail.conf ersetzt werden. Das ist schon verlockend, schließlich ist das Script schon sehr komplex (z.b. der in sh geschriebene fstab-Parser) und deckt nur einen Bruchteil der möglichen Optionen von jail(8) ab. Aber rc-Scripte sind halt so eine Sache. Man will / sollte niemanden etwas wegnehmen, weshalb man das aktuelle Script zwar modernisieren könnte, es aber halt alles vorhandene bis auf Weiteres weiterhin unterstützen muss. Dann führen rc-Scripte immer zu langen Diskussionen, bei denen es zwischen Entwicklern mit sh-Mojo und Entwicklern, die die Scripte schreiben, heftig zur Sache geht. Zuletzt ist da das Bootzeit-Argument, das uns schnell in den Bereich der mathematischen Statistik führt... Lange Rede, kurzer Sinn: James Gritton hat im Moment kaum Zeit, alle anderen aus genannten Gründen keinen Bock, weshalb es inzwischen mehrere alternative rc-Scripte für Jails in den Ports gibt, aber kein aktuelles im Basissystem. Ich hoffe / wünsche mir, dass es noch vor 10.0 damit was wird.
__________________
Eure Tastatur verfügt nicht umsonst über zwei Shift-Tasten! Benutzt sie bitte, denn sonst ist es mir fast unmöglich euere Posts zu entziffern. Homepage: http://www.yamagi.org | Yamagi Quake II: http://www.yamagi.org/quake2
|
|
|
|
|
|
#7 |
|
Lion King Fan
Registrierungsdatum: May 2004
Ort: Pride Rock
Beiträge: 1.328
|
So ganz nachvollziehen kann ich das immer noch nicht. Das Script muss ja keine eierlegende Wollmilchsau werden, sondern die meisten Nutzer wollen doch einfach nur die Jails beim Systemstart starten.
Ohne Garantie, Haftung usw. aber bei mir funktioniert diese Version gegen 9.1 RC-1 und ich hab auch nicht viel "sh Mojo": ^^ Code:
Andererseits ziehe ich auch eher ein schlankes Grundsystem vor, was sich aber auch so erreichen laesst. Man kann die Welt ja auch ohne BIND und Co. bauen.
__________________
HP: Simba - The Lion King |
|
|
|
|
|
#8 |
|
Registered User
Registrierungsdatum: May 2005
Ort: Berlin
Beiträge: 351
|
Hi,
nach dem Beispiel mit bind und sendmail hats Klick gemacht, danke für den Anstoß. Grüße, Kai |
|
|
|
|
|
#9 |
|
rm -rf /*
Registrierungsdatum: Jun 2008
Ort: Bremen
Beiträge: 1.078
|
Es fehlt in der Startfunktion gleich zu Anfang ein
Code:
|
|
|
|
|
|
#10 |
|
Possessed With Psi Powers
|
Danke, das war mir noch gar nicht aufgefallen.
![]()
__________________
Eure Tastatur verfügt nicht umsonst über zwei Shift-Tasten! Benutzt sie bitte, denn sonst ist es mir fast unmöglich euere Posts zu entziffern. Homepage: http://www.yamagi.org | Yamagi Quake II: http://www.yamagi.org/quake2
|
|
|
|
|
|
#11 |
|
Registered User
Registrierungsdatum: Feb 2005
Beiträge: 1.420
|
Ohne den thread jetzt hijacken zu wollen ;-) Aber da wir grad beim Thema sind:
Hatte auch mal ein script gebaut, was eine jail einfach installiert (wenn man es nicht ueber zfs snapshots macht) und diverse configs wie inner fstab, outer fstab jail rc.conf, etc automatisch anlegt und vorher ein paar sachen prueft. https://github.com/lockdoc/freebsd-t...create-jail.sh
__________________
https://github.com/lockdoc There would be less blood spilt in the battlefields if there were more sweat spent in the training hall. |
|
|
|
|
|
#12 | |
|
Possessed With Psi Powers
|
Zitat:
Code:
![]()
__________________
Eure Tastatur verfügt nicht umsonst über zwei Shift-Tasten! Benutzt sie bitte, denn sonst ist es mir fast unmöglich euere Posts zu entziffern. Homepage: http://www.yamagi.org | Yamagi Quake II: http://www.yamagi.org/quake2
|
|
|
|
|
![]() |
| Dieses Thema betrachten zurzeit 1 Personen. (0 registrierte Benutzer und 1 Gäste) | |
| Themen-Optionen | |
| Ansicht | Thema bewerten |
|
|
Ähnliche Themen
|
||||
| Thema | Erstellt von | Forum | Antworten | Letzter Beitrag |
| Fehler in meinem Backup Script | Crunk_Bass | FreeBSD - Anwendungen und Ports | 7 | 06.02.2010 21:34 |
| ppp.link script Problem und T-DSL | moxxito | FreeBSD - Netzwerk | 3 | 30.10.2003 00:04 |