Spec-Zone.ru › Ansible 2.11

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

Примечание

Этот плагин входит в состав коллекции community.docker (версия 1.2.2).

Для его установки используйте: ansible-galaxy collection install community.docker

Для использования в playbook укажите: community.docker.docker_swarm

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

Обзор

  • Создание нового кластера 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.
community.docker.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
список / элементы=строка
Бассейн адресов по умолчанию в формате CIDR.
Используется только при инициализации роя. По этой причине не учитывается при проверке идемпотентности.
Требуется версия API >= 1.39.
dispatcher_heartbeat_period
целое число
Задержка отправки пульса агентом диспетчеру.
Значение по умолчанию Docker — 5s.
docker_host
строка
По умолчанию:
"unix://var/run/docker.sock"
URL или путь к сокету Unix, используемые для подключения к API Docker. Для подключения к удаленному хосту укажите строку 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. Используйте модуль community.docker.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 подписи для всех листовых 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.
subnet_size
целое число
Длина маски подсети для стандартного пула адресов.
Используется только при инициализации роя. По этой причине не учитывается при проверке идемпотентности.
Требуется версия API >= 1.39.
task_history_retention_limit
целое число
Максимальное количество задач в истории, хранимых в памяти.
Значение по умолчанию Docker — 5.
timeout
целое число
По умолчанию:
60
Максимальное время ожидания ответа от API в секундах.
Если значение не указано в задаче, вместо него используется значение переменной окружения DOCKER_TIMEOUT.
tls
boolean
    Варианты:
  • нет ←
  • да
Обеспечьте подключение к API с использованием TLS без проверки подлинности сервера Docker. Обратите внимание, что если validate_certs также установлено в yes, то оно будет иметь приоритет.
Если значение не указано в задаче, вместо него будет использовано значение переменной среды DOCKER_TLS. Если переменная среды не установлена, будет использовано значение по умолчанию.
tls_hostname
string
Значение по умолчанию:
"localhost"
При проверке подлинности сервера Docker укажите ожидаемое имя сервера.
Если значение не указано в задаче, вместо него будет использовано значение переменной среды DOCKER_TLS_HOSTNAME. Если переменная среды не установлена, будет использовано значение по умолчанию.
validate_certs
boolean
    Варианты:
  • нет ←
  • да
Обеспечьте подключение к 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 для Python версии 2.4 или новее это можно сделать, установив docker[tls] с помощью ansible.builtin.pip.
  • Обратите внимание, что Docker SDK для Python позволяет указать путь к конфигурации Docker только для очень немногих функций. В целом, он будет использовать $HOME/.docker/config.json, если переменная среды DOCKER_CONFIG не указана, и $DOCKER_CONFIG/config.json в противном случае.
  • Этот модуль использует Docker SDK для Python для связи с демоном Docker.

Примеры

- name: Init a new swarm with default parameters
  community.docker.docker_swarm:
    state: present

- name: Update swarm configuration
  community.docker.docker_swarm:
    state: present
    election_tick: 5

- name: Add nodes
  community.docker.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
  community.docker.docker_swarm:
    state: absent

- name: Remove a swarm manager
  community.docker.docker_swarm:
    state: absent
    force: true

- name: Remove node from swarm
  community.docker.docker_swarm:
    state: remove
    node_id: mynode

Значения возврата

Общие значения возврата документированы здесь, следующие являются полями, уникальными для этого модуля:

Ключ Возвращаемое значение Описание
actions
list / elements=string
при ошибке действия.
Предоставляет действия, выполненные в контейнере.

Пример:
['This cluster is already a swarm cluster']
swarm_facts
dictionary
успех
Информация о контейнере.

JoinTokens
dictionary
успех
Токены для подключения к контейнеру.

Manager
string
успех
Токен для создания нового узла *менеджера*

Пример:
SWMTKN-1--xxxxx
Worker
string
успех
Токен для создания нового узла *рабочего*

Пример:
SWMTKN-1--xxxxx
UnlockKey
string
при успехе, если autolock_managers равно true и контейнер инициализирован, или если autolock_managers изменился.
Ключ разблокировки контейнера, если autolock_managers равно true.

Пример:
SWMKEY-1-xxx


Авторы

  • Thierry Bouvet (@tbouvet)
  • Piotr Wojciechowski (@WojciechowskiPiotr)

© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/docker/docker_swarm_module.html

Spec-Zone.ru

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