docker

Ansible Роль: Docker

Эта роль управляет установкой и настройкой Docker Engine с поддержкой управления учетными данными и настраиваемого хранения. Она была протестирована на CentOS 7.3, Debian Jessie, Ubuntu Trusty и Ubuntu Xenial. Поддержка RHEL 7.x есть, но она не полная.

Указатель


Требования


Эта роль зависит от Ansible 2.2 или более новой версии для полной функциональности.

ЗАМЕТКА: Версия 2.x.x и выше этой роли Только поддерживает схему выпуска в стиле YY.MM (например, docker-ce-17.03.1). Для более старых версий (например, docker-engine-1.13.1) используйте версию 1.x.x этой роли.

ЗАМЕТКА: Docker Inc. больше не использует общедоступные репозитории для своей корпоративной версии. В версии 2.0.0 этой роли поддержка управления репозиториями для предприятий была удалена. Тем не менее, она по-прежнему может управлять и устанавливать корпоративную версию.

Зависимости


Библиотека Python docker или docker-py требуется для любых компонентов роли, помимо установки Docker Engine. Однако роль позаботится о установке нужной версии, если это будет настроено.

ЗАМЕТКА: На 13 апреля 2017 года Ansible не поддерживает библиотеку Python версии 2.0.2 и выше. Поддержка ожидается в релизе Ansible 2.4. Для получения дополнительной информации, пожалуйста, смотрите проблему на GitHub здесь: https://github.com/ansible/ansible/issues/22993

Переменные роли


Контроль выполнения

Включает или отключает определенные компоненты роли Docker.

Название переменной Значение по умолчанию Описание
external_dependency_delay 20 Время в секундах между попытками внешней зависимости. (репозитории, серверы ключей и т.д.)
external_dependency_retries 6 Количество попыток доступа к внешней зависимости.
docker_manage_py true Устанавливает библиотеку Python Docker, либо из репозитория, либо через pip. Замечание: Это необходимо для управления контейнерами, учетными данными, образами и сетями.
docker_manage_engine_repo true Управляет репозиторием Docker. Поддерживает как открытые, так и коммерчески поддерживаемые репозитории.
docker_manage_engine_storage false Если true, драйвер хранения для Docker Engine будет управляться ролью. Не должно быть предоставлено ни драйвера, ни настроек хранения вручную.
docker_manage_engine_users true Создает и управляет группой docker, которая получает права на взаимодействие с Docker.
docker_manage_registry_credentials true Управляет учетными данными для предоставленного списка реестров. Замечание: Требуется библиотека docker.
docker_manage_engine_networks true Включает управление сетями контейнеров Docker. Замечание: Требуется библиотека docker.
docker_manage_images true Управляет жизненным циклом образов контейнеров. Замечание: Требуется библиотека docker.
docker_manage_containers true Включает управление выполнением контейнеров Docker. Замечание: Требуется библиотека docker.

Библиотека Python Docker

Управляет установкой библиотеки Python Docker. Если предоставлена версия 2.0.0 или выше, более старая версия docker-py будет удалена, а вместо нее будет установлена новая версия docker.

Переменная Значение по умолчанию Опции Описание
docker_py_install pip pip или pkg Тип установки. Либо из pip, либо из пакета.
docker_py_pip_extra_args - - Дополнительные аргументы для передачи в pip во время выполнения. e.g. -i <локальный pypi-мираж>
docker_py_pip_upgrade true true или false Позволяет обновлять pip во время процесса установки.
docker_py_version - - Версия библиотеки docker, которую нужно установить. По умолчанию последняя.

Репозиторий Docker Engine

Управляет конфигурацией репозитория Docker Engine.

Название переменной Значение по умолчанию Опции Описание
docker_engine_architecture amd64 amd64 или armhf Указывает целевую архитектуру. ЗАМЕТКА: armhf поддерживается Только на Ubuntu и Debian.
docker_engine_channel stable stable или edge Указывает, использовать ли канал выпуска stable или edge. Для получения дополнительной информации см. Документацию по установке Docker
docker_engine_edition ce ce или ee Используйте Community Edition (CE) или Enterprise Edition (EE). ЗАМЕТКА: Репозиторий Enterprise Edition не может управляться данной ролью.
docker_engine_repo_gpg_key_server sks-keyservers.net - Сервер ключей для проверки подлинности gpg ключей репозитория.
docker_engine_repo_ce_deb_gpg_key 0x8D81803C0EBFCD88 - gpg ключ для ce deb репозитория.
docker_engine_repo_ce_rpm_gpg_key 0xc52feb6b621e9f35 - gpg ключ для ce rpm репозитория.

Настройки хранения Docker Engine

Управляет драйвером хранения Docker Engine и в некоторых случаях хранением под ним. Сравнение различных опций хранения выходит за рамки этого документа; тем не менее, дополнительную информацию можно найти здесь: https://docs.docker.com/engine/userguide/storagedriver/selectadriver/.

Замечание: Для всех драйверов хранения параметры storage_opts должны передаваться в виде массива элементов. Для получения дополнительной информации о доступных и конкретных параметрах хранения для каждого драйвера смотрите документацию здесь: https://docs.docker.com/v1.10/engine/reference/commandline/daemon/

Матрица поддержки хранения:

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
Название переменной Значение по умолчанию Опции Описание
docker_engine_storage_driver - aufs, btrfs, devicemapper, и overlay Драйвер хранения для использования с Docker Engine
docker_engine_storage_config - - Хэш с информацией для драйвера, указанного в docker_engine_storage_driver

aufs

