ahnooie.lxd-container

LXDコンテナAnsibleロール

このロールは、リモートLinuxコンテナホスト上のLXD/LXCコンテナを管理します。 https://www.ubuntu.com/containers/lxd

ビルドステータス

要件

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

  • リモートホストでsudo lxd initを使用するか、juju4/lxdのようなAnsibleロールを使ってLXDが設定されている必要があります。

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

リモートLXDホストで:

$ lxc config set core.https_address [::]:8443
$ lxc config set core.trust_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ホストでテストされています(他のディストリビューションでも動作する可能性があります)。

ロール変数

これらの変数はここで文書化されています:http://docs.ansible.com/ansible/latest/lxd_container_module.html

  • state: started(デフォルト)、stopped、restarted、absent、frozen
  • type: image(デフォルト)
  • mode: pull(デフォルト)
  • server: https://images.linuxcontainers.org(デフォルト)
  • protocol: lxd(デフォルト)
  • alias: ubuntu/xenial/amd64(デフォルト)
  • wait_for_ipv4_addresses: true(デフォルト)
  • timeout: 600(デフォルト)

追加の変数:

  • public_key: "{{ lookup('file','~/.ssh/id_rsa.pub') }}"(デフォルト) - コンテナにインストールする公開sshキーのパス
  • enable_ssh: true(デフォルト) - コンテナ内にopensshサーバーをインストールし、有効にします。
  • lxd_host: あなたのLXDコンテナホスト

依存関係

なし

インストール

$ ansible-galaxy install ahnooie.lxd-container

以下の例では、lxd4.example.com LXDホストにさまざまなLinuxディストリビューションの6つのコンテナをインストールし、それぞれのホストにPythonをインストールし、rootユーザーのために公開sshキーを追加し、sshdサービスをインストールして開始します。

インベントリファイルの例

# リモートLXDホスト
[lxd]
lxd4.example.com ansible_user=root

# LXDホスト上のコンテナ
[linux-containers]
ubuntu01.example.com ansible_host=lxd4:ubuntu01 alias=ubuntu/xenial/amd64
centos01.example.com ansible_host=lxd4:centos01 alias=centos/7/amd64
centos02.example.com ansible_host=lxd4:centos02 alias=centos/6/amd64
debian01.example.com ansible_host=lxd4:debian01 alias=debian/stretch/amd64
fedora01.example.com ansible_host=lxd4:fedora01 alias=fedora/27/amd64

[linux-containers:vars]
ansible_connection=lxd
lxd_host=lxd4.example.com

プレイブックの例 containers.yml

---
- hosts: linux-containers
  gather_facts: false
  vars:
    public_key: "{{ lookup('file','public_keys/id_rsa.pub') }}"
  roles:
  - ahnooie.lxd-container

プレイブックコマンドの例

$ ansible-playbook -i inventory containers.yml

ライセンス

MIT

作成者情報

Benjamin Bryan によって作成されました。

プロジェクトについて

Manage LXD Containers

インストール
ansible-galaxy install ahnooie.lxd-container
ライセンス
mit
ダウンロード
206
所有者