Skip to content


FreeBSD 10.0でVIMAGEなjail(手抜き編)

FreeBSDでjailと言えばezjailと言う位の定番ですが相変わらずVIMAGEとの相性が良くありません。
そうこうしている間に標準コマンドがかなり高機能 & 使いやすくなっていますので、この際こちらに切り替えて、しかしアップデートとか面倒くさいので手抜き出来るところは手抜きでというコンセプト。
Cheerfull daysサーバいじくり雑記あたりを参考にさせて頂きました。

なお、FreeBSD 10.2以降ではbhyveを使った仮想化がお手軽になっているので、リソースが厳しくてjailでないと困るという様な理由が無ければそちらがおすすめ。

(1) VIMAGE optionを生かしたカーネル再構築。
相変わらずVIMAGEが有効になっていない様です。
ということで、定番の書き換え。

再起動でカーネルが書き換わっていたらOK。

カーネル再構築などの詳しい話はFreeBSD ハンドブック 第18章 FreeBSD のアップデートとアップグレードを参照。


(2) ezjailのインストール
pkgでサクっと。

(3) ezjail環境の構築
/usr/local/etc/ezjail.confでjailルートとzfsの設定を変更。
パス等は適宜変更のこと。

終わったらezjailベース環境のインストール。

(4) jailの作成
とりあえず今回は”web”という名のjailを作ってみます。
アドレスとかは適当で。

(5) 仮想スイッチとかその辺の設定
vnetでI/Fで使う仮想スイッチとか使うので/etc/rc.confに以下を追加。

em0は使用したいネットワークを指定。
終わったら有効化するためにshutdown -rで再起動。

(6) devfs.rulesの作成
jail環境用のdevfs.rulesを作成し切り替えて使用する事でjail環境毎に制御ができる。
defaults/devfs.rulesにサンプルがあるので、とりあえずこれをコピーし、必要であればrulesetを追加する形で修正するのが一番簡単。

(7) /etc/jail.confの作成
以前は/etc/rc.confにjail_<jail名>_…の様にずらずらと書く必要があって非常に管理しにくかったですけど、最近はvnet対応も進みjail.confが使えるので非常に楽。

見れば何となく判ると思うので特に説明は不要でしょうが、24~28行あたりを書き換えればOKの筈。
jail.confには他にもいろいろオプションがありますので、そのあたりはman jail.confして見て下さい。
新しいjailの設定を追加する際は、24~29行を後ろにコピーした後、最低限$ifを1つカウントアップし$ipaddrにアドレスを設定すればOK。

(8) jailの起動
こんな感じで。

ついでにjailの停止方法。

jailを停止すると生えていた(?) epairXa/bの後始末も動きます。

(9) スタートアップ時からjailを立ち上げる設定
動作が確認出来たところで/etc/rc.confに追加しておく。

一旦ここまで出来てしまえば、新しいjailを追加作業は(4)と(7)の追加作業、そして起動時から立ち上げたい場合には(9)のjail_listにjail名を追加するだけですぐ出来ます。
portsのアップデートなどは従来通りezjail-admin update -Pとかがそのまま使えますし、個々の設定も/usr/local/etc/ezjail/jail名ファイルを修正するより楽ですね。

2015-04-17追記: ezjailで作成したjailのupdate
host環境をアップデートした場合、jailも上げる必要がありますがついつい書き忘れている事が多いのでメモ。

まずはjailを停止して、fulljailとbasejailのアップデート

続けて環境ファイルのアップデート

最後にjailを再開して動作確認し終了。

Posted in FreeBSD.

Tagged with , .


0 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.



Some HTML is OK

or, reply to this post via trackback.