ユーザ用ツール

サイト用ツール


os:freebsd:jail

差分

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

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
os:freebsd:jail [2021/08/20 09:33] – [参考] hayashios:freebsd:jail [2025/04/13 09:43] (現在) – [jail.conf.d] hayashi
行 1: 行 1:
-====== jail+zfs ======+====== jail ======
  
-jailとzfsと組み合わせて、種になるjailを作成して、そのスナップショットをテンプレートにしてzfs cloneで作成します。\\ 
-設定周りのスクリプトがあればezjailとかなくても良いかも… 
- 
-===== 場所の確保 ===== 
- 
-  # zfs create -o mountpoint=/jail tank01/jail 
-  # zfs create tank01/jail/base 
  
 ===== 元となるjailの構築 ===== ===== 元となるjailの構築 =====
行 27: 行 20:
   # freebsd-update -b /jail/base -d /jail/base/var/db/freebsd-update install   # freebsd-update -b /jail/base -d /jail/base/var/db/freebsd-update install
  
-jail環境で +
-  # sysctl security.jail.param.allow.chflags=1 +
-とすることで、jail環境内でも freebsd-update を利用できる模様。((2014.05.07現在未確認))+
  
 ===== 設定 ===== ===== 設定 =====
 +==== jail.conf.d ====
 +
 +jail.conf を/etc/jail.conf.d/にブナ活できるようになったので対応した書き方を
 +共通部分は jail.conf で書きたいのだがどうもうまくいかない模様
 +
 +
 +
 +/etc/jail.conf
 +<code>
 +include        "/etc/jail.conf.d/*.conf";
 +</code>
 +
 +/etc/jail.conf.d/*
 +<code>
 +<jailname> {
 +  path             = "/jail/$name";
 +  host.hostname    = $name;
 +
 +  exec.start = "/bin/sh /etc/rc";
 +  exec.stop = "/bin/sh /etc/rc.shutdown jail";
 +  exec.clean;
 +  mount.devfs;
 +
 +  # options
 +  allow.chflags;
 +  allow.raw_sockets;
 +
 +  # FileSystem Mount
 +  # exec.prestart   += "mount_nullfs -o ro  /usr/ports/ /jail/${name}/usr/ports";
 +  exec.prestart   += "mount_nullfs        /var/cache/pkg/ /jail/${name}/var/cache/pkg";
 +
 +
 +  # Network
 +  ip4.addr += xn0|192.168.1.xx/24;
 +  ip4.addr += xn1|192.168.2.xx/24;
 +
 +  exec.poststop   += "ifconfig xn0 inet 192.168.1.xx -alias";
 +  exec.poststop   += "ifconfig xn1 inet 192.168.2.xx -alias";
 +
 +  # FileSystem Unmount
 +  # exec.poststop   += "umount /jail/${name}/usr/ports";
 +  exec.poststop   += "umount /jail/${name}/var/cache/pkg";
 +
 +  persist;             // Required because there are no processes
 +}
 +
 +</code>
 +
 +
 +==== jail.conf ====
  
 /etc/jail.conf /etc/jail.conf
行 69: 行 110:
 } }
 </code> </code>
 +==== rc.conf ====
 +
 /etc/rc.conf /etc/rc.conf
   jail_enable="YES"   jail_enable="YES"
行 77: 行 120:
 並列起動((起動に失敗するケースが有ったのでOFFにしてる)) 並列起動((起動に失敗するケースが有ったのでOFFにしてる))
   jail_parallel_start="YES"   jail_parallel_start="YES"
-===== スナップショット ===== 
- 
-  # zfs snapshot tank01/jail/base@10.0p1 
- 
-スナップショットの一覧 
-  # zfs list -t snapshot 
- 
-===== 新しい監獄をzfs cloneで作る ===== 
- 
-  # zfs clone tank01/jail/base@10.0p1 tank01/jail/NewJail 
- 
-/etc/jail.confを忘れないように 
  
 ===== 起動 ===== ===== 起動 =====
  
   # service jail start base   # service jail start base
- 
- 
  
 ===== 一覧 ===== ===== 一覧 =====
行 126: 行 155:
   #  pkg -j jail名|jailID info   #  pkg -j jail名|jailID info
  
-<del>ただし、先にjail内でpkgのインストールが必要です</del>((現在は不要。12.1で確認)) 
- 
-<del>  jail# pkg 
- 
-ちなみに、jail内でpkgコマンドを使う場合、updateもしておかないと、動かないので注意 
- 
-  jail# pkg update</del> 
  
 ===== Host側のディレクトリをマウント ===== ===== Host側のディレクトリをマウント =====
行 171: 行 193:
 PACKAGES = /var/ports/packages PACKAGES = /var/ports/packages
 </file> </file>
 +==== 共有メモリは推奨されない ====
 +
 +**PostgreSQL**のように共有メモリを使用するものはJAILでの動作は推奨されない
 +[[http://www.jp.freebsd.org/QandA/HTML/1866.html]]((# sysctl -w security.jail.sysvipc_allowed=1))
 +
 +
 +----
 +
 ===== ListenポートとIPアドレスの調整 ===== ===== ListenポートとIPアドレスの調整 =====
 +
 +**ここら辺はもういらないかな**
  
 ホストとjailで別々のIPを振った場合、サーバソフトでもそれを意識した設定が必要\\ ホストとjailで別々のIPを振った場合、サーバソフトでもそれを意識した設定が必要\\
行 250: 行 282:
   maxgid 19999   maxgid 19999
  
 +===== 起動順 =====
 +/etc/rc.confのjail_listを記述することで起動準を指定できる
 +
 +  jail_list="jail1 jail2 jail3"
 +
 +===== 依存 =====
 +
 +他のjialに依存してる場合、/etc/jail.confで depend で指定する
 +
 +<code>
 +db64 {
 +        host.hostname = "db64.example.com";
 +        path = "/home/jails/db64";
 +        ip4.addr += "192.168.46.2/32";
 +        allow.raw_sockets = 0;
 +        mount.fstab = "/etc/fstab.db64";
 +        exec.consolelog = "/var/log/jail_db64_console.log";
 +}
 +
 +www64 {
 +        host.hostname = "www.example.com";
 +        path = "/home/jails/www64";
 +        ip4.addr += "192.168.46.4/32";
 +        allow.raw_sockets = 0;
 +        mount.fstab = "/etc/fstab.www64";
 +        exec.consolelog = "/var/log/jail_www64_console.log";
 +#       depend db,db64;
 +        depend db64;
 +}
 +</code>
  
 ===== Memo ===== ===== Memo =====
行 261: 行 323:
 ===== 参考 ===== ===== 参考 =====
   * [[https://people.allbsd.org/~hrs/FreeBSD/sato-FBSDW20200925-jail.pdf|復習 FreeBSD Jail]]   * [[https://people.allbsd.org/~hrs/FreeBSD/sato-FBSDW20200925-jail.pdf|復習 FreeBSD Jail]]
-  * [[http://journal.reallyenglish.com/2009/10/21/freebsd-jail-for-programmer-1.html|FreeBSD/Jailを使用したプログラマのための仮想環境]]+  * [[https://www.bsdstore.ru/en/13.0.x/wf_jconfig_ssi.html|CBSD jail config]] 
 +  * <del>[[http://journal.reallyenglish.com/2009/10/21/freebsd-jail-for-programmer-1.html|FreeBSD/Jailを使用したプログラマのための仮想環境]]</del>
   * [[http://bompopo.wordpress.com/2014/02/16/freebsd10-0r%E3%81%A7jail%E3%81%AE%E8%A8%AD%E5%AE%9A/|FreeBSD10.0Rでjailの設定]]   * [[http://bompopo.wordpress.com/2014/02/16/freebsd10-0r%E3%81%A7jail%E3%81%AE%E8%A8%AD%E5%AE%9A/|FreeBSD10.0Rでjailの設定]]
   * [[http://bompopo.wordpress.com/2014/02/17/%E4%B8%80%E6%AD%A9%E9%80%B2%E3%82%81%E3%81%9Fjail-conf%E3%81%AE%E6%9B%B8%E3%81%8D%E6%96%B9/|一歩進めたjail.confの書き方]]   * [[http://bompopo.wordpress.com/2014/02/17/%E4%B8%80%E6%AD%A9%E9%80%B2%E3%82%81%E3%81%9Fjail-conf%E3%81%AE%E6%9B%B8%E3%81%8D%E6%96%B9/|一歩進めたjail.confの書き方]]
   * [[http://blog.livedoor.jp/dankogai/archives/51916648.html|FreeBSD - Jailは仮想化ではなく半仮想化と呼ぶべきではないか]]   * [[http://blog.livedoor.jp/dankogai/archives/51916648.html|FreeBSD - Jailは仮想化ではなく半仮想化と呼ぶべきではないか]]
-  * [[http://rauq04.blogspot.jp/2012/03/freebsd-memo-qjail.html|qjail を使って簡易仮想環境作成]] +  * <del>[[http://rauq04.blogspot.jp/2012/03/freebsd-memo-qjail.html|qjail を使って簡易仮想環境作成]]</del> 
-  * [[http://www.bugbearr.jp/?FreeBSD%2FJail|FreeBSD/Jail]] +  * <del>[[http://www.bugbearr.jp/?FreeBSD%2FJail|FreeBSD/Jail]]</del> 
-  * [[http://d.zinrai.info/blog/html/2013/08/22/freebsd_jail_vimage_zfs.html|FreeBSD 9.1 VIMAGE + ZFS で Jail環境構築]]+  * <del>[[http://d.zinrai.info/blog/html/2013/08/22/freebsd_jail_vimage_zfs.html|FreeBSD 9.1 VIMAGE + ZFS で Jail環境構築]]</del>
   * [[http://gihyo.jp/admin/serial/01/bsd-yomoyama/0003|複数バージョンのFreeBSDをJailで共有させる方法]]   * [[http://gihyo.jp/admin/serial/01/bsd-yomoyama/0003|複数バージョンのFreeBSDをJailで共有させる方法]]
   * [[https://therub.org/2014/08/11/convert-freebsd-jails-from-rc.conf-to-jail.conf/|Convert FreeBSD 10 Jails from rc.conf to jail.conf]]   * [[https://therub.org/2014/08/11/convert-freebsd-jails-from-rc.conf-to-jail.conf/|Convert FreeBSD 10 Jails from rc.conf to jail.conf]]
   * [[https://gist.github.com/sdebnath/086874c5df8b68e0df69|FreeBSD Jails with VLAN HOWTO]]   * [[https://gist.github.com/sdebnath/086874c5df8b68e0df69|FreeBSD Jails with VLAN HOWTO]]
   * [[https://bastille.readthedocs.io/en/latest/chapters/jail-config.html|jail.conf]]   * [[https://bastille.readthedocs.io/en/latest/chapters/jail-config.html|jail.conf]]
-  * [[https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=233310|jails: Modularize configuration system (conf.d)]]+  * <del>[[https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=233310|jails: Modularize configuration system (conf.d)]]</del> 
 +  * [[https://qiita.com/dankogai/items/ffc4f31a8a949bd7ec01|ZFS - スナップショットいつやるか?今でしょ!]]
  
  
os/freebsd/jail.1629452037.txt.gz · 最終更新: 2021/08/20 09:33 by hayashi