Notiz

Dieses Plugin ist Teil der community.docker-Sammlung (Version 1.2.2).

Um es zu installieren, verwenden Sie: ansible-galaxy collection install community.docker.

Um es in einem Playbook zu verwenden, geben Sie Folgendes an: community.docker.docker_swarm_info.

  • Zusammenfassung
  • Anforderungen
  • Parameter
  • Anmerkungen
  • Beispiele
  • Rückgabewerte

Zusammenfassung

  • Ruft Fakten über einen Docker-Schwarm ab.
  • Gibt Listen mit Schwarmobjektnamen für die Dienste zurück - Knoten, Dienste, Aufgaben.
  • Die Ausgabe unterscheidet sich je nach API-Version, die auf dem Docker-Host verfügbar ist.
  • Muss auf dem Swarm Manager-Knoten ausgeführt werden; andernfalls schlägt das Modul mit Fehlermeldung aus. Es gibt sowohl bei Fehler als auch bei Erfolg boolesche Flags zurück, die angeben, ob mit dem Docker-Daemon kommuniziert werden kann, ob er sich im Swarm-Modus befindet und ob es sich um einen Swarm-Manager-Knoten handelt.

Anforderungen

Die folgenden Anforderungen werden auf dem Host benötigt, der dieses Modul ausführt.

  • Docker-API >= 1.24
  • Docker SDK für Python: Bitte beachten Sie, dass die docker-py Python-Modul wurde ersetzt durch Docker (sehen Hier für Details). Für Python 2.6, docker-py muss benutzt werden. Andernfalls wird empfohlen, die docker Python-Modul. Beachten Sie, dass beide Module nicht gleichzeitig installiert werden. Beachten Sie auch, dass, wenn beide Module installiert sind und eines von ihnen deinstalliert wird, das andere möglicherweise nicht mehr funktioniert und eine Neuinstallation erforderlich ist.
  • Docker-SDK für Python >= 1.10.0 (verwenden docker-py für Python 2.6)

Parameter

Parameter Auswahlmöglichkeiten/Standardeinstellungen Kommentare
api_version Schnur Standard:
"Auto"
Die Version der Docker-API, die auf dem Docker-Host ausgeführt wird. Standardmäßig ist die neueste Version der API, die vom Docker SDK für Python und dem Docker-Daemon unterstützt wird. Wenn der Wert in der Aufgabe nicht angegeben ist, wird der Wert der Umgebungsvariablen DOCKER_API_VERSION wird stattdessen verwendet. Wenn die Umgebungsvariable nicht festgelegt ist, wird der Standardwert verwendet.

Aliase: docker_api_version
ca_cert Weg Verwenden Sie bei der Serverüberprüfung ein CA-Zertifikat, indem Sie den Pfad zu einer CA-Zertifikatsdatei angeben. Wenn der Wert in der Aufgabe und der Umgebungsvariablen nicht angegeben ist DOCKER_CERT_PATH ist gesetzt, die Datei ca.pem aus dem in der Umgebungsvariablen angegebenen Verzeichnis DOCKER_CERT_PATH verwendet werden.

Aliase: tls_ca_cert, cacert_path
client_cert Weg Pfad zur TLS-Zertifikatsdatei des Clients. Wenn der Wert in der Aufgabe und der Umgebungsvariablen nicht angegeben ist DOCKER_CERT_PATH ist gesetzt, die Datei cert.pem aus dem in der Umgebungsvariablen angegebenen Verzeichnis DOCKER_CERT_PATH verwendet werden.

Aliase: tls_client_cert, cert_path
client_key Weg Pfad zur TLS-Schlüsseldatei des Clients. Wenn der Wert in der Aufgabe und der Umgebungsvariablen nicht angegeben ist DOCKER_CERT_PATH ist gesetzt, die Datei key.pem aus dem in der Umgebungsvariablen angegebenen Verzeichnis DOCKER_CERT_PATH verwendet werden.

Aliase: tls_client_key, key_path
debuggen boolesch
    Auswahl:

  • Nein
  • Jawohl
Debug-Modus
docker_host Schnur Standard:
"unix://var/run/docker.sock"
Die URL oder der Unix-Socket-Pfad, der zum Herstellen einer Verbindung mit der Docker-API verwendet wird. Um eine Verbindung zu einem Remote-Host herzustellen, geben Sie die TCP-Verbindungszeichenfolge an. Zum Beispiel, tcp://192.0.2.23:2376. Wenn TLS zur Verschlüsselung der Verbindung verwendet wird, ersetzt das Modul automatisch tcp in der Verbindungs-URL mit https. Wenn der Wert in der Aufgabe nicht angegeben ist, wird der Wert der Umgebungsvariablen DOCKER_HOST wird stattdessen verwendet. Wenn die Umgebungsvariable nicht festgelegt ist, wird der Standardwert verwendet.

