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

Status budowy

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 init lub 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, frozen
  • type: 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 kontenerze
  • enable_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

Zainstaluj
ansible-galaxy install ahnooie.lxd-container
Licencja
mit
Pobrania
206
Właściciel