hispanico.lxd

ansible-lxd

Status budowy Galaxy

Ta rola zarządza profilami LXD oraz kontenerami LXD na zdalnym serwerze LXD. https://linuxcontainers.org/lxd/

Wymagania

  • LXD w wersji 2.0 lub nowszej musi być zainstalowane na hoście LXD oraz na serwerze Ansible (na Ubuntu 16.04 powinno być już zainstalowane domyślnie).

  • LXD powinno być już skonfigurowane na zdalnym hoście za pomocą sudo lxd init.

  • Aby Ansible mógł zdalnie zarządzać hostem LXD, muszą być wcześniej wykonane 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ę hosta swojego hosta LXD, 'lxd4' może mieć dowolną nazwę, będziesz musiał odwołać się do niej w pliku inwentory).

  • Testowano na hoście LXD i hoście Ansible, oba działające na Ubuntu 16.04 LTS (może działać z innymi dystrybucjami).

Zmienne roli

Zmienne profilu LXD:

  • url: unix:/var/snap/lxd/common/lxd/unix.socket (domyślne)
  • state: obecny (domyślny), nieobecny

Zmienne kontenerów LXD:

  • url: unix:/var/snap/lxd/common/lxd/unix.socket (domyślne)
  • state: uruchomiony (domyślny), zatrzymany, ponownie uruchomiony, nieobecny, zamrożony
  • type: obraz (domyślny)
  • mode: pull (domyślny)
  • server: https://cloud-images.ubuntu.com/releases (domyślny)
  • protocol: simplestreams (domyślny)
  • alias: "16.04" (domyślny)
  • architecture: x86_64 (domyślny)
  • wait_for_ipv4_addresses: true (domyślny)
  • timeout: 600 (domyślny)

Te zmienne są dokumentowane tutaj:

Dodatkowe zmienne:

Domyślne wartości:

# Profile LXD
lxd_profiles:
  - name: default
    description: "Domyślny profil LXD"
    status: present

# Kontenery LXD
LXCs:
  - name: mycontainer
    mode: pull
    server: https://cloud-images.ubuntu.com/releases
    alias: "16.04"
    protocol: simplestreams
    architecture: x86_64
    profile: default
    status: started

Zależności

Brak

Przykład

Poniższy przykład skonfiguruje domyślny profil LXD z opcją cloud-init do instalacji pakietów python i skonfiguruje użytkownika ansible, a następnie zainstaluje 2 kontenery na serwerze LXD.

  - hosts: all
    roles:
      - ansible-lxd
    vars:
      lxd_profiles:
        - name: default
          description: "Domyślny profil LXD"
          storage_pool: default
          network: lxdbr0
          cloud_init: |
            #cloud-config
            packages:
              - python
            users:
              - name: ansible
                group: sudo
                shell: /bin/bash
                sudo: ALL=(ALL) NOPASSWD:ALL
                ssh_authorized_keys:
                  - {{ lookup('file', '$HOME/.ssh/id_rsa.pub' ) }}
          status: present

      LXCs:
        - name: MyContainer01
          mode: pull
          server: https://cloud-images.ubuntu.com/releases
          alias: "16.04"
          protocol: simplestreams
          architecture: x86_64
          disk_space: 50GB          # Limit dysku kontenera
          memory: 2GB               # Limit pamięci kontenera
          storage_pool: default
          network: lxdbr0
          ipv4address: 10.0.0.2     # statyczny adres IPv4 zgodny z podsiecią lxdbr0
          profile: default
          status: started

        - name: MyContainer02
          mode: pull
          server: https://cloud-images.ubuntu.com/releases
          alias: "16.04"
          protocol: simplestreams
          architecture: x86_64
          disk_space: 50GB          # Limit dysku kontenera
          memory: 2GB               # Limit pamięci kontenera
          nesting: "true"           # Włączone bezpieczeństwo.nest
          storage_pool: default
          network: lxdbr0
          ipv4address: 10.0.0.3     # statyczny adres IPv4 zgodny z podsiecią lxdbr0
          profile: default
          status: started

Licencja

Licencjonowane na mocy Licencji GPLv3. Zobacz plik LICENSE, aby uzyskać więcej informacji.

Informacje o autorze

Hispanico

O projekcie

Manage LXD Profile and LXD Containers

Zainstaluj
ansible-galaxy install hispanico.lxd
Licencja
gpl-3.0
Pobrania
357
Właściciel
@openwisp Contributor and @ninuxorg Member