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 строка | ID узла роя, который нужно удалить. Используется со значением state=remove. | |
| remote_addrs список | Удаленный адрес одного или нескольких менеджерских узлов существующего роя для подключения. Используется со значением state=join. | |
| rotate_manager_token логическое значение |
| Обновить токен присоединения менеджера. |
| rotate_worker_token логическое значение |
| Обновить токен присоединения рабочего узла. |
| signing_ca_cert строка | Желаемый сертификат CA для подписания для всех сертификатов TLS листовых узлов роя в формате PEM. Это не должен быть путь к сертификату, а содержимое сертификата. Требуется версия API ≥ 1.30. | |
| signing_ca_key строка | Желаемый ключ CA для подписания для всех сертификатов TLS листовых узлов роя в формате PEM. Это не должен быть путь к ключу, а содержимое ключа. Требуется версия API ≥ 1.30. | |
| snapshot_interval целое число | Количество записей журналов между снимками. Значение по умолчанию Docker — 10000. |
| ssl_version строка | Укажите допустимый номер версии SSL. Значение по умолчанию определяется модулем ssl.py. Если значение не указано в задании, используется значение переменной среды DOCKER_SSL_VERSION. | |
| state строка / обязательно |
| Установите значение в present, чтобы создать/обновить новый кластер.Установите значение в join, чтобы присоединиться к существующему кластеру.Установите значение в absent, чтобы покинуть существующий кластер.Установите значение в remove, чтобы удалить отсутствующий узел из кластера. Обратите внимание, что удаление требует Docker SDK для Python >= 2.4.0.Установите значение в inspect, чтобы отобразить информацию о рое. |
| subnet_size целое число добавлен в 2.8 | Длина маски подсети стандартного пула адресов. Используется только при инициализации роя. По этой причине она не учитывается при проверке идемпотентности. Требуется версия 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://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 строка | успех | Токен для создания нового узла типа *менеджер*. | ||
| Worker строка | успех | Токен для создания нового узла типа *рабочий*. | ||
| UnlockKey строка | при успехе, если autolock_managers равно true и рой инициализирован, или если autolock_managers изменился. | Ключ разблокировки роя, если autolock_managers равно true. | ||
Статус
- Интерфейс этого модуля не гарантируется как обратно совместимый. [превью]
- Этот модуль поддерживается сообществом Ansible. [сообщество]
Авторы
- 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.8/modules/docker_swarm_module.html