qjailについてのTIPS
単発ネタが多いからまとめて投稿
随時更新します。
qjailでもVIMAGE vnetを使う方法
追記(07/10)
そのままではvnetを有効化できませんでした。
こちらの記事の内容で有効化できます。
vnetが動かないqjailを無理やり動かしてみる -
freebsd qjailでもvnetを有効化できます。
# qjail config -w em1 test01 Successfully enabled vnet.interface for test01
- wのあとにはインターネットに到達できる(もしくは予定)のインターフェイスを指定。
qjailでホストへのシンボリックリンクを貼る方法
ezjailではそのままflavours/defaultに、
ln -s /basejail/pkg /usr/jails/flavours/default/pkg
して、ezjail-admin createしても何のエラーもなく通してくれますが、
qjailのflavors/defaultに
ln -s /sharedfs/pkg /usr/jails/flavours/default/pkg
上記のようにシンボリックリンクを張ったあとqjail createすると、
# qjail create -f default -4 10.0.0.1 example Only in /usr/jails/flavors/example: pkg Error invalid directories in flavor default.
とエラーが出て作成ができません。
しかしシンボリックリンクを張らずに先にqjail createし、その後に
ln -s /sharedfs/pkg /usr/jails/example/pkg
と打てば普通にホスト側へのシンボリックリンクが貼れます。
qjailで一気に複数のjailを作成する方法
qjail create -f default -d [jailの数] -4 10.0.0.1 test
- dのあとに数値を入れればその数のjailを作ってくれます。
以下は例
# qjail create -f default -d 15 -4 10.0.0.1 test Warning: Existing jail test01 is already assigned IP address 10.0.0.1 Successfully created test-1 Successfully created test-2 Successfully created test-3 Successfully created test-4 Successfully created test-5 Successfully created test-6 Successfully created test-7 Successfully created test-8 Successfully created test-9 Successfully created test-10 Successfully created test-11 Successfully created test-12 Successfully created test-13 Successfully created test-14 Successfully created test-15
qjail delete -Aで全て削除できる
qjail start で全てのjailが動く
qjail stop で全てのjailが止まる
pingなどを有効化する
標準の状態では無効になっているのでpingが飛ばせません。
#jail -m name=test01 allow.raw_sockets=1
または、
#qjail config -k test01
netstatなどを有効化する
標準のdevfsでは/dev/memや/dev/kmemがないとnetstatなどルーティング系ができませんでした。
なのでdevfsに追加をします。
こちらの参考ページをどうぞ。
FreeBSD 9.1-STABLEでVIMAGEなJailを構築する | funi2.jp
jailのルールセットの変更は、
#jail -m name=test01 devfs_ruleset=5
上記でルールセットを5に変更できます。
しかしqjailでjailを作成したあとにjailコマンドで変更しても、実際は/devが変わっていないうえにjailを再起動すると4に戻ってしまいます。
その場合はやはりqjailのソースコードを書き換えるしかありません。
echo "devfs_ruleset = \"4\";"
↓
echo "devfs_ruleset = \"5\";"
qjail のオプションあれこれ
qjail update -pでportsのアップデート。