Spec-Zone.ru › Ansible 2.10

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

Примечание

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

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

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

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

Обзор

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

Требования

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

  • Docker API >= 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
путь
Используйте сертификат УЦ при проверке сервера, указав путь к файлу сертификата УЦ.
Если значение не указано в задаче, и переменная окружения DOCKER_CERT_PATH установлена, используется файл ca.pem из каталога, указанного в переменной окружения DOCKER_CERT_PATH.

псевдонимы: tls_ca_cert, cacert_path
ca_force_rotate
целое число
Целое число, предназначенное для принудительной генерации нового сертификата и ключа подписи УЦ роем, если таковые не были указаны.
Значение по умолчанию 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, используемый для подключения к 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. Используйте модуль community.docker.docker_node для добавления/изменения/удаления меток узла swarm.
Требуется версия 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
строка
Желаемый сертификат УЦ подписи для всех листов сертификатов TLS узлов роя в формате PEM.
Это не должен быть путь к сертификату, а содержимое сертификата.
Требуется версия API >= 1.30.
signing_ca_key
строка
Желаемый ключ УЦ подписи для всех листов сертификатов 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
при ошибке выполнения действия.
Предоставляет действия, выполненные в кластере.

Пример:
['Этот кластер уже является кластером Swarm']
swarm_facts
dictionary
успех
Информация о Swarm.

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

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

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

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

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


Авторы

  • 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.10/collections/community/docker/docker_swarm_module.html

Spec-Zone.ru

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