arc-ts.docker

Ansible Rolle: Docker

Diese Rolle verwaltet die Installation und Konfiguration der Docker Engine und unterstützt das Management von Anmeldeinformationen sowie die Bereitstellung von benutzerdefiniertem Speicher. Die Rolle wurde mit CentOS 7.3, Debian Jessie, Ubuntu Trusty und Ubuntu Xenial getestet. RHEL 7.x wird nur eingeschränkt unterstützt.

Build-Status

Inhaltsverzeichnis


Anforderungen


Diese Rolle benötigt Ansible 2.2 oder höher für eine vollständige Funktionalität.

HINWEIS: Version 2.x.x und höher dieser Rolle unterstützt NUR das YY.MM Freigabeschema (z. B. docker-ce-17.03.1). Für ältere Versionen (z. B. docker-engine-1.13.1) verwenden Sie bitte die 1.x.x Version dieser Rolle.

HINWEIS: Docker Inc. verwendet keine öffentlich zugänglichen Repos mehr für ihre Enterprise Edition. Mit Version 2.0.0 dieser Rolle wurde die Unterstützung für die Verwaltung von Unternehmens-Repos entfernt. Die Rolle kann dennoch die Enterprise Edition verwalten und installieren.

Abhängigkeiten


Die Python-Bibliothek docker oder docker-py ist erforderlich für alle Komponenten der Rolle außer der Installation der Docker-Engine selbst. Die Rolle kümmert sich jedoch um die Installation der richtigen Version, sofern konfiguriert.

HINWEIS: Seit dem 13.04.2017 unterstützt Ansible die Python-Bibliothek 2.0.2+. Unterstützung ist für die Ansible 2.4-Version geplant. Für weitere Informationen siehe das GitHub-Problem hier: https://github.com/ansible/ansible/issues/22993

Rollenvariablen


Ausführungssteuerung

Aktiviert oder deaktiviert spezifische Komponenten der Docker-Rolle.

Variablenname Standard Beschreibung
external_dependency_delay 20 Die Zeit in Sekunden zwischen den Wiederholungen für externe Abhängigkeiten. (Repos, Schlüsselserver usw.)
external_dependency_retries 6 Die Anzahl der Versuche, um auf eine externe Abhängigkeit zuzugreifen.
docker_manage_py true Installiert die Python-Docker-Bibliothek, entweder aus dem Repo oder pip. Hinweis: Dies ist erforderlich für das Management von Containern, Anmeldeinformationen, Bildern und Netzwerken.
docker_manage_engine_repo true Verwaltet das Docker-Repo. Unterstützt sowohl die Open-Source- als auch die kommerziell unterstützten Repositories.
docker_manage_engine_storage false Wenn true, wird der Storage-Treiber für die Docker-Engine von der Rolle verwaltet. Es sollten keine Storage-Driver oder storage-opt manuell angegeben werden.
docker_manage_engine_users true Erstellt und verwaltet eine Docker-Gruppe, die das Recht hat, mit Docker zu interagieren.
docker_manage_registry_credentials true Verwaltet die Anmeldeinformationen für eine bereitgestellte Liste von Registrierungen. Hinweis: Erfordert die Docker-Bibliothek.
docker_manage_engine_networks true Ermöglicht das Management von Docker-Containernetzwerken. Hinweis: Erfordert die Docker-Bibliothek.
docker_manage_images true Verwaltet den Lebenszyklus von Containerbildern. Hinweis: Erfordert die Docker-Bibliothek.
docker_manage_containers true Ermöglicht das Management der Docker-Container-Ausführung. Hinweis: Erfordert die Docker-Bibliothek.

Docker Python-Bibliothek

Verwaltet die Installation der Python Docker-Bibliothek. Wird eine Version bereitgestellt, die 2.0.0 oder größer ist, wird das ältere docker-py-Paket entfernt und das neuere docker-Paket installiert.

