criecm.iocage

iocage

iocageホストのインストール/設定とjailのインストール FreeBSD上で (このままではFreeNASでは動作しません。パッチ大歓迎です;)

iocage Ansibleモジュールを使用しています。 https://github.com/fractalcells/ansible-iocage (ロールのライブラリ/に組み込まれています)

作成したホストをインベントリに追加します(add_hostiocage_host変数で ホストのinventory_hostnameiojailsグループが設定されます。

ロール変数

(defaults/main.yml内)

  • iocage_zpool (zroot): iocage用のZFSプール

  • iocage_fetch_args ({}): iocage fetchに渡す引数 例: "-s ftp.local -d pub/FreeBSD/releases"

  • jail_list ([]) ホスト上で作成するjailの辞書のリスト、以下を参照

  • myjail ('') 定義されている場合、jail_listからこのjailのみを実行(見つからなければなし)

  • myjails([]) myjailと同じですが、複数指定可能 :)

  • iocage_components (none) - リスト 定義されている場合、これらのコンポーネントのみをインストール

  • iocage_enable_ssh (True) 新しいjailでSSHを有効にする

  • iocage_release (uname -r) 必要なリリース

  • jail_init_role () 新しいjailを初期化するためにインポートされるロール

  • iocage_use_pkg (True) パッケージからiocageをインストールするか、Falseの場合はgitからインストール

Jailごとの変数

(vars/jail.yml内)

  • name(デフォルトなし、必須): ヒューマンアイデンティファイア、ホスト内でユニーク

  • hostname(''): 空の場合は生成されたUUID

  • ip4(''): IPv4アドレス、iocageと同じ形式: [ifaceN|]192.0.2.1[/24][,[ifaceN|]192.0.2.1[/24][,…]]

    • 'iface|'が前に付いている場合、IPはjail起動時にインターフェースに追加されます
    • マスクが指定されていない場合、IPは/32に設定されます
  • ip6( ''): IPv6… 上記と同じ(ただしデフォルトマスクは/128です)

  • resolver('auto'): jailのためのresolv.confの内容、改行の代わりに';'を使用 (空の場合、iocageはホストのものをjail起動時にコピーします)

  • properties({}): iocage jailの利用可能な任意のプロパティ用の辞書

  • authkeys (/root/.ssh/authorized_keys) jail内の/root/.ssh/authorized_keysにコピーするファイル

resolver=autoのロジック

resolversearch_domainsresolvers変数に基づいて自動的に設定されます (ここにはgroup_vars/all.ymlにあります)。これにより、jailのIPアドレスに応じて検索ドメインとリゾルバが選択されます。

# ipが'network'内にある場合は'domain'が追加されます
search_domains:
  - { network: '192.0.2.0/24', domain: 'our.example.net' }
  - { network: '198.51.100.0/24', domain: 'ryd.example.org' }
  - { network: '2001:0DB8:fe43::/32', domain: 'ipv6.example.org' }
  - { network: '0.0.0.0/0', domain: 'example.com' }

# ipが'network'内にある場合は'ip'がresolversに追加されます
resolvers:
  - { network: '192.0.2.0/24', ip: 192.0.2.1 }
  - { network: '198.51.100.0/24', ip: 192.0.2.1 }
  - { network: '2001:0DB8:fe43::/56', ip: 2001:0DB8::1 }
  - { network: '0.0.0.0/0', ip: 8.8.8.8 }
  - { network: '::/0', ip: 2620:0:ccc::2 }

例のプレイブック:

2つのjailを持つjailhost:

- hosts: realmachine
  roles:
    - criecm.iocage
  vars:
    jail_list:
      - { name: myfirstjail, hostname: myfirstjail.example.org, ip4_addr: 'bge0|198.51.100.0' }
      - { name: mysecjail, hostname: mysecjail.example.org, ip4_addr: 'bge0|198.51.100.8' }

作業を始める前にjailを作成/登録するためのプレイブックのスニペット

- hosts: realmachine
  roles:
    - criecm.iocage
  vars:
    # ここでjail_listはinventory/host_vars/realmachine.ymlにあることができます
    myjail: myfirstjail

- hosts: myfirstjail
  roles:
    - criecm.apache
  […]

ansible-iocageモジュール

ソースから更新:

git subtree pull -P roles/criecm.iocage/library/src/iocage https://github.com/criecm/ansible-iocage.git master

プロジェクトについて

iocage jail management for FreeBSD

インストール
ansible-galaxy install criecm.iocage
ライセンス
Unknown
ダウンロード
187
所有者
Direction des Systèmes d'Information