2012/11/20(火)dns/bind99

dns/bind99 を使ってみる。
きっかけは、samba4 を試験環境に入れてみた際に、DLZ が有効で kerberos 関連のライブラリとリンクした bind が必要だったので。

REPLACE_BASE="YES" で入れれば楽なんだけど、mergemaster でグダグダ言われそうなので /usr/local に入ってもらう。
src.conf で WITHOUT_BIND="YES" を設定してから world を入れて、mergemaster まで済ませてからのほうが混乱も少ないと思う。nslookup とか、リゾルバ関連のプログラムやライブラリも bind が提供してるので、2つ入ってると色々面倒が起きそう。

/usr/local/etc/rc.d 以下には起動スクリプトがない。
/etc/rc.d/named から起動しようとすると色々と文句を言われる。

rc.conf に下記を追加。
named_program="/usr/local/sbin/named"
rc スクリプトはこのパラメータから /usr/local を切り出して、このパスを基準に後の事は調整してくれるようだ。


いつからかはわからないけど、jail 環境でも chroot できるようになってた。security.jail.mount_devfs_allowed とかがその調整のために出て来たのかな。
prefix がバイナリに埋め込まれてるようなので、$chrootdir/usr/local 以下におく必要があるファイルがあるけど、mtree ではそこまで考慮してくれてないっぽい。

2012/11/19(月)FreeBSD 9.1 に jail.conf(5) が現れた

jail.conf(5) が追加された。
jail の起動は、rc.d/jail を使うかコマンドラインオプションを指定するかだったけれど、jail.conf に設定をまとめることで、コマンドラインでは jail name だけ指定すれば保存されたオプションで jail が起動してくれる。

vnet jail の設定も保存しておけるので操作がかなり簡単になったし、rc.conf に記述するよりもスマートだ。

でも、exec.prestart と exec.start の間に任意の操作を行うインタフェースはないようだ。
zfs jail $jailname $zfs をしたければ、
  • jail -c $jailname persist
  • zfs jail $jailname $zfs
  • jexec $jailname sh /etc/rc
とするしかない。

zfs jail が $jid じゃなくて $jailname を理解してくれるとうれしい。

追記: 9.2では zfs jail が $jailname を理解するようになった。