FreeBSD 6.0, Dienste in einer jail starten nicht automatisch

Ice

Well-Known Member
Hi Leute,

ich bin gerade mal wieder dabei einen neuen Server auf FreeBSD 6.0 aufzusetzen und stehe dabei grad wohl etwas auf der Leitung, denn ich schaffe es nicht meine Dienste in den Jails automatisch starten zu lassen.
nehmen wir z.B. den Webserver:

Auf dem host in /etc/rc.conf
Code:
jail_web_rootdir="/jail/web"
jail_web_hostname="web.domain.tld"
jail_web_ip="xxx.xxx.xxx.xxx"
jail_web_exec="/bin/sh /etc/rc"
jail_web_devfs_enable="YES"
In der Jail in /etc/rc.conf
Code:
apache_enable="YES"
apache_flags="-DSSL"
apache_pidfile="/var/run/httpd.pid"
Ich kann den apache in der Jail auch manuell via
Code:
/usr/local/etc/rc.d/apache.sh start
wunderbar starten.

Helft mir mal auf die Sprünge: Was könnte ich übersehen haben?

Es geht mir übrigens mit mehreren Diensten in verschiedenen Jails so. Um genau zu sein mit ALLEN zusätzlich installierten.

Thx,

Ice
 
Zuletzt bearbeitet:
Du hast in der rc.conf jail_web_exec="/bin/sh /etc/rc" gesetzt.
Was wohl laut Doku auch richtig ist, ich setze immer:

jail_xxx_exec_start="/bin/sh /etc/rc"
jail_xxx_exec_stop="/bin/sh /etc/rc.shutdown"

Ich stosse über den Unterschied gerade das erste mal, ein Versuch ist es vielleicht wert.
Um welchen Apache Version geht es?

Gruß paefchen
 
@paefchen

Danke für Deine Antwort.
Ich habe Deine Einträge spaßhalber mal ausprobiert, aber leider ändert das nichts.

@all

Die Apache-Version dürfte ziemlich unerheblich sein, da alle nachtraeglich installierten Dienste betroffen sind. Und das auch in verschiedenen jails.
Ich habe langsam den Verdacht, dass da beim Bau der Jails etwas schiefgelaufen sein muss. Ich versuche jetzt nochmal auf einem anderen 6.0er System eine jail mit komplett unmodifizierter make.conf zu erstellen und werde dann dort mal testen, wie es sich verhält.

Falls noch jemand eine Idee hat, woran es liegen könnte, bin ich für jeden Hinweis sehr dankbar.
Hat sich vielleicht in 6.0 mit den jails irgendetwas verändert, was ich übersehen habe? Sind nämlich die ersten jails, die ich unter 6.0 erstellt habe.

Gruß,

Ice
 
Ice schrieb:
... Die Apache-Version dürfte ziemlich unerheblich sein, da alle nachtraeglich installierten Dienste betroffen sind. Und das auch in verschiedenen jails...

Natürlich, ich habe nur schon des öfteren erlebt das ein apache2 mit apache_enable="YES" gestartet werden sollte, was ja nur schief gehen kann, daher meine Frage, aber wenn alles andere auch betroffen ist brauchen wir gar nicht weiter drüber reden ;)
 
mal ne Blöde Frage, läuft denn der sshd im jail? Weil der sollte doch auch durchs rc gestartet werden..

ich gehe mal davon aus das Du die jail auch per /etc/rc.d/jail startest, Gell?!

Mal alle Logs im Jail abgeklappert? Nicht das den Diensten zu dem Zeit einfach nur irgend was fehlt oder hast Du vielleicht das Jail vielleicht zu gut auf(aus)geräumt?

Gruß,
paefchen
 
Der sshd wird gestartet und läuft. Die jails werden via /etc/rc.d/jail gestartet. Ich konnte in den logs keinerlei Hinweise finden.
Ich habe auch den Verdacht, dass ich vielleicht etwas zuviel ausgeräumt haben könnte, obwohl ich das diesmal eigentlich auch nicht anders gemacht habe wie sonst schon zig mal unter 5.X.
Mal sehn, was der Test mit der neu erstellten Jail auf dem Zweitsystem bringt.

Ich habe inzwischen testweise auch mal
Code:
local_startup="/usr/local/etc/rc.d"
zur /etc/rc.conf in der Jail hinzugefuegt. Hat aber auch nix gebracht.
 
Zuletzt bearbeitet:
Ich habe jetzt sowohl auf dem Server wie auch auf einem 2ten Testsystem mit 6.0 eine Test-Jail ohne modifizierte make.conf erstellt und habe auch die Jail nicht ausgeräumt.
Ein installierter Postfix startet in keiner der Jails automatisch, obwohl die entsprechenden Einträge in der /etc/rc.conf vorhanden sind.

