2013/06/24(月)jail を make world
- 標準以外の場所に置いたソースから
- 標準以外の場所でビルドして
- jail を mergemaster する
ただし、これは make 変数ではなく環境変数なので make.conf や src.conf で指定してはいけない。微妙に変な事になるみたい。
普通に。
cd /data/src/stable/src sudo env MAKEOBJDIRPREFIX=/data/src/stable/obj make -j 8 buildworld sudo env MAKEOBJDIRPREFIX=/data/src/stable/obj make -j 8 kernel sudo env MAKEOBJDIRPREFIX=/data/src/stable/obj make installworldjail を。DESTDIRはmake変数。
sudo env MAKEOBJDIRPREFIX=/data/src/stable/src make installworld DESTDIR=/data/jail/jail0 sudo mergemaster -UPiF -D /data/jail/jail0 -t /data/jail/jail0/var/tmp/temproot -m /data/src/stable/src
2012/11/21(水)CGI実行のためのアカウント設定
- Suexec を使うならプライマリグループは無難なものにする
- wheel とか operator とかにしない
- ていうか、sudo が一般的な今、operator に所属するのは割と危険
- wheel とか operator とかにしない
- Suexec を使わないなら www に所属しておく、実行ファイルは chmod g+x しておく
2012/11/20(火)日常環境を jailed にした
- 3年に一度くらい、何かの拍子にシステム構築しなおす機会に出くわすんだけど、めんどくさい
- jail にしておけば、バックアップから何も考えずに書き戻せば使える
- /etc をバックアップしたいなぁ
- ファイルベースでの丸ごとバックアップだとリンクやら flag やらの情報が抜けかねないし、ファイル指定でのバックアップで抜けが出ても嫌だ。
- /etc を zfs パーティションにしたら簡単なんじゃないか?
- 生環境だと、/etc が起動パーティションにないと rc.conf とか fstab が読めないのでいちいちシングルユーザーに落ちる
- jail ならできる
- この jail 専用の zfs パーティションを用意して、子パーティションに全部入れる
- /etc,/usr/local/etc を別パーティションにする
- zfs jail でこのパーティションを jail にくれてやる
- バックアップの必要が無い、ports や src は別のパーティションに入れてもいい
VIMAGE が experimental じゃなくなったら手間なしで完了。
そして、jail.conf(5) や、zfs jail するタイミングをどうすればいいんだ、というねたに続く。
2012/11/20(火)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 の起動は、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 を理解するようになった。