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


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.

O projekcie

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

Zainstaluj
ansible-galaxy install arc-ts.docker
Licencja
mit
Pobrania
72
Właściciel