Kann das evtl. was mit rcNG zu tun haben? Kann es mit diesem Eintrag in der /usr/src/UPDATING zu tun haben
Code:
20051220:
        Scripts in the local_startup directories (as defined in
        /etc/defaults/rc.conf) that have the new rc.d semantics will
        now be run as part of the base system rcorder. If there are
        errors or problems with one of these local scripts, it could
        cause boot problems. If you encounter such problems, boot in
        single user mode, remove that script from the */rc.d directory.
        Please report the problem to the port's maintainer, and the
        freebsd-ports@freebsd.org mailing list.
????

Hat hier jemand Jails unter FreeBSD6.0 laufen und kann was dazu sagen?

Thx,

Ice
 
Ice schrieb:
Hat hier jemand Jails unter FreeBSD6.0 laufen und kann was dazu sagen?

Öhm ja, *Handhochalt*. Leider ist es kein "frisches" 6.0-System, da es von 5.4 auf 6.0-Stable am 25.11.2005 upgedatet wurde. Ich konnte aber keine Unregelmässigkeiten beim Starten von Diensten z.B. Apache 2 feststellen :eek:

Ob Dein Problem was mit dem rcNG zu tun hat kann ich nicht verifizieren, da wie gesagt bei mir nicht die gleiche Ausgangslage wie bei Dir vorherrscht.

Sorry, wenn ich nichts zur Lösung Deines Problems beitragen konnte.

Greets, s_e
 
Also ich werd langsam verrückt. Ich habe jetzt nochmal zu Testzwecken ein komplett neues System aufgesetzt. Ich beschreibe jetzt mal exakt die Schritte, die ich ab der Grundinstallation vorgenommen habe. Vielleicht fällt ja jemandem ein Fehler auf, denn ich weiß echt nicht mehr weiter.

Direkt nach der Installation:
Code:
pkg_add -r cvsup-without-gui
rehash
cp /usr/share/examples/cvsup/stable-supfile .
vi stable-supfile
(Eintrag cvsup3.de.FreeBSD.org)
cvsup -g -L 2 stable-supfile
cd /usr/src
mkdir -p /jail/test
make world DESTDIR=/jail/test
make installworld DESTDIR=/jail/test
cd etc
make distribution DESTDIR=/jail/test
cd /jail/test
ln -sf /dev/null kernel
mkdir /jail/test/usr/ports
ifconfig em0 alias 192.168.1.2 netmask 255.255.255.255 up
jail /jail/test test 192.168.1.2 /bin/sh
Nun in der Jail
Code:
touch /etc/fstab
vi /etc/rc.conf

hostname="test.domain.de"
portmap_enable="NO"
inetd_enable="NO"
network_interfaces=""
keyrate="fast"
keymap="german.iso"
syslogd_enable="YES"
syslogd_program="/usr/sbin/syslogd"
syslogd_flags="-ss"
sshd_enable="YES"
sshd_flags="-4"
sendmail_enable="NO"
scrnmap="NO"
keymap="german.iso"

vi /etc/ssh/sshd_config

ListenAddress 192.168.1.2
PermitRootLogin yes

/etc/rc.d/sshd start
cd /etc
newaliases
echo "nameserver 192.168.1.1">/etc/resolv.conf
passwd root
exit
Nun die Einträge in die rc.conf des hosts
Code:
defaultrouter="192.168.1.1"
hostname="host.domain.de"
ifconfig_em0="inet 192.168.1.3 netmask 255.255.255.0"
ifconfig_em0_alias0="inet 192.168.1.2 netmask 255.255.255.255"
keymap="german.iso"
keyrate="fast"
saver="daemon"
sshd_enable="YES"
sshd_flags="-4"
usbd_enable="YES"
syslogd_enable="YES"
syslogd_flags="-ss"
sendmail_enable="NO"
jail_enable="YES"
jail_list="test"
jail_test_rootdir="/jail/test"
jail_test_hostname="test.domain.de"
jail_test_ip="192.168.1.2"
jail_test_exec_start="/bin/sh /etc/rc"
jail_test_exec_stop="/bin/sh /etc/rc.shutdown"
jail_test_devfs_enable="YES"
Anschließendes mounten der Ports in die jail und start der Jail
Code:
mount_nullfs /usr/ports /jail/test/usr/ports
/etc/rc.d/jail start test
In der Jail: Installation postfix und Anpassung der rc.conf
Code:
ssh root@192.168.1.2
cd /usr/ports/mail/postfix
make install clean
vi /etc/rc.conf

