Spec-Zone.ru › Ansible 2.10

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

Примечание

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

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

Для использования в книге задач укажите: community.general.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.general.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, используемый для подключения к 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.general.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
строка
Желаемый сертификат 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
целое число
Длина маски подсети для стандартного пула адресов.
Используется только при инициализации роя. По этой причине он не учитывается при проверке идемпотентности.
Требуется версия 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 for Python версии 2.4 или выше это можно сделать, установив docker[tls] с помощью ansible.builtin.pip.
  • Обратите внимание, что Docker SDK for Python позволяет указывать путь к конфигурации Docker только для очень немногих функций. В целом, он будет использовать $HOME/.docker/config.json, если переменная среды DOCKER_CONFIG не указана, и использовать $DOCKER_CONFIG/config.json в противном случае.

Примеры

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

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

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

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

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

- name: Inspect swarm
  community.general.docker_swarm:
    state: inspect
  register: swarm_info

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

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

Ключ Возвращаемое значение Описание
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/general/docker_swarm_module.html

Spec-Zone.ru

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