arc-ts.docker
Rola Ansible: Docker
Ta rola zarządza instalacją i konfiguracją silnika Docker z obsługą zarządzania poświadczeniami i dostosowywaniem przechowywania. Testowano ją na CentOS 7.3, Debianie Jessie, Ubuntu Trusty i Ubuntu Xenial. RHEL 7.x jest luźno wspierany.
Spis treści
- Wymagania
- Zależności
- Zmienne roli
- Przykładowy playbook
- Testowanie i współpraca
- Licencja
- Informacje o autorze
Wymagania
Ta rola wymaga Ansible w wersji 2.2 lub wyższej dla pełnej funkcjonalności.
Uwaga: Wersja 2.x.x
i wyższe tej roli tylko wspierają schemat wydania w stylu YY.MM
(np. docker-ce-17.03.1
). Aby zainstalować starsze wersje (np. docker-engine-1.13.1
), należy użyć wersji 1.x.x
tej roli.
Uwaga: Docker Inc. nie używa już publicznie dostępnych repozytoriów dla swojej edycji Enterprise. W wersji 2.0.0
tej roli wsparcie dla zarządzania repozytoriami enterprise zostało usunięte. Jednak nadal można zarządzać i instalować edycję Enterprise.
Zależności
Biblioteka Pythona docker
lub docker-py
jest wymagana dla wszystkich komponentów roli poza instalacją silnika Docker. Rola zadba o zainstalowanie odpowiedniej wersji, jeśli tak zostanie skonfigurowana.
Uwaga: Od 13/04/2017 Ansible nie wspiera biblioteki Pythona w wersji 2.0.2+. Wsparcie ma być w wersji Ansible 2.4. Więcej informacji można znaleźć w problemie na GitHubie: https://github.com/ansible/ansible/issues/22993
Zmienne roli
Kontrola wykonania
Włącza lub wyłącza konkretne komponenty roli Docker.
Nazwa zmiennej | Domyślnie | Opis |
---|---|---|
external_dependency_delay |
20 |
Czas w sekundach pomiędzy ponownymi próbami uzyskania dostępu do zewnętrznych zależności. |
external_dependency_retries |
6 |
Liczba prób uzyskania dostępu do zewnętrznej zależności. |
docker_manage_py |
true |
Zainstaluje bibliotekę Pythona Docker, albo z repozytoriów, albo z pip. Uwaga: To jest wymagane do zarządzania kontenerami, poświadczeniami, obrazami i sieciami. |
docker_manage_engine_repo |
true |
Zarządza repozytorium Docker. Zapewnia wsparcie zarówno dla repozytoriów Open Source, jak i komercyjnie wspieranych. |
docker_manage_engine_storage |
false |
Jeśli prawda, sterownik przechowywania dla silnika Docker będzie zarządzany przez rolę. Nie należy ręcznie dostarczać żadnych opcji przechowywania. |
docker_manage_engine_users |
true |
Tworzy i zarządza grupą docker, która ma prawo interakcji z Dockerem. |
docker_manage_registry_credentials |
true |
Zarządza poświadczeniami dla dostarczonej listy rejestrów. Uwaga: Wymaga biblioteki Docker. |
docker_manage_engine_networks |
true |
Włącza zarządzanie sieciami kontenerów Docker. Uwaga: Wymaga biblioteki Docker. |
docker_manage_images |
true |
Zarządza cyklem życia obrazów kontenerów. Uwaga: Wymaga biblioteki Docker. |
docker_manage_containers |
true |
Włącza zarządzanie wykonywaniem kontenerów Docker. Uwaga: Wymaga biblioteki Docker. |
Biblioteka Pythona Docker
Zarządza instalacją biblioteki Pythona Docker. Jeśli dostarczona wersja to 2.0.0
lub wyższa, starszy pakiet docker-py
zostanie usunięty, a nowy pakiet docker
zostanie zainstalowany w jego miejscu.
Zmienna | Domyślnie | Opcje | Opis |
---|---|---|---|
docker_py_install |
pip |
pip lub pkg |
Typ instalacji. Albo z pip, albo z pakietu. |
docker_py_pip_extra_args |
- | - | Dodatkowe argumenty do przekazania do pip podczas wykonania. |
docker_py_pip_upgrade |
true |
true lub false |
Pozwól na aktualizację pip podczas procesu instalacji. |
docker_py_version |
- | - | Wersja biblioteki docker do zainstalowania. Domyślnie najnowsza. |
Repozytorium silnika Docker
Kontroluje konfigurację repozytorium silnika Docker.
Nazwa zmiennej | Domyślnie | Opcje | Opis |
---|---|---|---|
docker_engine_architecture |
amd64 |
amd64 lub armhf |
Wskazuje zamierzona architekturę. Uwaga: armhf jest wspierane TYLKO na dystrybucjach opartych na Ubuntu i Debianie. |
docker_engine_channel |
stable |
stable lub edge |
Wskazuje, czy użyć stabilnego lub ewolucyjnego kanału wydania. Więcej informacji znajdziesz w dokumentacji instalacji Dockera |
docker_engine_edition |
ce |
ce lub ee |
Użyj edycji Community Edition (CE) lub Enterprise Edition (EE). Uwaga: Repozytorium edycji Enterprise NIE MOŻE być zarządzane przez tę rolę. |
docker_engine_repo_gpg_key_server |
sks-keyservers.net |
- | Serwer kluczy do użycia do weryfikacji gpg kluczy repozytoriów. |
docker_engine_repo_ce_deb_gpg_key |
0x8D81803C0EBFCD88 |
- | Klucz gpg używany dla repozytorium CE deb. |
docker_engine_repo_ce_rpm_gpg_key |
0xc52feb6b621e9f35 |
- | Klucz gpg używany dla repozytorium CE rpm. |
Konfiguracja przechowywania silnika Docker
Zarządza sterownikiem przechowywania silnika Docker, a w niektórych okolicznościach również przechowywaniem pod nim. Porównanie różnych opcji przechowywania jest poza zakresem tego dokumentu, jednak więcej informacji można znaleźć tutaj: https://docs.docker.com/engine/userguide/storagedriver/selectadriver/.
Uwaga: Dla wszystkich sterowników przechowywania storage_opts
muszą być przekazywane w formie tablicy przedmiotów. Po więcej informacji na temat dostępnych i specyficznych opcji przechowywania dla każdego sterownika, proszę zapoznać się z dokumentacją tutaj: https://docs.docker.com/v1.10/engine/reference/commandline/daemon/
Matriz wsparcia przechowywania:
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 |
Nazwa zmiennej | Domyślnie | Opcje | Opis |
---|---|---|---|
docker_engine_storage_driver |
- | aufs , btrfs , devicemapper , i overlay |
Sterownik przechowywania używany przez silnik Docker |
docker_engine_storage_config |
- | - | Hash zawierający informacje dla sterownika dostarczonego przez docker_engine_storage_driver |
aufs
Nazwa zmiennej | Domyślnie | Opis |
---|---|---|
docker_engine_storage_driver |
aufs |
- |
graph |
/var/lib/docker |
Główny katalog uruchamiania dockera |
storage_opts |
- | Opcjonalne opcje przechowywania do przekazania do Demona Dockera |
btrfs
Nazwa zmiennej | Domyślnie | Opis |
---|---|---|
docker_engine_storage_driver |
btrfs |
- |
device |
- | WYMAGANE Urządzenie lub partycja (np. /dev/sdb ), które ma być używane i zarządzane przez Docker. |
graph |
/var/lib/docker |
Główny katalog uruchamiania dockera |
mkfs_opts |
- | Dodatkowe parametry do przekazania do mkfs.btrfs podczas tworzenia wolumenu. |
mount_opts |
defaults |
Parametry montowania dla wolumenu btrfs. |
storage_opts |
- | Opcjonalne opcje przechowywania do przekazania do Demona Dockera |
devicemapper (lvm-direct)
Uwaga: Nie wszystkie błędy są poprawnie rejestrowane podczas tworzenia thinpool. Istnieje zadanie weryfikacji, które przerywa działanie na końcu konfiguracji lvm jeśli zostanie wykryte jako niepoprawnie ustawione. Aby ponownie uruchomić rolę, grupa woluminów lvm musi być ręcznie usunięta (np. vgremove <vgname>
). Jest to celowe zachowanie, aby zapobiec przypadkowemu utracie danych.
Nazwa zmiennej | Domyślnie | Opis |
---|---|---|
docker_engine_storage_driver |
devicemapper |
- |
device |
- | WYMAGANE Urządzenie lub partycja (np. /dev/sdb ), które ma być używane i zarządzane przez Docker. |
vg_name |
docker-vg |
Nazwa Grupy Woluminów Dockera. |
vg_opts |
- | Opcjonalne parametry do użycia podczas tworzenia Grupy Woluminów. |
lv_name |
thinpool |
Nazwa wolumenu logicznego thinpool. |
lv_data_opts |
--wipesignatures y |
Parametry do przekazania podczas tworzenia wolumenu logicznego danych. |
lv_metadata_opts |
--wipesignatures y |
Parametry do przekazania podczas tworzenia wolumenu logicznego metadanych. |
thinpool_autoextend_threshold |
80 |
Procent pełny, który definiuje, kiedy wolumen logiczny thin pool powinien być rozszerzany. |
thinpool_autoextend_percent |
20 |
Procent (w odniesieniu do jego aktualnego rozmiaru) dodatkowej przestrzeni, która powinna być dodana do wolumenu logicznego thin pool z Grupy Woluminów. |
data_share |
95 |
Procent przestrzeni Grupy Woluminów, który ma być przypisany do wolumenu logicznego danych. |
metadata_share |
1 |
Procent przestrzeni Grupy Woluminów, który ma być przypisany do wolumenu logicznego metadanych. |
storage_opts |
[ 'dm.use_deferred_removal=true'] |
Opcjonalne opcje przechowywania do przekazania do Demona Dockera |
overlay
Nazwa zmiennej | Domyślnie | Opis |
---|---|---|
docker_engine_storage_driver |
overlay |
- |
graph |
/var/lib/docker |
Główny katalog uruchamiania dockera |
storage_opts |
- | Opcjonalne opcje przechowywania do przekazania do Demona Dockera |
overlay2
Nazwa zmiennej | Domyślnie | Opis |
---|---|---|
docker_engine_storage_driver |
overlay2 |
- |
graph |
/var/lib/docker |
Główny katalog uruchamiania dockera |
storage_opts |
- | Opcjonalne opcje przechowywania do przekazania do Demona Dockera |
Silnik Docker
Te parametry kontrolują silnik Docker i demona silnika Docker.
Uwaga: Jeśli docker_manage_engine_storage
jest włączone, storage-opt
nie powinno być dostarczane w haszach docker_engine_opts
, a zamiast tego powinno być kontrolowane przez docker_engine_storage_config.storage_opts
.
Nazwa zmiennej | Domyślnie | Opis |
---|---|---|
docker_engine_version |
- | Wersja silnika Docker do zainstalowania. Jeśli nie jest dostarczona, zainstalowana zostanie najnowsza. |
docker_engine_env_vars |
- | Hash par klucz-wartość do przekazania do silnika Docker jako zmienne środowiskowe. |
docker_engine_opts |
- | Hash par klucz-[tablica wartości], które będą używane jako opcje silnika Dockera. np. dns: [ '8.8.8.8', '8.8.4.4'] |
Użytkownicy i grupy silnika Docker
Zarządza dostępem do grupy docker na hoście.
Nazwa zmiennej | Domyślnie | Opis |
---|---|---|
docker_engine_users |
- | Tablica nazw użytkowników, którzy mają być dodani do grupy docker. Ci użytkownicy będą mogli wykonywać polecenia docker bez uprawnień sudo. |
Poświadczenia rejestru silnika Docker
Zarządza uwierzytelnianiem do rejestrów Dockera. Konfiguracja jest dostarczana w formie tablicy haszy, przy czym każdy hasz zawiera pary klucz/wartość opcji dostępnych w module Logowania Dockera. Aby uzyskać pełną listę opcji i domyślnych wartości, zapoznaj się z dokumentacją Ansible na temat modułu docker_login.
Nazwa zmiennej | Opis |
---|---|
docker_registry_credentials |
Tablica haszy zawierających konfigurację rejestru Dockera. |
Sieci kontenerów
Zarządza tworzeniem i usuwaniem sieci Dockera. Sieci są zarządzane za pomocą tablicy haszy, przy czym każdy hasz zawiera konfigurację sieci zgodnie z dostępnymi opcjami modułu sieci Dockera. Aby uzyskać pełną listę opcji i domyślnych wartości, zapoznaj się z dokumentacją Ansible na temat modułu docker_network.
Nazwa zmiennej | Opis |
---|---|
docker_networks |
Tablica haszy zawierających konfigurację sieci Dockera. |
Obrazy kontenerów
Zarządza wszystkimi aspektami cyklu życia obrazu kontenera. Obrazy są zarządzane za pomocą tablicy haszy, które zawierają konfigurację obrazów kontenerów. Aby zapoznać się z dostępnymi opcjami, zobacz dokumentację Ansible dotyczącą modułu docker_image.
Nazwa zmiennej | Opis |
---|---|
docker_images |
Tablica haszy zawierających konfigurację obrazów Dockera. |
Wykonanie kontenerów
Zarządza uruchamianiem kontenerów. Kontenery są zarządzane za pomocą tablicy haszy, które zawierają konfigurację kontenerów. Aby zapoznać się z dostępnymi opcjami, zobacz dokumentację Ansible dotyczącą modułu docker_container.
Nazwa zmiennej | Opis |
---|---|
docker_containers |
Tablica haszy zawierających konfigurację kontenerów Dockera. |
Przykładowy playbook
Zróżnicowane przykłady można znaleźć w katalogu testowym.
---
- 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'
Testowanie i współpraca
Proszę zapoznać się z dokumentem CONTRIBUTING.md w repozytorium.
Licencja
MIT
Informacje o autorze
Stworzone przez Boba Killena, utrzymywane przez Departament Zaawansowanych Badań Komputerowych i Usług Technicznych Uniwersytetu 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