hostname="test.domain.de"
portmap_enable="NO"
inetd_enable="NO"
network_interfaces=""
keyrate="fast"
keymap="german.iso"
syslogd_enable="YES"
syslogd_program="/usr/sbin/syslogd"
syslogd_flags="-ss"
sshd_enable="YES"
sshd_flags="-4"
sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"
postfix_enable="YES"
scrnmap="NO"
keymap="german.iso"

Teststart postfix:
/usr/local/etc/rc.d/postfix start
"postfix/postfix-script: starting the Postfix mail system"

exit
Neustart der Jail
Code:
/etc/rc.d/jail stop test
/etc/rc.d/jail start test
Test:

ssh root@192.168.1.2
ps ax
Code:
  PID  TT  STAT      TIME COMMAND
  583  ??  SsJ    0:00.00 /usr/sbin/syslogd -ss
  637  ??  IsJ    0:00.00 /usr/sbin/sshd -4
  644  ??  SsJ    0:00.00 /usr/sbin/cron -s
  869  ??  SsJ    0:00.03 sshd: root@ttyp1 (sshd)
  872  p1  SsJ    0:00.01 -csh (csh)
 1001  p1  R+J    0:00.00 ps ax

Kein Postfix gestartet!!!! ;'(

Genauso verhält es sich mit allen Diensten, die ich nachträglich installiere.

Was könnte ich falsch gemacht haben???? Bitte helft mir!

Gruß,

Ice
 
Zuletzt bearbeitet:
Also es wird immer krasser:

Ich habe jetzt mal (wohl gemerkt auf dem 6.0er Basis-System) die Sourcen von Releng-5 gezogen, damit eine Jail gebaut, Postfix installiert und siehe da:
Postfix wird automatisch gestartet!
Also entweder bin ich echt total verblödet oder aber es gibt tatsächlich ein Problem mit den aktuellen Sourcen von Releng-6.

Ich habe mal einen Service im Hostsystem selbst installiert und der wird einwandfrei beim Systemstart mitgestartet. Es muss also mit der jail zusammenhängen.

Gruß,

Ice
 
Und wieder ein Schritt weiter:

Ich habe jetzt mal die 6.0 Sourcen vom 19.12.2005 ausgecheckt und siehe da: Es funzt!
Das Problem scheint also durch die Umstellungen der rc-Skripte ausgelöst worden zu sein.

Gruß,

Ice
 
Deine Entdeckung ist ja interessant. Sorry wenn ich Dir nicht weiterhelfen kann. Kannst Du das weiter verfolgen oder gar einen PR erstellen?

Vielleicht weiss unser "Jail-Guru" Axel ja mehr dazu.

Grüsse, s_e
 
Bin schon am überlegen einen PR zu stellen, da ich denke, dass das Problem in den Änderungen der rc-Skripte vom 20.12.2005 liegt. Hab das nur noch nie gemacht und möchte ungern ins Fettnäpfchen treten. Daher wäre es schön, wenn das jemand zuvor mal verifizieren könnte.

Ich bin jetzt gerade dabei eine meiner bestehenden jails mal auf den Stand vom 19.12.2005 downzugraden und bin mal gespannt, ob die bereits installierten Dienste dann gestartet werden.

Gruß,

Ice
 
So, das downgrade hat funktioniert und alle in der jail installierten Dienste werden jetzt ordnungsgemäß gestartet.
Ich bin jetzt 100% davon überzeugt, dass das Problem in der neuen /etc/rc liegt.

Gruß,

Ice
 
sorry ich nicht, denn ich habe heute ein 6er System noch mal ganz frisch über ftp installiert um das noch mal zu testen. Danach wold und kernel neu gebacken, jail gebaut, apach20 im jail installiert und über rc.d/jail das jail neugestartet. Apache wahr auch oben, also keine Probleme.

Gruß paefchen
 
@paefchen

Welchen Tag hast Du in cvsup benutzt?
Ich habe eben bemerkt, dass das Problem ausschließlich im RELENG_6 auftritt.
Mit RELENG_6_0 gibt es das Problem nicht.

Gruß,

Ice
 
Aha, dann haben wir ja auch endlich den entscheidenden Unterschied zwischen unseren Installationen gefunden. ;-)

Gruß,

Ice
 
Also postfix startet deshalb nicht automatisch, weil nun wohl man die rc.conf nun folgendes reinschreiben muss:
Code:
postfix_enable="YES"
postfix_pidfile="/var/spool/postfix/pid/master.pid" 
postfix_procname="/usr/local/libexec/postfix/master"

Zumindest steht das im startscript ;)
 
Zurück
Oben