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