Spec-Zone.ru › Ansible 2.8

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
логическое значение
    Варианты:
  • нет
  • да
Если установлено, сгенерировать ключ и использовать его для блокировки данных, хранящихся на менеджерах.
Значение по умолчанию 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
  • inspect
Установите значение в 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
логическое значение
    Выбираемые значения:
  • no ←
  • yes
Обеспечение безопасности подключения к API с помощью TLS без проверки подлинности сервера Docker. Обратите внимание, что если validate_certs также установлено в yes, будет иметь приоритет.
Если значение не указано в задании, используется значение переменной среды DOCKER_TLS. Если переменная среды не задана, используется значение по умолчанию.
tls_hostname
строка
По умолчанию:
"localhost"
При проверке подлинности сервера Docker укажите ожидаемое имя сервера.
Если значение не указано в задании, используется значение переменной среды DOCKER_TLS_HOSTNAME. Если переменная среды не задана, используется значение по умолчанию.
validate_certs
логическое значение
    Выбираемые значения:
  • no ←
  • yes
Обеспечение безопасности подключения к 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

Spec-Zone.ru

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