ahnooie.lxd-container

LXD 容器 Ansible 角色

此角色用于管理远程 Linux 容器主机上的 LXD/LXC 容器。 https://www.ubuntu.com/containers/lxd

构建状态

需求

  • 在 LXD 主机和 Ansible 服务器上必须安装 LXD 2.0 或更高版本(Ubuntu 16.04 默认应已安装)

  • LXD 应该已经在远程主机上通过 sudo lxd init 或使用 Ansible 角色如 juju4/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') }}"(默认) - 安装在容器中的公钥路径
  • enable_ssh: true(默认) - 在容器中安装并开启 openssh 服务器
  • lxd_host: 你的 lxd 容器主机

依赖项

安装

$ ansible-galaxy install ahnooie.lxd-container

示例

以下示例将在 lxd4.example.com LXD 主机上安装 6 个不同 Linux 发行版的容器;并在每个主机上安装 Python,为 root 用户添加公钥,安装并启动 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

Playbook 示例 containers.yml

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

Playbook 命令示例

$ ansible-playbook -i inventory containers.yml

许可证

MIT

作者信息

Benjamin Bryan 创建

安装
ansible-galaxy install ahnooie.lxd-container
许可证
mit
下载
206
拥有者