Spec-Zone.ru › Ansible 2.9

docker_swarm – Управление кластером Swarm

Новое в версии 2.7.

  • Обзор
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения
  • Статус

Обзор

  • Создание нового кластера Swarm.
  • Добавление/удаление узлов или менеджеров в существующий кластер.

Требования

Ниже перечислены требования к хосту, на котором выполняется этот модуль.

  • API Docker >= 1.25
  • Docker SDK для Python: Обратите внимание, что модуль Python docker-py был заменён на docker (подробнее см. здесь). Для Python 2.6 необходимо использовать docker-py. В противном случае рекомендуется установить модуль Python docker. Обратите внимание, что оба модуля не должны устанавливаться одновременно. Также обратите внимание, что если оба модуля установлены, а один из них удалён, другой может перестать работать, и потребуется его повторная установка.
  • 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
логическое значение
    Варианты:
  • no
  • yes
Если установлено, генерируется ключ для блокировки данных, хранящихся на менеджерах.
Значение по умолчанию 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
  • inspect
Установите значение 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API