docker_swarm – Управление кластером Swarm
Новое в версии 2.7.
Обзор
- Создание нового кластера Swarm.
- Добавление/удаление узлов или менеджеров в существующий кластер.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- API Docker >= 1.25
- Docker SDK для Python: Обратите внимание, что модуль Python docker-py был заменён на docker (подробнее см. здесь). Для Python 2.6 необходимо использовать
docker-py. В противном случае рекомендуется установить модуль Pythondocker. Обратите внимание, что оба модуля не должны устанавливаться одновременно. Также обратите внимание, что если оба модуля установлены, а один из них удалён, другой может перестать работать, и потребуется его повторная установка. - Docker SDK для Python >= 1.10.0 (для Python 2.6 используйте docker-py)
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| advertise_addr строка | Адрес, объявляемый другим узлам для внешнего доступа. Это может быть сочетание адреса и порта в формате 192.168.1.1:4567, или интерфейс, за которым следует номер порта, например eth0:4567.Если номер порта опущен, используется номер порта из адреса прослушивания. Если advertise_addr не указан, он будет автоматически обнаружен, когда это возможно. Используется только при инициализации или присоединении к рою. По этой причине он не учитывается при проверке идемпотентности. | |
| api_version строка | По умолчанию: "auto" | Версия Docker API, работающая на Docker хосте. По умолчанию — последняя версия API, поддерживаемая Docker SDK для Python и демоном docker. Если значение не указано в задаче, будет использоваться значение переменной окружения DOCKER_API_VERSION. Если переменная окружения не задана, будет использовано значение по умолчанию.псевдонимы: docker_api_version |
| autolock_managers логическое значение |
| Если установлено, генерируется ключ для блокировки данных, хранящихся на менеджерах. Значение по умолчанию Docker равно no.
docker_swarm_info может быть использован для получения ключа разблокировки. |
| ca_cert путь | Использование сертификата CA при проверке сервера, указав путь к файлу сертификата CA. Если значение не указано в задаче и установлена переменная окружения DOCKER_CERT_PATH, будет использован файл ca.pem из каталога, указанного в переменной окружения DOCKER_CERT_PATH.псевдонимы: tls_ca_cert, cacert_path | |
| ca_force_rotate целое число | Целое число, предназначенное для принудительного генерации нового сертификата и ключа подписывающей CA, если таковые не указаны. Значение по умолчанию Docker равно 0.Требуется версия API >= 1.30. | |
| client_cert путь | Путь к файлу сертификата TLS клиента. Если значение не указано в задаче и установлена переменная окружения DOCKER_CERT_PATH, будет использован файл cert.pem из каталога, указанного в переменной окружения DOCKER_CERT_PATH.псевдонимы: tls_client_cert, cert_path | |
| client_key путь | Путь к файлу ключа TLS клиента. Если значение не указано в задаче и установлена переменная окружения DOCKER_CERT_PATH, будет использован файл key.pem из каталога, указанного в переменной окружения DOCKER_CERT_PATH.псевдонимы: tls_client_key, key_path | |
| debug логическое значение |
| Режим отладки |
| default_addr_pool список / элементы=строка добавлено в 2.8 | Пул адресов по умолчанию в формате CIDR. Используется только при инициализации роя. По этой причине он не учитывается при проверке идемпотентности. Требуется версия API >= 1.39. | |
| 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 для принудительной создания нового роя, даже если он уже существует.Используется со значением absent для выхода из роя, даже если этот узел является менеджером. |
| heartbeat_tick целое число | Количество тиков (в секундах) между каждым пульсом. Значение по умолчанию Docker равно 1s. | |
| join_token строка | Токен роя, используемый для присоединения к кластеру роя. Используется со значением state=join. | |
| keep_old_snapshots целое число | Количество снимков для сохранения сверх текущего снимка. Значение по умолчанию Docker равно 0. | |
| labels словарь | Пользовательские метаданные ключ/значение. Операции с метками в этом модуле применяются к кластеру docker swarm. Используйте модуль docker_node для добавления, изменения или удаления меток узлов роя. Требуется версия API >= 1.32. | |
| listen_addr строка | По умолчанию: "0.0.0.0:2377" | Адрес прослушивания, используемый для межменеджерного взаимодействия. Это может быть сочетание адреса и порта в формате 192.168.1.1:4567, или интерфейс, за которым следует номер порта, например eth0:4567.Если номер порта опущен, используется порт прослушивания роя по умолчанию. Используется только при инициализации или присоединении к рою. По этой причине он не учитывается при проверке идемпотентности. |
| log_entries_for_slow_followers целое число | Количество записей журнала, которые необходимо сохранить для синхронизации медленных последователей после создания снимка. | |
| name строка | Имя роя. | |
| node_cert_expiry целое число | Автоматическое истечение срока действия сертификатов узлов. Значение по умолчанию Docker равно 3months. | |
| node_id строка | Идентификатор узла роя для удаления. Используется со значением state=remove. | |
| remote_addrs список / элементы=строка | Удалённый адрес одного или нескольких менеджерских узлов существующего роя для подключения. Используется со значением state=join. | |
| rotate_manager_token логическое значение |
| Обновить токен присоединения менеджера. |
| rotate_worker_token логическое значение |
| Обновить токен присоединения рабочего узла. |
| signing_ca_cert строка | Желаемый сертификат подписывающей CA для всех сертификатов лист узлов роя в формате PEM. Это не должен быть путь к сертификату, а содержимое сертификата. Требуется версия API >= 1.30. | |
| signing_ca_key строка | Желаемый ключ подписывающей CA для всех сертификатов лист узлов роя в формате PEM. Это не должен быть путь к ключу, а содержимое ключа. Требуется версия API >= 1.30. | |
| snapshot_interval целое число | Количество записей журнала между снимками. Значение по умолчанию Docker равно 10000. |
| ssl_version строка | Укажите допустимый номер версии SSL. Значение по умолчанию определяется модулем ssl.py. Если значение не указано в задаче, вместо него будет использовано значение переменной среды DOCKER_SSL_VERSION. | |
| state строка |
| Установите значение present, чтобы создать/обновить новый кластер.Установите значение join, чтобы присоединиться к существующему кластеру.Установите значение absent, чтобы выйти из существующего кластера.Установите значение remove, чтобы удалить отсутствующий узел из кластера. Обратите внимание, что для удаления требуется Docker SDK for Python >= 2.4.0.Установите значение inspect, чтобы отобразить информацию о Swarm. |
| subnet_size целое число добавлен в 2.8 | Длина маски подсети для пула адресов по умолчанию. Используется только при инициализации Swarm. По этой причине не учитывается при проверке идемпотентности. Требуется версия API >= 1.39. | |
| task_history_retention_limit целое число | Максимальное количество сохранённой истории задач. Значение по умолчанию Docker — 5. | |
| timeout целое число | По умолчанию: 60 | Максимальное время в секундах ожидания ответа от API. Если значение не указано в задаче, вместо него будет использовано значение переменной среды DOCKER_TIMEOUT. Если переменная среды не задана, используется значение по умолчанию. |
| tls логическое значение |
| Защитите соединение с API с помощью TLS без проверки подлинности хоста Docker. Обратите внимание, что если validate_certs также установлено в значение yes, то оно будет иметь приоритет.Если значение не указано в задаче, вместо него будет использовано значение переменной среды DOCKER_TLS. Если переменная среды не задана, используется значение по умолчанию. |
| tls_hostname строка | По умолчанию: "localhost" | При проверке подлинности хоста Docker укажите ожидаемое имя сервера. Если значение не указано в задаче, вместо него будет использовано значение переменной среды DOCKER_TLS_HOSTNAME. Если переменная среды не задана, используется значение по умолчанию. |
| validate_certs логическое значение |
| Защитите соединение с API с помощью TLS и проверьте подлинность хоста Docker. Если значение не указано в задаче, вместо него будет использовано значение переменной среды DOCKER_TLS_VERIFY. Если переменная среды не задана, используется значение по умолчанию.Псевдонимы: 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://docs.docker.com/machine/reference/env/. - При подключении к демону Docker с помощью TLS может потребоваться установка дополнительных пакетов Python. Для Docker SDK for Python версии 2.4 или новее это можно сделать, установив
docker[tls]с помощью pip. - Обратите внимание, что Docker SDK for 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. | ||
| swarm_facts словарь | успех | Информация о Swarm. | ||
| JoinTokens словарь | успех | Токены для подключения к Swarm. | ||
| Manager строка | успех | Токен для создания нового узла типа *manager* | ||
| Worker строка | успех | Токен для создания нового узла типа *worker* | ||
| UnlockKey строка | при успехе, если autolock_managers равно true и Swarm инициализирован, или если autolock_managers изменился. | Ключ разблокировки Swarm, если autolock_managers равно true. | ||
Состояние
- Для этого модуля не гарантируется обратная совместимость интерфейса. [превью]
- Этот модуль поддерживается сообществом Ansible. [community]
Авторы
- Thierry Bouvet (@tbouvet)
- Piotr Wojciechowski (@WojciechowskiPiotr)
Подсказка
Если вы обнаружите какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.9/modules/docker_swarm_module.html