件名の通り。
FreeBSDホストに格納してある写真、動画を各種メディアプレイヤー向けに公開したいが、オリジナルのホストを直接は公開したくないな、というときのため。
jailなら物理的に同じマシンを使いつつ、論理的には別マシンとして振る舞えるので適任である。

jailの作成

jailとくればezjailが定番だが、私はqjailが好き。
qjailについてはこちらを。

以下、qjail installまで終わっている前提で勧める。

flavorにssh-defaultを選んでplexという名前で作成。

$ sudo qjail create -f ssh-default -4 192.168.200.19 plex
Successfully created  plex
$ sudo qjail list

STA JID  NIC IP              Jailname
--- ---- --- --------------- --------------------------------------------------
DS  N/A  bge0 192.168.200.19     plex

jail plexをスタートし、pkgをインストール
インストールはとにかくpkgコマンドを叩けばOK。

$ sudo qjail start plex
Jail successfully started  plex
$ sudo qjail console plex
FreeBSD 10.2-RELEASE (GENERIC) #0 r286666: Wed Aug 12 15:26:37 UTC 2015

Welcome to your FreeBSD jail.
plex /root >
plex /root > pkg info
Bootstrapping pkg from pkg+http://pkg.FreeBSD.org/freebsd:10:x86:64/latest, please wait...
Verifying signature with trusted certificate pkg.freebsd.org.2013102301... done
[plex] Installing pkg-1.5.6...
[plex] Extracting pkg-1.5.6: 100%
Message for pkg-1.5.6:
If you are upgrading from the old package format, first run:

  # pkg2ng
(略)

plexmediaserverインストール

そのままplexmediaserverをインストール。
もちろん、マシンは64bitです。

plex /root >uname -a
FreeBSD plex 10.2-RELEASE FreeBSD 10.2-RELEASE #0 r286666: Wed Aug 12 15:26:37 UTC 2015     root@releng1.nyi.freebsd.org:/usr/obj/usr/src/sys/GENERIC  amd64
plex /root >pkg install plexmediaserver
(略)
The following 2 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
        plexmediaserver: 0.9.12.8.1362
        compat9x-amd64: 9.2.902000.201310
(略)
[plex] [1/2] Installing compat9x-amd64-9.2.902000.201310...
[plex] [1/2] Extracting compat9x-amd64-9.2.902000.201310: 100%
[plex] [2/2] Installing plexmediaserver-0.9.12.8.1362...
===> Creating users and/or groups.
Creating group 'plex' with gid '972'.
Creating user 'plex' with uid '972'.
[plex] [2/2] Extracting plexmediaserver-0.9.12.8.1362: 100%
Message for plexmediaserver-0.9.12.8.1362:
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

multimedia/plexmediaserver includes an RC script:
/usr/local/etc/rc.d/plexmediaserver

TO START PLEXMEDIASERVER ON BOOT:
sysrc plexmediaserver_enable=YES

START MANUALLY:
service plexmediaserver start

Once started, visit the following to configure:
http://localhost:32400/web

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
plex /root >

plexmediaserver起動

rc.confに一行加えてさっさと起動。

plex /root >sysrc plexmediaserver_enable=YES
plexmediaserver_enable:  -> YES
plex /root >service plexmediaserver start
Starting plexmediaserver.
plex /root >

ブラウザからhttp://<IPアドレス>:32400/webに繋ぐ。
もし「このサーバに権限(permission)がない」というようなことを言われたなら、以下のファイルを変更するといいかもしれない。
「かもしれない」というのは、以下の通り変更したら症状が改善したので、確認のために戻してみたら、二度と症状が再現しないから。
うーん…。

/usr/local/plexdata/Plex Media Server/Preferences.xml

Preferences (略)allowedNetworks="192.168.1.0/255.255.255.0"

いったんそのままにしておく。

plexmediaserver向けにディレクトリをマウント

jailから抜けてホスト側で作業
jailであるplexのファイルシステムは、ホスト側では/usr/jails/plexにある。
/usr/jails/plex/がjail plexのルートディレクトリ。
だからホストの/warehouseにデータがあるとして、/usr/jails/plex/mediaにマウントすれば、jail plexでは/mediaとして見える。

せっかくだからread onlyでね。

$ sudo mount_nullfs -o ro /warehouse /usr/jails/plex/media

jail plexから見えるのを確認したら、ホスト側のfstabに書き込み。

$ sudo sh -c "mount -p|grep /usr/jails/plex/media >> /etc/fstab"

あとはブラウザからplex media serverにつないで、メディアの追加で/mediaを選ぶだけ

以上