Variable Default Optionen Beschreibung
docker_py_install pip pip oder pkg Art der Installation. Entweder von pip oder Paket.
docker_py_pip_extra_args - - Extra-Argumente, die während der Ausführung an pip übergeben werden. z. B. -i <lokales pypi-mirror>
docker_py_pip_upgrade true true oder false Ermöglicht es pip, während des Installationsprozesses aktualisiert zu werden.
docker_py_version - - Die Version der zu installierenden Docker-Bibliothek. Standardmäßig die neueste.

Docker-Engine-Repository

Steuert die Repository-Konfiguration der Docker-Engine.

Variablenname Standard Optionen Beschreibung
docker_engine_architecture amd64 amd64 oder armhf Gibt die beabsichtigte Architektur an. HINWEIS: armhf wird NUR auf Ubuntu und Debian-basierten Distros unterstützt.
docker_engine_channel stable stable oder edge Gibt an, ob der stable oder edge Release-Kanal verwendet werden soll. Weitere Informationen finden Sie in der Docker Installationsdokumentation
docker_engine_edition ce ce oder ee Verwendung der Community Edition (CE) oder Enterprise Edition (EE). HINWEIS: Das Repository für die Enterprise Edition kann NICHT von der Rolle verwaltet werden.
docker_engine_repo_gpg_key_server sks-keyservers.net - Der Schlüsselserver, der zur Validierung der Repository-GPG-Schlüssel verwendet wird.
docker_engine_repo_ce_deb_gpg_key 0x8D81803C0EBFCD88 - Der GPG-Schlüssel, der für das CE-Repository auf Grundlage von DEB verwendet wird.
docker_engine_repo_ce_rpm_gpg_key 0xc52feb6b621e9f35 - Der GPG-Schlüssel, der für das CE-Repository auf Grundlage von RPM verwendet wird.

Speicherkonfiguration der Docker-Engine

Verwaltet den Storage-Treiber der Docker-Engine und, in bestimmten Fällen, den darunter liegenden Speicher. Ein Vergleich der verschiedenen Speicheroptionen ist außerhalb des Rahmens dieses Dokuments; jedoch finden Sie weitere Informationen hier: https://docs.docker.com/engine/userguide/storagedriver/selectadriver/.

Hinweis: Für alle Storage-Treiber müssen die storage_opts in Form eines Arrays von Elementen übergeben werden. Weitere Informationen zu den verfügbaren und spezifischen Speicheroptionen für jeden Treiber finden Sie hier: https://docs.docker.com/v1.10/engine/reference/commandline/daemon/

Unterstützungsmatrix für Speicher:

aufs btrfs devicemapper (lvm-direct) overlay overlay2
CentOS 7.3 - x x x -
Debian 8 (Jessie) x x - - -
RHEL 7.3 - x x x -
Ubuntu 14.04 (Trusty) x x - - -
Ubuntu 16.04 (Xenial) x x - x x
Variablenname Default Optionen Beschreibung
docker_engine_storage_driver - aufs, btrfs, devicemapper, und overlay Der Storage-Treiber, der mit der Docker-Engine verwendet werden soll.
docker_engine_storage_config - - Ein Hash, der die Informationen für den Treiber enthält, die von docker_engine_storage_driver bereitgestellt werden.

aufs

Variablenname Default Beschreibung
docker_engine_storage_driver aufs -
graph /var/lib/docker Das Stammverzeichnis der Docker-Laufzeit
storage_opts - Optionale Speichereinstellungen, die an den Docker-Daemon übergeben werden.

btrfs

Variablenname Default Beschreibung
docker_engine_storage_driver btrfs -
device - ERFORDERLICH Das Gerät oder die Partition (z. B. /dev/sdb), die von Docker verwendet und verwaltet werden soll.
graph /var/lib/docker Das Stammverzeichnis der Docker-Laufzeit
mkfs_opts - Zusätzliche Parameter, die während der Volumenerstellung an mkfs.btrfs übergeben werden.
mount_opts defaults Mount-Parameter für das btrfs-Docker-Volumen.
storage_opts - Optionale Speichereinstellungen, die an den Docker-Daemon übergeben werden.