Aliase: docker_url
Knoten boolesch
    Auswahl:

  • Nein
  • Jawohl
Ob Schwarmknoten aufgelistet werden sollen.
Knoten_filter Wörterbuch Ein Wörterbuch mit Filterwerten, das zum Auswählen von aufzulistenden Knoten verwendet wird. Zum Beispiel, name: mynode. Sehen die Docker-Dokumentation für weitere Informationen zu möglichen Filtern.
Dienstleistungen boolesch
    Auswahl:

  • Nein
  • Jawohl
Ob Schwarmdienste aufgelistet werden sollen.
service_filter Wörterbuch Ein Wörterbuch mit Filterwerten, das zum Auswählen von aufzulistenden Diensten verwendet wird. Zum Beispiel, name: myservice. Sehen die Docker-Dokumentation für weitere Informationen zu möglichen Filtern.
ssl_version Schnur Geben Sie eine gültige SSL-Versionsnummer an. Standardwert, der vom ssl.py-Modul bestimmt wird. Wenn der Wert in der Aufgabe nicht angegeben ist, wird der Wert der Umgebungsvariablen DOCKER_SSL_VERSION wird stattdessen verwendet.
Aufgaben boolesch
    Auswahl:

  • Nein
  • Jawohl
Ob Container aufgelistet werden sollen.
task_filters Wörterbuch Ein Wörterbuch mit Filterwerten, das zum Auswählen von aufzulistenden Aufgaben verwendet wird. Zum Beispiel, node: mynode-1. Sehen die Docker-Dokumentation für weitere Informationen zu möglichen Filtern.
Auszeit ganze Zahl Standard:
60
Die maximale Wartezeit in Sekunden auf eine Antwort von der API. Wenn der Wert in der Aufgabe nicht angegeben ist, wird der Wert der Umgebungsvariablen DOCKER_TIMEOUT wird stattdessen verwendet. Wenn die Umgebungsvariable nicht festgelegt ist, wird der Standardwert verwendet.
tls boolesch
    Auswahl:

  • Nein
  • Jawohl
Sichern Sie die Verbindung zur API mithilfe von TLS, ohne die Authentizität des Docker-Hostservers zu überprüfen. Beachten Sie, dass wenn valid_certs ist eingestellt auf yes es wird auch Vorrang haben. Wenn der Wert in der Aufgabe nicht angegeben ist, wird der Wert der Umgebungsvariablen DOCKER_TLS wird stattdessen verwendet. Wenn die Umgebungsvariable nicht festgelegt ist, wird der Standardwert verwendet.
tls_hostname Schnur Standard:
"lokaler Host"
Geben Sie beim Überprüfen der Authentizität des Docker Host-Servers den erwarteten Namen des Servers an. Wenn der Wert in der Aufgabe nicht angegeben ist, wird der Wert der Umgebungsvariablen DOCKER_TLS_HOSTNAME wird stattdessen verwendet. Wenn die Umgebungsvariable nicht festgelegt ist, wird der Standardwert verwendet.
unlock_key boolesch
    Auswahl:

  • Nein
  • Jawohl
Ob der Schwarm-Entsperrschlüssel abgerufen werden soll.
valid_certs boolesch
    Auswahl:

  • Nein
  • Jawohl
Sichern Sie die Verbindung zur API, indem Sie TLS verwenden und die Authentizität des Docker-Hostservers überprüfen. Wenn der Wert in der Aufgabe nicht angegeben ist, wird der Wert der Umgebungsvariablen DOCKER_TLS_VERIFY wird stattdessen verwendet. Wenn die Umgebungsvariable nicht festgelegt ist, wird der Standardwert verwendet.

Aliase: tls_verify
verbose_output boolesch
    Auswahl:

  • Nein
  • Jawohl
Bei Einstellung auf yes und Knoten, Dienstleistungen oder Aufgaben ist eingestellt auf yes, enthält die Modulausgabe ausführliche Informationen zu Objekten, die der vollständigen Ausgabe der API-Methode entsprechen. Weitere Informationen finden Sie in der Dokumentation zu Ihrer Version der Docker-API unter https://docs.docker.com/engine/api/. Die ausführliche Ausgabe in diesem Modul enthält nur eine Teilmenge der von . zurückgegebenen Informationen _die Info Modul für jeden Objekttyp.

Anmerkungen

