docker_swarm – Управление кластером Swarm
Новое в версии 2.7.
Описание
- Создание нового кластера Swarm.
- Добавление/удаление узлов или менеджеров в существующий кластер.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- python >= 2.7
- docker-py >= 1.10.0
- Обратите внимание, что модуль Python docker-py был заменён на docker (подробнее см. здесь). Для Python 2.6 необходимо использовать
docker-py. В противном случае рекомендуется установить модуль Pythondocker. Обратите внимание, что оба модуля не должны быть установлены одновременно. Также обратите внимание, что при установке и последующем удалении одного из модулей другой может перестать работать, и потребуется его повторная установка. - Docker API >= 1.25
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| advertise_addr строка | Рекламируемый внешнему доступу адрес, который будет объявлен другим узлам. Это может быть сочетание адреса/порта в формате 192.168.1.1:4567, или интерфейс, после которого следует номер порта, как, например, eth0:4567.Если номер порта опущен, используется номер порта из адреса прослушивания. Если advertise_addr не указан, он будет автоматически определён, когда это возможно. | |
| api_version - | По умолчанию: "auto" | Версия Docker API, работающего на Docker хосте. По умолчанию используется самая последняя версия API, поддерживаемая docker-py. Если значение не указано в задаче, вместо него будет использовано значение переменной окружения DOCKER_API_VERSION. Если переменная окружения не задана, будет использовано значение по умолчанию.псевдонимы: docker_api_version |
| autolock_managers логическое значение |
| Если установлено, генерируется ключ и используется для блокировки данных, хранящихся на менеджерах. Значение по умолчанию Docker — no. |
| ca_force_rotate целое число | Целое число, предназначенное для принудительной генерации нового сертификата и ключа CA узел, если они не были указаны. Значение по умолчанию Docker — 0.Требуется версия API >= 1.30. | |
| cacert_path - | Использование сертификата CA при проверке сервера, указав путь к файлу сертификата CA. Если значение не указано в задаче и переменная окружения DOCKER_CERT_PATH установлена, будет использован файл ca.pem из каталога, указанного в переменной окружения DOCKER_CERT_PATH.псевдонимы: tls_ca_cert | |
| cert_path - | Путь к файлу TLS-сертификата клиента. Если значение не указано в задаче и переменная окружения DOCKER_CERT_PATH установлена, будет использован файл cert.pem из каталога, указанного в переменной окружения DOCKER_CERT_PATH.псевдонимы: tls_client_cert | |
| debug логическое значение |
| Режим отладки |
| dispatcher_heartbeat_period целое число | Задержка, в течение которой агент отправляет пульс диспетчеру. Значение по умолчанию Docker — 5s. | |
| docker_host - | По умолчанию: "unix://var/run/docker.sock" | URL или путь к Unix-сокету, используемый для подключения к Docker API. Для подключения к удалённому хосту укажите строку TCP-соединения. Например, 'tcp://192.0.2.23:2376'. Если для шифрования соединения используется TLS, модуль автоматически заменит 'tcp' в URL соединения на 'https'. Если значение не указано в задаче, вместо него будет использовано значение переменной окружения DOCKER_HOST. Если переменная окружения не задана, будет использовано значение по умолчанию.псевдонимы: docker_url |
| election_tick целое число | Количество тиков (в секундах), необходимых без лидера для запуска нового голосования. Значение по умолчанию Docker — 10s. | |
| force логическое значение |
| Используется со значением состояния present, чтобы принудительно создать новый Swarm, даже если вы уже являетесь частью одного.Используется со значением состояния absent, чтобы покинуть Swarm, даже если этот узел является менеджером. |
| heartbeat_tick целое число | Количество тиков (в секундах) между каждым пульсом. Значение по умолчанию Docker — 1s. | |
| join_token строка | Токен Swarm, используемый для присоединения к кластеру Swarm. Используется со значением state=join. | |
| keep_old_snapshots целое число | Количество снимков, которые будут сохранены за пределами текущего снимка. Значение по умолчанию Docker — 0. | |
| key_path - | Путь к файлу ключа TLS клиента. Если значение не указано в задаче и переменная окружения DOCKER_CERT_PATH установлена, будет использован файл key.pem из каталога, указанного в переменной окружения DOCKER_CERT_PATH.псевдонимы: tls_client_key | |
| labels словарь | Пользовательские данные в формате ключ/значение. Операции с метками в этом модуле применяются к кластеру Docker Swarm. Для добавления/изменения/удаления меток узлов Swarm используйте модуль docker_node. Требуется версия API >= 1.32. | |
| listen_addr строка | По умолчанию: "0.0.0.0:2377" | Адрес прослушивания, используемый для меж-менеджерного взаимодействия. Это может быть сочетание адреса/порта в формате 192.168.1.1:4567, или интерфейс, после которого следует номер порта, как, например, eth0:4567.Если номер порта опущен, используется порт прослушивания по умолчанию для Swarm. |
| log_entries_for_slow_followers целое число | Количество записей журнала, которые будут храниться для синхронизации медленных последователей после создания снимка. | |
| name строка | Имя Swarm. | |
| node_cert_expiry целое число | Автоматическое истечение срока действия сертификатов узлов. Значение по умолчанию Docker — 3months. | |
| node_id строка | Идентификатор узла Swarm, который нужно удалить. Используется со значением state=remove. | |
| remote_addrs список | Удалённый адрес одного или нескольких узлов-менеджеров существующего Swarm для подключения. Используется со значением state=join. | |
| rotate_manager_token логическое значение |
| Обновить токен присоединения менеджера. |
| rotate_worker_token логическое значение |
| Обновить токен присоединения рабочего узла. |
| signing_ca_cert строка | Желаемый сертификат CA для подписи всех TLS-сертификатов узлов Swarm в формате PEM. Это не должен быть путь к сертификату, а содержимое сертификата. Требуется версия API >= 1.30. | |
| signing_ca_key строка | Желаемый ключ CA для подписи всех TLS-сертификатов узлов Swarm в формате PEM. Это не должен быть путь к ключу, а содержимое ключа. Требуется версия API >= 1.30. | |
| snapshot_interval целое число | Количество записей журнала между снимками. Значение по умолчанию Docker — 10000. | |
| ssl_version - | Укажите допустимое число версии SSL. Значение по умолчанию определяется модулем ssl.py. Если значение не указано в задаче, вместо него будет использовано значение переменной окружения DOCKER_SSL_VERSION. | |
| state строка / обязательно |
| Установите значение present, чтобы создать/обновить новый кластер.Установите значение join, чтобы присоединиться к существующему кластеру.Установите значение absent, чтобы покинуть существующий кластер.Установите значение remove, чтобы удалить отсутствующий узел из кластера. Обратите внимание, что для удаления требуется docker-py >= 2.4.0.Установите значение inspect, чтобы отобразить информацию о Swarm. |
| task_history_retention_limit целое число | Максимальное количество задач в истории. Значение по умолчанию в Docker: 5. | |
| timeout - | По умолчанию: 60 | Максимальное время ожидания ответа от API в секундах. Если значение не указано в задаче, будет использовано значение переменной окружения DOCKER_TIMEOUT. Если переменная окружения не установлена, будет использовано значение по умолчанию. |
| tls логическое |
| Защитить соединение с API с помощью TLS без проверки подлинности сервера Docker. Если значение не указано в задаче, будет использовано значение переменной окружения DOCKER_TLS. Если переменная окружения не установлена, будет использовано значение по умолчанию. |
| tls_hostname - | По умолчанию: "localhost" | При проверке подлинности сервера Docker укажите ожидаемое имя сервера. Если значение не указано в задаче, будет использовано значение переменной окружения DOCKER_TLS_HOSTNAME. Если переменная окружения не установлена, будет использовано значение по умолчанию. |
| tls_verify логическое |
| Защитить соединение с API с помощью TLS и проверить подлинность сервера Docker. Если значение не указано в задаче, будет использовано значение переменной окружения DOCKER_TLS_VERIFY. Если переменная окружения не установлена, будет использовано значение по умолчанию. |
Примечания
Примечание
- Подключитесь к демону Docker, предоставив параметры с каждой задачей или определив переменные окружения. Вы можете определить DOCKER_HOST, DOCKER_TLS_HOSTNAME, DOCKER_API_VERSION, DOCKER_CERT_PATH, DOCKER_SSL_VERSION, DOCKER_TLS, DOCKER_TLS_VERIFY и DOCKER_TIMEOUT. Если вы используете docker machine, запустите скрипт, поставляемый с продуктом, для настройки среды. Он установит эти переменные за вас. Дополнительные сведения см. в https://docker-py.readthedocs.io/en/stable/machine/.
- При подключении к демону Docker с TLS, возможно, потребуется установить дополнительные пакеты Python. Для Docker SDK для Python версии 2.4 или более поздней это можно сделать, установив
docker[tls]с помощью pip. - Обратите внимание, что Docker SDK для Python позволяет указать путь к конфигурации Docker только для очень немногих функций. В целом, он будет использовать
$HOME/docker/config.json, если переменная окруженияDOCKER_CONFIGне указана, и$DOCKER_CONFIG/config.json, в противном случае.
Примеры
- name: Init a new swarm with default parameters
docker_swarm:
state: present
- name: Update swarm configuration
docker_swarm:
state: present
election_tick: 5
- name: Add nodes
docker_swarm:
state: join
advertise_addr: 192.168.1.2
join_token: SWMTKN-1--xxxxx
remote_addrs: [ '192.168.1.1:2377' ]
- name: Leave swarm for a node
docker_swarm:
state: absent
- name: Remove a swarm manager
docker_swarm:
state: absent
force: true
- name: Remove node from swarm
docker_swarm:
state: remove
node_id: mynode
- name: Inspect swarm
docker_swarm:
state: inspect
register: swarm_info
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие являются полями, уникальными для данного модуля:
| Ключ | Возвращаемое значение | Описание | ||
|---|---|---|---|---|
| actions список | при ошибке выполнения действия. | Предоставляет действия, выполненные в кластере. | ||
| swarm_facts сложное | успех | Информация о кластере. | ||
| JoinTokens сложное | успех | Токены для подключения к кластеру. | ||
| Manager строка | успех | Токен для создания нового узла типа manager | ||
| Worker строка | успех | Токен для создания нового узла типа worker | ||
Статус
- Этот модуль не гарантирует обратную совместимость интерфейса. [превью]
- Этот модуль поддерживается сообществом Ansible. [сообщество]
Авторы
- Thierry Bouvet (@tbouvet)
Подсказка
Если вы заметили какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.7/modules/docker_swarm_module.html