hispanico.lxd
ansible-lxd
此角色用于管理远程 LXD 服务器上的 LXD 配置文件和 LXD 容器。 访问链接:https://linuxcontainers.org/lxd/
要求
LXD 2.0 或更高版本必须安装在 LXD 主机和 ansible 服务器上(在 Ubuntu 16.04 上应已默认安装)
LXD 应已在远程主机上通过
sudo lxd init
设置为了让 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' 可以命名为你所需的任何名字,你需要在清单文件中引用它)
- 在 LXD 主机和 Ansible 主机上都经过测试,均使用 Ubuntu 16.04 LTS(可能适用于其他发行版)
角色变量
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 配置文件,并包含 cloud-init 选项以安装 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