Notiz

  • Stellen Sie eine Verbindung zum Docker-Daemon her, indem Sie bei jeder Aufgabe Parameter bereitstellen oder Umgebungsvariablen definieren. Sie können definieren DOCKER_HOST, DOCKER_TLS_HOSTNAME, DOCKER_API_VERSION, DOCKER_CERT_PATH, DOCKER_SSL_VERSION, DOCKER_TLS, DOCKER_TLS_VERIFY und DOCKER_TIMEOUT. Wenn Sie einen Docker-Computer verwenden, führen Sie das mit dem Produkt gelieferte Skript aus, das die Umgebung einrichtet. Es wird diese Variablen für Sie festlegen. Sehen https://docs.docker.com/machine/reference/env/ für mehr Details.
  • Wenn Sie mit TLS eine Verbindung zum Docker-Daemon herstellen, müssen Sie möglicherweise zusätzliche Python-Pakete installieren. Für das Docker SDK für Python, Version 2.4 oder höher, kann dies durch die Installation erfolgen docker[tls] mit ansible.eingebautes.pip.
  • Beachten Sie, dass das Docker SDK für Python nur für sehr wenige Funktionen die Angabe des Pfads zur Docker-Konfiguration ermöglicht. Im Allgemeinen wird es verwendet $HOME/.docker/config.json wenn die DOCKER_CONFIG Umgebungsvariable ist nicht angegeben, und verwenden $DOCKER_CONFIG/config.json Andernfalls.
  • Dieses Modul verwendet die Docker-SDK für Python um mit dem Docker-Daemon zu kommunizieren.

Beispiele

- name: Get info on Docker Swarm
  community.docker.docker_swarm_info:
  ignore_errors: yes
  register: result

- name: Inform about basic flags
  ansible.builtin.debug:
    msg: |
      Was able to talk to docker daemon: {{ result.can_talk_to_docker }}
      Docker in Swarm mode: {{ result.docker_swarm_active }}
      This is a Manager node: {{ result.docker_swarm_manager }}

- block:

- name: Get info on Docker Swarm and list of registered nodes
  community.docker.docker_swarm_info:
    nodes: yes
  register: result

- name: Get info on Docker Swarm and extended list of registered nodes
  community.docker.docker_swarm_info:
    nodes: yes
    verbose_output: yes
  register: result

- name: Get info on Docker Swarm and filtered list of registered nodes
  community.docker.docker_swarm_info:
    nodes: yes
    nodes_filters:
      name: mynode
  register: result

- ansible.builtin.debug:
    var: result.swarm_facts

- name: Get the swarm unlock key
  community.docker.docker_swarm_info:
    unlock_key: yes
  register: result

- ansible.builtin.debug:
    var: result.swarm_unlock_key

Rückgabewerte

Gängige Rückgabewerte sind dokumentiert Hier, sind die folgenden Felder eindeutig für dieses Modul:

Taste Ist zurückgekommen Beschreibung
can_talk_to_docker boolesch sowohl bei Erfolg als auch bei Fehler Wird sein true ob das Modul mit dem Docker-Daemon kommunizieren kann.
docker_swarm_active boolesch sowohl bei Erfolg als auch bei Fehler Wird sein true wenn das Modul mit dem Docker-Daemon kommunizieren kann und sich der Docker-Daemon im Swarm-Modus befindet.
docker_swarm_manager boolesch sowohl bei Erfolg als auch bei Fehler Wird sein true Wenn das Modul mit dem Docker-Daemon kommunizieren kann, befindet sich der Docker-Daemon im Swarm-Modus und der aktuelle Knoten ist ein Manager-Knoten. Nur wenn das hier ist true, wird das Modul nicht ausfallen.
Knoten aufführen / Elemente=Wörterbuch Wann Knoten ist yes Liste der dict-Objekte mit den grundlegenden Informationen zu jedem Volume. Schlüssel entspricht dem docker node ls Ausgabe, es sei denn verbose_output=ja. Siehe Beschreibung für verbose_output.
Dienstleistungen aufführen / Elemente=Wörterbuch Wann Dienstleistungen ist yes Liste der dict-Objekte mit den grundlegenden Informationen zu jedem Volume. Schlüssel entspricht dem docker service ls Ausgabe, es sei denn verbose_output=ja. Siehe Beschreibung für verbose_output.
swarm_facts Wörterbuch immer Fakten, die den Grundzustand des Docker-Swarm-Clusters darstellen. Enthält Token, um sich mit dem Schwarm zu verbinden
swarm_unlock_key Schnur Wann unlock_key ist true. Enthält den Schlüssel zum Entsperren des Schwarms.
Aufgaben aufführen / Elemente=Wörterbuch Wann Aufgaben ist yes Liste der dict-Objekte, die die grundlegenden Informationen zu jedem Band. Schlüssel entspricht dem docker service ps Ausgabe, es sei denn verbose_output=ja. Siehe Beschreibung für verbose_output.

Autoren

  • Piotr Wojciechowski (@WojciechowskiPiotr)