memo:freebsd_jail

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
memo:freebsd_jail [2018-08-29 20:00]
Decomo
memo:freebsd_jail [2018-11-14 13:59]
Decomo 削除
行 149: 行 149:
 exec.stop  = "/bin/sh /etc/rc.shutdown"; exec.stop  = "/bin/sh /etc/rc.shutdown";
 exec.poststop += "umount /jail/${name}/var/ports/distfiles"; exec.poststop += "umount /jail/${name}/var/ports/distfiles";
-exec.poststop += "umount /jail/${name}/user/ports";+exec.poststop += "umount /jail/${name}/usr/ports";
  
 exec.clean; exec.clean;
行 162: 行 162:
 } }
 </code> </code>
- 
  
 portsの作業ディレクトリの設定 portsの作業ディレクトリの設定
行 171: 行 170:
 </code> </code>
  
 +make.confに作業ディレクトリの指定を追加。ついでに、Xなどの使わないであろう機能のビルドオプションをデフォルトオフにしておく。
 /jail/_seed/etc/make.conf /jail/_seed/etc/make.conf
 <code> <code>
行 176: 行 176:
 DISTDIR = /var/ports/distfiles/ DISTDIR = /var/ports/distfiles/
 PACKAGES = /var/ports/packages/ PACKAGES = /var/ports/packages/
 +
 +OPTIONS_UNSET=CUPS DEBUG DOCS FONTCONFIG NLS X11
 +WITHOUT_MODULES=sound ntfs linux
 +WITHOUT_X11=yes
 </code> </code>
  
行 193: 行 197:
 </code> </code>
  
-どのprisonerでもportmaster/pkgは使うことになると思うので、種に仕込んでおく。他に同様のパッケージがあれば、この段階でインストールしておいても良いだろう(bashとかemacsとか…)+どのprisonerでもportmaster/pkgは使うことになると思うので、種に仕込んでおく。
 <code> <code>
 # pkg # pkg
行 203: 行 207:
 </code> </code>
  
-prisoner間でUID, GIDが被らないように設定。+他に同様のパッケージがあれば、この段階でインストールしておくと便利。参考までに自分が仕込んだのは以下の通り:autoconf automake bash emacs-nox gmake m4 perl texinfo 
 + 
 +一応、hostとjailでUID, GIDが被らないように設定。といっても、システムが自動で作るユーザー/グループ(rootとかwwwとかmysqlとか)には無力だし、ユーザー追加時に手動でいくらでも好きな数値が指定できるので、あんまり神経質なっても仕方がないと思う。jail間の被りも避けたいなら、maxuid/maxgidも使っていい感じの値を設定してくだしあ
 <file conf /etc/pw.conf> <file conf /etc/pw.conf>
-minuid 65000 +minuid 30000 
-maxuid 65500 +mingid 30000
-mingid 65000 +
-maxgid 65500+
 </file> </file>
  
 +===== 種jailから本番jailを生やす =====
  
-$ service jail status +ZFSのスナップショット&クローンを活用すれば、一瞬で種jailから本番jail環境を複製する事ができる。 
- JID             IP Address      Hostname                      Path + 
- jseed20160605   133.242.169.85  jseed20160605                 /usr/home/jail/jseed20160605 +まずはスナップショットを作る。 
-jls +<code> 
-   JID  IP Address      Hostname                      Path +# zfs snapshot zdata/R/jail/_seed@20180831 
-     2  133.242.169.85  jseed20160605                 /usr/home/jail/jseed20160605 +</code> 
-      + 
-http://blog.fff.io/2011/07/freebsd_jail_1ip.html+スナップショットは読み込み専用なので、cloneしてFSを作る。 
 +<code> 
 +# zfs clone zdata/R/jail/_seed@20180831 zdata/R/jail/www 
 +</code> 
 + 
 +こんな感じで本番jail環境が出来上がる。 
 +<code> 
 +zfs list 
 +zfs list 
 +NAME                     USED  AVAIL  REFER  MOUNTPOINT 
 +zdata                   1.97G  36.5G    96K  legacy 
 +zdata/                1.96G  36.5G    96K  legacy 
 +zdata/R/home            5.19M  36.5G  5.19M  /usr/home 
 +zdata/R/jail            1.96G  36.5G   104K  /jail 
 +zdata/R/jail/_seed      1.20G  36.5G  1.20G  /jail/_seed 
 +zdata/R/jail/_share      773M  36.5G   773M  /jail/_share 
 +zdata/R/jail/www           8K  36.5G  1.20G  /jail/www 
 +</code>
  
 +あとは/etc/jail.confに作成したjailの記述を追加する。