Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Iocage

1,479 views

Published on

How to use iocage

Published in: Software
  • Be the first to comment

Iocage

  1. 1. iocage を使ってみよう 2018 年7月 26 日 (株)創夢 内藤 祐一郎
  2. 2. iocage とは ● FreeBSD の上で jail を管理するためのツール ● 役割としては ezjail などと同じ ● 開発元は FreeNAS チーム ➔ FreeNAS に入っているものが ports に登録さ れています ● 現在も github で開発中です ➔ BSDCan 2018 でも発表がありました
  3. 3. iocage を使うには ● ZFS が必要です – ZFS を前提にその機能をたくさん使っています ● 実装は Python3.6 のため 以下のパッケージをインストールします – py36-iocage ● インストールしたら次のコマンドで初期化します – sudo iocage activate <pool 名 > – ( 以後 iocage の実行には全て root 権限が必要です )
  4. 4. iocage のデータ領域 ● activate すると <pool 名 >/iocage というファイルシステムが作成されます ● これは /iocage にマウントされます ● この /iocage の中には以下のファイルシステムが作られます 1.download ( リリース毎のアーカイブ base.txz などを保存 ) 2.images (import/export 用の zip ファイル ) 3.jails ( 各 jail のルートファイルシステム ) 4.log (iocage の動作ログ ) 5.releases ( リリース毎のルートファイルシステム ) 6.templates ( 各テンプレートのルートファイルシステム )
  5. 5. jail の作成 ● iocage create -n <jail 名 > -r < リリース名 > – 例 : iocage create -n test10 -r 10.4-RELEASE – < リリース名 > のアーカイブをダウンロードし、 展開した上で freebsd-update で最新のパッチを当て、 スナップショットを作成して、そのクローンから <jail 名 > の jail を作成します – 2回目以降はディスク内のデータが再利用されます
  6. 6. jail の作成(その2) ● iocage create -n <jail 名 > -r < リリース名 > -c < 個数 > – <jail 名 >_1 から <jail 名 >_< 個数 > までの jail を作成しま す – 例 : iocage create -n test -r 10.4-RELEASE -c 5 ➔ test_1, test_2, test_3, test_4, test_5 が作成されます ● iocage create -n <jail 名 > -t < テンプレート名 > – テンプレート(後述)から jail を作成します – -c も同様に使用できます
  7. 7. jail の一覧と削除 ● iocage list – 作成した jail を一覧表示します ● iocage destroy <jail 名 > [-f] – 作成した jail を削除します – -f をつけると何も聞かれずに強制削除します
  8. 8. jail の起動・コマンド実行・終了 ● iocage start <jail 名 > – jail を起動します ● iocage console <jail 名 > – jexec を実行します (root ユーザで /bin/sh が起動します ) ● iocage exec [-U <jail 内のユーザ名 >] <jail 名 > < コマンド > – 指定したコマンドを [ 指定のユーザで ] 実行します ● iocage stop <jail 名 > – jail を終了します
  9. 9. jail の自動起動 ● iocage set boot=on <jail 名 > – <jai 名 > のプロパティにブートするようマー クします ● sysrc iocage_enable=YES – rc スクリプトを有効にします – 先ほどの boot プロパティが on の jail を rc スク リプトが起動・終了します – /etc/jail.conf は使用しません
  10. 10. ネットワーク ● IPv4 アドレスの設定 – iocage set ip4=new <jail 名 > – iocage set ip4_addr="em0|192.168.0.99/24" <jail 名 > – iocage set defaultrouter=192.168.0.1 <jail 名 > – iocage set allow_raw_sockets=1 <jail 名 > ➔ ping を使えるように ➔ IP アドレス、インタフェース名は適当に読み替 えてください
  11. 11. ネットワーク ● IPv6 アドレスの設定 – iocage set ip6=new <jail 名 > – iocage set ip6_addr="em0|2001:0:1:2::f0f0" <jail 名 > – iocage set defaultrouter6="fe80::1%em0" <jail 名 > ➔ IP アドレス、インタフェース名は適当に読み替 えてください
  12. 12. ネットワーク ● ホストの設定を引き継ぐ場合 – iocage set ip4=inherit <jail 名 > – iocage set ip6=inherit <jail 名 >
  13. 13. ネットワーク ● 複数のインタフェースを使用する場合はカンマ区切りで複数記 述します – 例 :”em0|192.168.0.99/24,em1|192.168.3.99/24” ● vImage も利用可能ですが、 まだリリースされていないので割愛します
  14. 14. ディスクのマウント ● jail 起動時にマウントするディスクを指定できます ● iocage fstab <jail 名 > -a ”/home/user_a /usr/home/user_a nullfs rw 0 0” ➔ホストの /home/user_a のディレクトリを jail 内の /usr/home/user_a に マウントしてから起動します ➔ jail 側のプレフィックス (/iocage/jails/<jail 名 >/root) は不要です ➔エントリは iocage fstab <jail 名 > -l で表示されます ➔ iocage fstab <jail 名 > -r < 行番号 > でエントリを削除します
  15. 15. スナップショット ● iocage snapshot <jail 名 > -n < スナップショット名 > – 省略時のスナップショット名は YYYY-MM- DD_hh:mm:ss – 日時のタイムゾーンは UTC です ● iocage snaplist <jail 名 > -l – スナップショットの一覧表示(今はバグで -l が必 須) ● iocage rollback <jail 名 > -n < スナップショット名 > – 該当スナップショットにロールバック ● iocage snapremove <jail 名 > -n < スナップショット名 > – スナップショットの削除
  16. 16. クローン ● iocage clone <jail 名 > -n < 新しい jail 名 > – <jail 名 >@< 新しい jail 名 > でスナップショッ トを作成し、 zfs clone します – 今のところスナップショットからのクローン はサポートされていません
  17. 17. テンプレート ● iocage set template=yes <jail 名 > – 既にある jail をテンプレートにします – テンプレートは起動することができません – iocage list にも表示されなくなります – 一覧は iocage list -t と -t オプションを指定します ● iocage set template=no <jail 名 > – テンプレートから戻します – 他 jail のテンプレートとして使われていても構いません
  18. 18. エクスポート ● iocage export <jail 名 > – iocage/images/<jail 名 >_YYYY-MM-DD.zip に書き 出します – zip ファイルの中身は 設定の json ファイルと zfs send したファイルシステムのイメージで す – sha256 のチェックサムを書いたファイルも作 成されます
  19. 19. インポート ● iocage import <jail 名 >_YYYY-MM-DD – iocage/images/<jail 名 >_YYYY-MM-DD.zip をインポートします – 設定ファイルから jail 名を復元しインポートします – ファイル名は iocage/jails の下のファイルシステム名に使われ ます – ファイル名を変えて import するとファイルシステム名が重 ならない限りインポートできますが、同じ jail 名のホストが 複数できるため管理が面倒です
  20. 20. アップデート・アップグレード ● iocage update <jail 名 > – freebsd-update を実行します ● iocage upgrade <jail 名 > -r < リリース名 > – freebsd-update upgrade を実行します – -r 11.2-RELEASE などを指定します
  21. 21. 小ネタ ● 作成した jail を SeverSpec でテストするには・・・ – spec ファイルに以下を記載します ➢ set :backend, :jexec ➢ set :jail_name, ioc-<jail 名 > ● iocage で作成した jail の name は必ず ioc- が入るた め、 ServerSpec 側には ioc- を付けた名前を指定します ● その他は既存の spec ファイルがそのまま利用可能です
  22. 22. 最後に ● jail の作成に関する機能を一通り紹介ました ● まだ紹介していない機能もありますので man iocage などを参照してください ● github にある README.mdも参考になります

×