ahnooie.lxd-container
Rôle Ansible pour les Conteneurs LXD
Ce rôle gère des conteneurs LXD/LXC sur un hôte de conteneurs Linux à distance. https://www.ubuntu.com/containers/lxd
Exigences
LXD 2.0 ou supérieur doit être installé sur l'hôte LXD et le serveur Ansible (il devrait déjà être installé par défaut sur Ubuntu 16.04)
LXD doit déjà être configuré sur l'hôte distant en utilisant
sudo lxd initou un rôle Ansible tel que juju4/lxdPour qu'Ansible gère un hôte LXD à distance, les commandes suivantes doivent être exécutées à l'avance :
Sur l'hôte LXD distant :
$ lxc config set core.https_address [::]:8443
$ lxc config set core.trust_password remplacez-cela-par-un-mot-de-passe-sécurisé
Sur l'hôte Ansible :
$ lxc config set core.https_address [::]:8443
$ lxc remote add lxd4 lxd4.example.com
(remplacez lxd4.example.com par le nom d'hôte de votre hôte LXD, 'lxd4' peut être nommé comme vous le souhaitez, vous devrez le référencer dans le fichier d'inventaire)
- Testé sur un hôte LXD et un hôte Ansible utilisant tous deux Ubuntu 16.04 LTS (peut fonctionner avec d'autres distributions)
Variables de Rôle
Ces variables sont documentées ici : http://docs.ansible.com/ansible/latest/lxd_container_module.html
state:démarré (par défaut), arrêté, redémarré, absent, gelétype:image (par défaut)mode:pull (par défaut)server:https://images.linuxcontainers.org (par défaut)protocol:lxd (par défaut)alias:ubuntu/xenial/amd64 (par défaut)wait_for_ipv4_addresses:vrai (par défaut)timeout:600 (par défaut)
Variables supplémentaires :
public_key:"{{ lookup('file','~/.ssh/id_rsa.pub') }}" (par défaut) - chemin vers la clé ssh publique à installer dans le conteneurenable_ssh:vrai (par défaut) - installe et active le serveur openssh dans le conteneur.lxd_host:votre hôte de conteneurs lxd
Dépendances
Aucune
Installation
$ ansible-galaxy install ahnooie.lxd-container
Exemple
L'exemple suivant installera 6 conteneurs avec différentes distributions Linux sur l'hôte LXD lxd4.example.com ; et sur chaque hôte installera Python, ajoutera une clé ssh publique pour l'utilisateur root, installera et démarrera le service sshd.
Exemple de Fichier d'Inventaire
# Hôte LXD Distant
[lxd]
lxd4.example.com ansible_user=root
# Conteneurs sur les Hôtes 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
Exemple de Playbook containers.yml
---
- hosts: linux-containers
gather_facts: false
vars:
public_key: "{{ lookup('file','public_keys/id_rsa.pub') }}"
roles:
- ahnooie.lxd-container
Exemple de Commande Playbook
$ ansible-playbook -i inventory containers.yml
Licence
MIT
Informations sur l'Auteur
Créé par Benjamin Bryan
ansible-galaxy install ahnooie.lxd-container