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.
Inhaltsverzeichnis
- Anforderungen
- Abhängigkeiten
- Rollenvariablen
- Beispiel-Playbook
- Testen und Mitwirken
- Lizenz
- Autoreninformation
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.
Installs and Manages the Docker Engine. Has support for managing Commercial vs Open Source, Storage, Credentialing and more.
ansible-galaxy install arc-ts.docker