hispanico.lxd

ansible-lxd

Build Status Galaxy

Dieses Modul verwaltet LXD-Profile und LXD-Container auf einem entfernten LXD-Server. https://linuxcontainers.org/lxd/

Anforderungen

  • LXD 2.0 oder höher muss auf dem LXD-Host und dem Ansible-Server installiert sein (es sollte standardmäßig auf Ubuntu 16.04 installiert sein).

  • LXD sollte bereits auf dem entfernten Host mit sudo lxd init eingerichtet sein.

  • Damit Ansible einen LXD-Host aus der Ferne verwalten kann, müssen folgende Befehle im Voraus ausgeführt werden:

Auf dem entfernten LXD-Host:

$ lxc config set core.https_address [::]:8443
$ lxc config set core.trust_password ersetze-dies-mit-einem-sicheren-passwort

Auf dem Ansible-Host:

$ lxc config set core.https_address [::]:8443
$ lxc remote add lxd4 lxd4.example.com

(ersetze lxd4.example.com mit dem Hostnamen deines LXD-Hosts, 'lxd4' kann beliebig benannt werden, du musst darauf in der Inventardatei verweisen)

  • Getestet auf einem LXD-Host und Ansible-Host mit Ubuntu 16.04 LTS (kann auch mit anderen Distributionen funktionieren)

Variablen des Moduls

LXD-Profilvariablen:

  • url: unix:/var/snap/lxd/common/lxd/unix.socket (Standard)
  • state: vorhanden (Standard), abwesend

LXD-Containervariablen:

  • url: unix:/var/snap/lxd/common/lxd/unix.socket (Standard)
  • state: gestartet (Standard), gestoppt, neu gestartet, abwesend, eingefroren
  • type: image (Standard)
  • mode: pull (Standard)
  • server: https://cloud-images.ubuntu.com/releases (Standard)
  • protocol: simplestreams (Standard)
  • alias: "16.04" (Standard)
  • architecture: x86_64 (Standard)
  • wait_for_ipv4_addresses: true (Standard)
  • timeout: 600 (Standard)

Diese Variablen sind hier dokumentiert:

Zusätzliche Variablen:

Standardwerte:

# LXD-Profile
lxd_profiles:
  - name: default
    description: "Standard LXD-Profil"
    status: vorhanden

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

Abhängigkeiten

Keine

Beispiel

Das folgende Beispiel konfiguriert ein Standard-LXD-Profil mit der cloud-init-Option, um Python-Pakete zu installieren und den Ansible-Benutzer zu konfigurieren, und installiert dann 2 Container auf dem LXD-Server.

  - hosts: all
    roles:
      - ansible-lxd
    vars:
      lxd_profiles:
        - name: default
          description: "Standard LXD-Profil"
          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: vorhanden

      LXCs:
        - name: MyContainer01
          mode: pull
          server: https://cloud-images.ubuntu.com/releases
          alias: "16.04"
          protocol: simplestreams
          architecture: x86_64
          disk_space: 50GB          # Festplattenspeicher des Containers
          memory: 2GB               # Arbeitsspeicher des Containers
          storage_pool: default
          network: lxdbr0
          ipv4address: 10.0.0.2     # Statische IPv4-Adresse gemäß lxdbr0-Subnetz
          profile: default
          status: gestartet

        - name: MyContainer02
          mode: pull
          server: https://cloud-images.ubuntu.com/releases
          alias: "16.04"
          protocol: simplestreams
          architecture: x86_64
          disk_space: 50GB          # Festplattenspeicher des Containers
          memory: 2GB               # Arbeitsspeicher des Containers
          nesting: "true"           # Container-Sicherheit.nesting aktiviert
          storage_pool: default
          network: lxdbr0
          ipv4address: 10.0.0.3     # Statische IPv4-Adresse gemäß lxdbr0-Subnetz
          profile: default
          status: gestartet

Lizenz

Lizenziert unter der GPLv3-Lizenz. Siehe die LICENSE-Datei für Einzelheiten.

Autoreninformation

Hispanico

Über das Projekt

Manage LXD Profile and LXD Containers

Installieren
ansible-galaxy install hispanico.lxd
GitHub Repository
Lizenz
gpl-3.0
Downloads
357
Besitzer
@openwisp Contributor and @ninuxorg Member