ahnooie.lxd-container
Rol de Ansible para Contenedores LXD
Este rol gestiona Contenedores LXD/LXC en un Host de Contenedor Linux remoto. Más información sobre LXD
Requisitos
Se debe instalar LXD 2.0 o superior en el host LXD y en el servidor Ansible (debería estar instalado por defecto en Ubuntu 16.04).
LXD debería estar configurado en el host remoto utilizando
sudo lxd inito mediante un Rol de Ansible como juju4/lxd.Para que Ansible gestione un host LXD de forma remota, se deben ejecutar los siguientes comandos con antelación:
En el host LXD remoto:
$ lxc config set core.https_address [::]:8443
$ lxc config set core.trust_password reemplaza-esto-por-una-contraseña-segura
En el host Ansible:
$ lxc config set core.https_address [::]:8443
$ lxc remote add lxd4 lxd4.ejemplo.com
(reemplaza lxd4.ejemplo.com con el nombre de tu host LXD, 'lxd4' puede tener cualquier nombre que desees, tendrás que hacer referencia a él en el archivo de inventario)
- Probado en un host LXD y un host Ansible utilizando ambos Ubuntu 16.04 LTS (puede funcionar con otras distribuciones).
Variables del Rol
Estas variables están documentadas aquí: http://docs.ansible.com/ansible/latest/lxd_container_module.html
state:iniciado (por defecto), detenido, reiniciado, ausente, congeladotype:imagen (por defecto)mode:pull (por defecto)server:https://images.linuxcontainers.org (por defecto)protocol:lxd (por defecto)alias:ubuntu/xenial/amd64 (por defecto)wait_for_ipv4_addresses:verdadero (por defecto)timeout:600 (por defecto)
Variables Adicionales:
public_key:"{{ lookup('file','~/.ssh/id_rsa.pub') }}" (por defecto) - ruta a la clave pública ssh para instalar en el contenedorenable_ssh:verdadero (por defecto) - instala y activa el servidor openssh en el contenedor.lxd_host:tu host de contenedor lxd
Dependencias
Ninguna
Instalación
$ ansible-galaxy install ahnooie.lxd-container
Ejemplo
El siguiente ejemplo instalará 6 contenedores con varias distribuciones de Linux en el host LXD lxd4.ejemplo.com; y en cada contenedor instalará python, añadirá una clave ssh pública para el usuario root, e instalará y comenzará el servicio sshd.
Ejemplo de Archivo de Inventario
# Host LXD Remoto
[lxd]
lxd4.ejemplo.com ansible_user=root
# Contenedores en Hosts LXD
[linux-containers]
ubuntu01.ejemplo.com ansible_host=lxd4:ubuntu01 alias=ubuntu/xenial/amd64
centos01.ejemplo.com ansible_host=lxd4:centos01 alias=centos/7/amd64
centos02.ejemplo.com ansible_host=lxd4:centos02 alias=centos/6/amd64
debian01.ejemplo.com ansible_host=lxd4:debian01 alias=debian/stretch/amd64
fedora01.ejemplo.com ansible_host=lxd4:fedora01 alias=fedora/27/amd64
[linux-containers:vars]
ansible_connection=lxd
lxd_host=lxd4.ejemplo.com
Ejemplo de Playbook containers.yml
---
- hosts: linux-containers
gather_facts: false
vars:
public_key: "{{ lookup('file','public_keys/id_rsa.pub') }}"
roles:
- ahnooie.lxd-container
Ejemplo de Comando de Playbook
$ ansible-playbook -i inventario containers.yml
Licencia
MIT
Información del Autor
Creado por Benjamin Bryan
ansible-galaxy install ahnooie.lxd-container