devicemapper (lvm-direct)

HINWEIS: Nicht alle Fehler werden während der Erstellung des Thinpools korrekt erfasst. Es gibt eine Prüfaufgabe, die den Lauf am Ende der lvm-Konfiguration abbricht, wenn festgestellt wird, dass sie nicht korrekt eingerichtet wurde. Damit die Rolle erneut ausgeführt werden kann, muss die lvm-Volume-Gruppe manuell entfernt werden (vgremove <vgname>). Dies ist ein beabsichtigtes Verhalten, um einen versehentlichen Datenverlust zu verhindern.

Variablenname Default Beschreibung
docker_engine_storage_driver devicemapper -
device - ERFORDERLICH Das Gerät oder die Partition (z. B. /dev/sdb), die von Docker verwendet und verwaltet werden soll.
vg_name docker-vg Der Name der Docker-Volume-Gruppe.
vg_opts - Optionale Parameter, die während der Erstellung der Volume-Gruppe verwendet werden.
lv_name thinpool Der Name des logischen Volumes des Thinpool.
lv_data_opts --wipesignatures y Parameter, die während der Erstellung des Datenlogischen Volumes übergeben werden.
lv_metadata_opts --wipesignatures y Parameter, die während der Erstellung des Metadatenlogischen Volumes übergeben werden.
thinpool_autoextend_threshold 80 Der vollere Prozentsatz, der definiert, wann das Thinpool-Logische Volume erweitert werden soll.
thinpool_autoextend_percent 20 Der Prozentwert (relativ zu seiner aktuellen Größe), um den wie viel zusätzlicher Speicher zum Thinpool-Logischen Volume aus der Volume-Gruppe hinzugefügt werden sollte.
data_share 95 Der Prozentsatz des Speichers der Volume-Gruppe, der dem Datenlogischen Volume zugewiesen wird.
metadata_share 1 Der Prozentsatz des Speichers der Volume-Gruppe, der dem Metadatenlogischen Volume zugewiesen wird.
storage_opts [ 'dm.use_deferred_removal=true'] Optional Speichereinstellungen, die an den Docker-Daemon übergeben werden.

overlay

Variablenname Default Beschreibung
docker_engine_storage_driver overlay -
graph /var/lib/docker Das Stammverzeichnis der Docker-Laufzeit
storage_opts - Optionale Speichereinstellungen, die an den Docker-Daemon übergeben werden.

overlay2

Variablenname Default Beschreibung
docker_engine_storage_driver overlay2 -
graph /var/lib/docker Das Stammverzeichnis der Docker-Laufzeit
storage_opts - Optionale Speichereinstellungen, die an den Docker-Daemon übergeben werden.

Docker-Engine

Diese Parameter steuern die Docker-Engine und den Docker-Engine-Daemon.

Hinweis: Wenn docker_manage_engine_storage aktiviert ist, sollten keine storage-opt im docker_engine_opts Hash angegeben werden, und sie sollten stattdessen über docker_engine_storage_config.storage_opts kontrolliert werden.

Variablenname Default Beschreibung
docker_engine_version - Die Version der Docker-Engine, die installiert werden soll. Wenn nicht angegeben, wird die neueste installiert.
docker_engine_env_vars - Ein Hash von Schlüssel-Wert-Paaren, die an die Docker-Engine als Umgebungsvariablen übergeben werden.
docker_engine_opts - Ein Hash von Schlüssel-[Array von Werten]-Paaren, die als Docker-Engine-Optionen verwendet werden. z. B. dns: [ '8.8.8.8', '8.8.4.4']

Benutzer und Gruppen der Docker-Engine

Verwaltet den Zugriff auf die Docker-Gruppe auf einem Host.

Variablenname Standard Beschreibung
docker_engine_users - Ein Array von Benutzernamen, die zur Docker-Gruppe hinzugefügt werden sollen. Diese Benutzer können Docker ohne sudo-Rechte ausführen.

