hispanico.lxd

ansible-lxd

ビルドステータス Galaxy

この役割は、リモートのLXDサーバー上でLXDプロファイルとLXDコンテナを管理します。 https://linuxcontainers.org/lxd/

要件

  • LXD 2.0以上がLXDホストとAnsibleサーバーにインストールされている必要があります(Ubuntu 16.04ではデフォルトでインストールされているはずです)。

  • リモートホストでsudo lxd initを使用してLXDが設定されている必要があります。

  • AnsibleがリモートのLXDホストを管理するためには、以下のコマンドを事前に実行する必要があります:

リモートLXDホストで:

$ lxc config set core.https_address [::]:8443
$ lxc config set core.trust_password replace-this-with-a-secure-password

Ansibleホストで:

$ lxc config set core.https_address [::]:8443
$ lxc remote add lxd4 lxd4.example.com

(lxd4.example.comをあなたのLXDホストのホスト名に置き換えてください。'lxd4'は任意の名前にできますが、インベントリファイルでその名前を参照する必要があります。)

  • Ubuntu 16.04 LTSを使用したLXDホストとAnsibleホストでテストされています(他のディストリビューションでも動作する可能性があります)。

ロール変数

LXDプロファイル変数:

  • url: unix:/var/snap/lxd/common/lxd/unix.socket(デフォルト)
  • state: present(デフォルト)、absent

LXDコンテナの変数:

  • url: unix:/var/snap/lxd/common/lxd/unix.socket(デフォルト)
  • state: started(デフォルト)、stopped、restarted、absent、frozen
  • type: image(デフォルト)
  • mode: pull(デフォルト)
  • server: https://cloud-images.ubuntu.com/releases(デフォルト)
  • protocol: simplestreams(デフォルト)
  • alias: "16.04"(デフォルト)
  • architecture: x86_64(デフォルト)
  • wait_for_ipv4_addresses: true(デフォルト)
  • timeout: 600(デフォルト)

これらの変数の詳細は以下に記載されています:

追加の変数:

デフォルト値:

# LXDプロファイル
lxd_profiles:
  - name: default
    description: "デフォルトのLXDプロファイル"
    status: present

# LXDコンテナ
LXCs:
  - name: mycontainer
    mode: pull
    server: https://cloud-images.ubuntu.com/releases
    alias: "16.04"
    protocol: simplestreams
    architecture: x86_64
    profile: default
    status: started

依存関係

なし

以下の例では、クラウド初期化オプションでデフォルトのLXDプロファイルを設定し、Pythonパッケージをインストールし、Ansibleユーザーを構成してから、LXDサーバーに2つのコンテナをインストールします。

  - hosts: all
    roles:
      - ansible-lxd
    vars:
      lxd_profiles:
        - name: default
          description: "デフォルトのLXDプロファイル"
          storage_pool: default
          network: lxdbr0
          cloud_init: |
            #cloud-config
            packages:
              - python
            users:
              - name: ansible
                group: sudo
                shell: /bin/bash
                sudo: ALL=(ALL) NOPASSWD:ALL
                ssh_authorized_keys:
                  - {{ lookup('file', '$HOME/.ssh/id_rsa.pub' ) }}
          status: present

      LXCs:
        - name: MyContainer01
          mode: pull
          server: https://cloud-images.ubuntu.com/releases
          alias: "16.04"
          protocol: simplestreams
          architecture: x86_64
          disk_space: 50GB          # コンテナのディスク制限
          memory: 2GB               # コンテナのメモリ制限
          storage_pool: default
          network: lxdbr0
          ipv4address: 10.0.0.2     # lxdbr0サブネットに従った静的IPv4アドレス
          profile: default
          status: started

        - name: MyContainer02
          mode: pull
          server: https://cloud-images.ubuntu.com/releases
          alias: "16.04"
          protocol: simplestreams
          architecture: x86_64
          disk_space: 50GB          # コンテナのディスク制限
          memory: 2GB               # コンテナのメモリ制限
          nesting: "true"           # コンテナのsecurity.nestingを有効にする
          storage_pool: default
          network: lxdbr0
          ipv4address: 10.0.0.3     # lxdbr0サブネットに従った静的IPv4アドレス
          profile: default
          status: started

ライセンス

GPLv3ライセンスの下でライセンスされています。詳細はLICENSEファイルを参照してください。

著者情報

Hispanico

プロジェクトについて

Manage LXD Profile and LXD Containers

インストール
ansible-galaxy install hispanico.lxd
ライセンス
gpl-3.0
ダウンロード
357
所有者
@openwisp Contributor and @ninuxorg Member