ahnooie.lxd-container
Rola Ansible dla Kontenerów LXD
Ta rola zarządza kontenerami LXD/LXC na zdalnym hoście kontenerów Linux. https://www.ubuntu.com/containers/lxd
Wymagania
Musi być zainstalowane LXD w wersji 2.0 lub wyższej na hoście LXD oraz serwerze Ansible (powinno być już domyślnie zainstalowane w Ubuntu 16.04).
LXD powinno być już poprawnie skonfigurowane na zdalnym hoście za pomocą
sudo lxd initlub przy użyciu roli Ansible, takiej jak juju4/lxd.Aby Ansible mogło zarządzać zdalnym hostem LXD, należy wcześniej wykonać następujące polecenia:
Na zdalnym hoście LXD:
$ lxc config set core.https_address [::]:8443
$ lxc config set core.trust_password zamień-to-na-bezpieczne-hasło
Na hoście Ansible:
$ lxc config set core.https_address [::]:8443
$ lxc remote add lxd4 lxd4.example.com
(zamień lxd4.example.com na nazwę swojego hosta LXD, 'lxd4' może mieć dowolną nazwę, musisz się do niej odnosić w pliku inwentarza)
- Testowano na hoście LXD i hoście Ansible, oba z Ubuntu 16.04 LTS (może działać z innymi dystrybucjami)
Zmienne roli
Te zmienne są udokumentowane tutaj: http://docs.ansible.com/ansible/latest/lxd_container_module.html
state:started (domyślnie), stopped, restarted, absent, frozentype:image (domyślnie)mode:pull (domyślnie)server:https://images.linuxcontainers.org (domyślnie)protocol:lxd (domyślnie)alias:ubuntu/xenial/amd64 (domyślnie)wait_for_ipv4_addresses:true (domyślnie)timeout:600 (domyślnie)
Dodatkowe zmienne:
public_key:"{{ lookup('file','~/.ssh/id_rsa.pub') }}" (domyślnie) - ścieżka do publicznego klucza ssh do zainstalowania w kontenerzeenable_ssh:true (domyślnie) - instaluje i włącza serwer openssh w kontenerze.lxd_host:twój host kontenerów lxd
Zależności
Brak
Instalacja
$ ansible-galaxy install ahnooie.lxd-container
Przykład
Poniższy przykład zainstaluje 6 kontenerów z różnymi dystrybucjami Linux na hoście LXD lxd4.example.com; a na każdym hoście zainstaluje Pythona, doda publiczny klucz ssh dla użytkownika root, zainstaluje i uruchomi usługę sshd.
Przykład pliku inwentarza
# Zdalny host LXD
[lxd]
lxd4.example.com ansible_user=root
# Kontenery na hostach 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
Przykład playbooka containers.yml
---
- hosts: linux-containers
gather_facts: false
vars:
public_key: "{{ lookup('file','public_keys/id_rsa.pub') }}"
roles:
- ahnooie.lxd-container
Przykład komendy playbooka
$ ansible-playbook -i inventory containers.yml
Licencja
MIT
Informacje o autorze
Stworzone przez Benjamina Bryana
ansible-galaxy install ahnooie.lxd-container