Anmeldeinformationen für das Docker-Registry

Verwaltet die Authentifizierung zu Docker-Registrierungen. Die Konfiguration wird über ein Array von Hashes bereitgestellt, wobei jeder Hash Schlüssel/Wert-Paare der verfügbaren Optionen für das Docker-Login-Modul enthält. Eine vollständige Liste der Optionen und Standardwerte finden Sie in den Ansible-Dokumenten zum docker_login-Modul.

Variablenname Beschreibung
docker_registry_credentials Array von Hashes, die die Konfiguration der Docker-Registrierungsanmeldeinformationen enthalten.

Container Netzwerke

Verwaltet die Erstellung und Löschung von Docker-Netzwerken. Netzwerke werden über ein Array von Hashes verwaltet, wobei jeder Hash eine Netzwerk-Konfiguration enthält, die von den Optionen des Docker-Network-Moduls bereitgestellt wird. Eine vollständige Liste der Optionen und Standardwerte finden Sie in den Ansible Dokumenten zum docker_network-Modul.

Variablenname Beschreibung
docker_networks Array von Hashes, die die Docker-Netzwerkkonfiguration enthalten.

Container Images

Verwaltet alle Aspekte des Lebenszyklus eines Container-Images. Images werden über ein Array von Hashes verwaltet, die die Konfiguration des Container-Images enthalten. Für eine Referenz der verfügbaren Optionen siehe die Ansible-Dokumente zum docker_image-Modul.

Variablenname Beschreibung
docker_images Array von Hashes, die die Konfiguration der Docker-Images enthalten.

Container Ausführung

Verwaltet die Ausführung zur Laufzeit von Containern. Container werden über ein Array von Hashes verwaltet, die die Containerkonfiguration enthalten. Für eine Referenz der verfügbaren Optionen siehe die Ansible-Dokumente zum docker_container-Modul.

Variablenname Beschreibung
docker_containers Array von Hashes, die die Docker-Containerkonfiguration enthalten.

Beispiel-Playbook


Eine Vielzahl von Beispielen finden Sie im Testverzeichnis.

---
- name: docker
  hosts: all
  connection: local
  gather_facts: True
  tags:
   - 'docker'
  vars:
    docker_manage_py: true
    docker_manage_engine_repo: true
    docker_manage_engine_storage: true
    docker_manage_engine_users: true
    docker_manage_registry_credentials: true
    docker_manage_images: true
    docker_manage_containers: true
    docker_engine_version: '1.12.1'
    docker_engine_storage_driver: devicemapper
    docker_engine_storage_config:
      device: /dev/sdb
    docker_engine_env_vars:
      DOCKER_HOST: /var/run/docker.sock
      TLS_VERIFY: TRUE
    docker_engine_opts:
      dns:
        - '8.8.8.8'
        - '8.8.4.4'
    docker_engine_users:
      - vagrant
    docker_registry_credentials:
      - username: test
        password: testpass
        registry: registry.example.com
    docker_images:
      - name: nginx
        tag: '1.10.1-alpine'
    docker_containers:
      - name: nginx
        image: 'nginx:1.10.1-alpine'
    docker_networks:
      - name: testnet
        driver_options:
          com.docker.network.bridge.name: testnet1
        ipam_options:
          subnet: '10.255.13.1/24'
          gateway: '10.255.13.1'

Testen und Mitwirken


Bitte siehe das CONTRIBUTING.md Dokument im Repo.

Lizenz


MIT

Autoreninformation


Erstellt von Bob Killen, gepflegt vom Department of Advanced Research Computing and Technical Services der University of Michigan.

Über das Projekt

Installs and Manages the Docker Engine. Has support for managing Commercial vs Open Source, Storage, Credentialing and more.

Installieren
ansible-galaxy install arc-ts.docker
GitHub Repository
Lizenz
mit
Downloads
72
Besitzer