Название переменной Значение по умолчанию Описание
docker_engine_storage_driver aufs -
graph /var/lib/docker Корневая директория для работы Docker
storage_opts - Опциональные параметры хранения, передаваемые демону Docker

btrfs

Название переменной Значение по умолчанию Описание
docker_engine_storage_driver btrfs -
device - ТРЕБУЕТСЯ Устройство или раздел (например, /dev/sdb), который предполагается использовать и управлять с помощью Docker.
graph /var/lib/docker Корневая директория для работы Docker
mkfs_opts - Дополнительные параметры для передачи в mkfs.btrfs во время создания тома.
mount_opts defaults Параметры монтирования для использования для тома btrfs Docker.
storage_opts - Опциональные параметры для передачи демону Docker

devicemapper (lvm-direct)

Замечание: Не все ошибки правильно фиксируются во время создания thinpool. Существует задача проверки, которая прерывает выполнение в конце настройки lvm, если она была обнаружена как неправильно настроенная. Для повторного запуска роли группа объемов lvm должна быть удалена вручную (vgremove <vgname>). Это намеренное поведение для предотвращения случайной потери данных.

Название переменной Значение по умолчанию Описание
docker_engine_storage_driver devicemapper -
device - ТРЕБУЕТСЯ Устройство или раздел (например, /dev/sdb), который предполагается использовать и управлять с помощью Docker.
vg_name docker-vg Имя группы томов Docker.
vg_opts - Опционные параметры для использования во время создания группы томов.
lv_name thinpool Имя логического тома thinpool.
lv_data_opts --wipesignatures y Параметры для передачи во время создания логического тома данных.
lv_metadata_opts --wipesignatures y Параметры для передачи во время создания логического тома метаданных.
thinpool_autoextend_threshold 80 Процентное значение, определяющее, когда логический том thin pool должен быть расширен.
thinpool_autoextend_percent 20 Значительное процентное значение (по сравнению с его текущим размером), которое будет добавлено к логическому тому thin pool из группы томов.
data_share 95 Процентное значение места группы томов, которое будет выделено логическому тому данных.
metadata_share 1 Процентное значение места группы томов, которое будет выделено логическому тому метаданных.
storage_opts [ 'dm.use_deferred_removal=true'] Опционерные параметры для передачи демону Docker

overlay

Название переменной Значение по умолчанию Описание
docker_engine_storage_driver overlay -
graph /var/lib/docker Корневая директория для работы Docker
storage_opts - Опциональные параметры для передачи демону Docker

overlay2

Название переменной Значение по умолчанию Описание
docker_engine_storage_driver overlay2 -
graph /var/lib/docker Корневая директория для работы Docker
storage_opts - Опциональные параметры для передачи демону Docker

Docker Engine

Эти параметры контролируют Docker Engine и демон Docker Engine.

Замечание: Если docker_manage_engine_storage включен, параметр storage-opt не должен быть указан в хэше docker_engine_opts, и вместо этого должен управляться через docker_engine_storage_config.storage_opts.

Название переменной Значение по умолчанию Описание
docker_engine_version - Версия Docker Engine, которую нужно установить. Если не указана, будет установлена последняя.
docker_engine_env_vars - Хэш пар ключ-значение, передаваемых в Docker Engine в виде переменных окружения.
docker_engine_opts - Хэш пар ключ-[массив значений], которые будут использоваться как опции Docker Engine. Например, dns: [ '8.8.8.8', '8.8.4.4']

Пользователи и группы Docker Engine

Управляет доступом к группе docker на хосте.

Название переменной Значение по умолчанию Описание
docker_engine_users - Массив имен пользователей, которые будут добавлены в группу docker. Эти пользователи смогут выполнять docker без прав sudo.

Учетные данные реестра Docker Engine

Управляет аутентификацией к реестрам Docker. Конфигурация предоставляется через массив хэшей, каждый из которых содержит пары ключ/значение доступных опций для модуля входа Docker. Для полного списка опций и значений по умолчанию смотрите документацию Ansible по модулю docker_login.

Название переменной Описание
docker_registry_credentials Массив хэшей, содержащих конфигурацию реестра Docker.

Сети контейнеров

Управляет созданием и удалением сетей Docker. Сети управляются через массив хэшей, каждый из которых содержит конфигурацию сети в соответствии с доступными опциями модуля Docker Network. Для получения полного списка опций и значений по умолчанию смотрите документацию Ansible по модулю docker_network.

Название переменной Описание
docker_networks Массив хэшей, содержащих конфигурацию сети Docker.

Образы контейнеров

Управляет всеми аспектами жизненного цикла образа контейнера. Образы управляются через массив хэшей, содержащих конфигурацию образа контейнера. Для справки по доступным опциям смотрите документацию Ansible по модулю docker_image.

Название переменной Описание
docker_images Массив хэшей, содержащих конфигурацию образов Docker.

Выполнение контейнеров

Управляет выполнением контейнеров. Контейнеры управляются через массив хэшей, содержащих конфигурацию контейнера. Для справки по доступным опциям смотрите документацию Ansible по модулю docker_container.

Название переменной Описание
docker_containers Массив хэшей, содержащих конфигурацию контейнера Docker.

Пример плейбука


Разнообразные примеры можно найти в каталоге tests.

---
- 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'

Тестирование и участие


Пожалуйста, смотрите документ CONTRIBUTING.md в репозитории.

Лицензия


MIT

Информация об авторе


Создано Бобом Килленом, поддерживается Департаментом Advanced Research Computing and Technical Services Университета Мичигана.

О проекте

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

Установить
ansible-galaxy install arc-ts/ansible-role-docker
Лицензия
mit
Загрузки
59
Владелец