hispanico.lxd
ansible-lxd
この役割は、リモートの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、frozentype:
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(デフォルト)
これらの変数の詳細は以下に記載されています:
- http://docs.ansible.com/ansible/latest/lxd_profile_module.html
- http://docs.ansible.com/ansible/latest/lxd_container_module.html
追加の変数:
cloud_init:
cloud-init設定(http://cloudinit.readthedocs.io/en/latest/index.html)
デフォルト値:
# 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
インストール
ansible-galaxy install hispanico.lxd
ライセンス
gpl-3.0
ダウンロード
357
所有者
@openwisp Contributor and @ninuxorg Member