Spec-Zone.ru › Ansible

Модуль community.docker.docker_swarm_service – docker swarm service

Примечание

Этот модуль входит в коллекцию community.docker (версия 3.13.0).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить её установку, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install community.docker. Для использования этого модуля потребуются дополнительные требования, см. Требования для получения подробной информации.

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

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

Описание

  • Управляет службами Docker через узел менеджера Swarm.
  • Этот модуль не поддерживает обновление служб в стеке.

Требования

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

  • API Docker >= 1.25
  • Docker SDK для Python: Обратите внимание, что модуль Python docker-py был заменён на docker (см. здесь для получения подробной информации). Этот модуль *не* работает с docker-py.
  • Docker SDK для Python >= 2.0.2
  • Python >= 2.7

Параметры

Параметр

Комментарии

api_version

псевдонимы: docker_api_version

строка

Версия API Docker, работающая на Docker хосте.

По умолчанию используется последняя версия API, поддерживаемая Docker SDK для Python и демоном docker.

Если значение не указано в задаче, будет использовано значение переменной окружения DOCKER_API_VERSION. Если переменная окружения не установлена, будет использовано значение по умолчанию.

По умолчанию: "auto"

args

список / элементы=строка

Список аргументов, которые будут переданы контейнеру.

Соответствует параметру ARG в docker service create.

ca_path

псевдонимы: ca_cert, tls_ca_cert, cacert_path

путь

Использование сертификата CA при проверке сервера, указав путь к файлу сертификата CA.

Если значение не указано в задаче, а переменная окружения DOCKER_CERT_PATH установлена, будет использован файл ca.pem из каталога, указанного в переменной окружения DOCKER_CERT_PATH.

Этот параметр назывался ca_cert и был переименован в ca_path в community.docker 3.6.0. Старое имя добавлено в качестве псевдонима и по-прежнему может использоваться.

cap_add

список / элементы=строка

добавлено в community.docker 2.2.0

Список возможностей, которые необходимо добавить контейнеру.

Требуется версия API >= 1.41.

cap_drop

список / элементы=строка

добавлено в community.docker 2.2.0

Список возможностей, которые необходимо удалить из контейнера.

Требуется версия API >= 1.41.

client_cert

псевдонимы: tls_client_cert, cert_path

путь

Путь к файлу TLS-сертификата клиента.

Если значение не указано в задаче, а переменная окружения DOCKER_CERT_PATH установлена, будет использован файл cert.pem из каталога, указанного в переменной окружения DOCKER_CERT_PATH.

client_key

псевдонимы: tls_client_key, key_path

путь

Путь к файлу TLS-ключа клиента.

Если значение не указано в задаче, а переменная окружения DOCKER_CERT_PATH установлена, будет использован файл key.pem из каталога, указанного в переменной окружения DOCKER_CERT_PATH.

command

любой

Команда, которая будет выполнена при запуске контейнера.

Команда может быть строкой, списком или списком строк.

Соответствует параметру COMMAND в docker service create.

configs

список / элементы=словарь

Список словарей, описывающих конфигурации сервиса.

Соответствует параметру --config в docker service create.

Требуется версия API >= 1.30.

config_id

строка

Идентификатор конфигурации.

config_name

строка / обязательно

Имя конфигурации, определённое при её создании.

filename

строка

Имя файла, содержащего конфигурацию. По умолчанию configs[].config_name, если не указано.

gid

строка

GID группы файла конфигурации.

mode

целое число

Режим доступа к файлу внутри контейнера. Должно быть восьмеричное число (например, 0644 или 0444).

uid

строка

UID владельца файла конфигурации.

container_labels

словарь

Словарь пар «ключ-значение».

Соответствует параметру --container-label в docker service create.

debug

логический

Режим отладки

Варианты:

  • false ← (по умолчанию)
  • true

dns

список / элементы=строка

Список пользовательских DNS-серверов.

Соответствует параметру --dns в docker service create.

END_OF_DOCUMENT_MARKER

dns_options

list / elements=string

Список пользовательских параметров DNS.

Соответствует параметру --dns-option в docker service create.

dns_search

list / elements=string

Список пользовательских доменов поиска DNS.

Соответствует параметру --dns-search в docker service create.

docker_host

aliases: docker_url

string

URL или путь к сокету Unix, используемый для подключения к API Docker. Для подключения к удаленному хосту укажите строку подключения TCP. Например, tcp://192.0.2.23:2376. Если для шифрования соединения используется TLS, модуль автоматически заменит tcp в URL-адресе подключения на https.

Если значение не указано в задаче, вместо него будет использовано значение переменной среды DOCKER_HOST. Если переменная среды не установлена, будет использовано значение по умолчанию.

По умолчанию: "unix:///var/run/docker.sock"

endpoint_mode

string

Режим конечной точки службы.

Соответствует параметру --endpoint-mode в docker service create.

Варианты:

  • "vip"
  • "dnsrr"

env

any

Список или словарь переменных среды службы.

Если передан список, каждый элемент должен иметь формат KEY=VALUE.

Если передан словарь, значения, которые могут быть интерпретированы как числа, логические значения или другие типы парсером YAML, должны быть заключены в кавычки (например, "true") во избежание потери данных.

Соответствует параметру --env в docker service create.

env_files

list / elements=path

Список путей к файлам, присутствующим на целевом объекте, содержащим переменные среды FOO=BAR.

Порядок списка важен для определения значения, присваиваемого переменной, которая встречается более одного раза.

Если переменная также присутствует в env, то значение env будет иметь приоритет.

force_update

boolean

Принудительное обновление, даже если изменения не требуются.

Соответствует параметру --force в docker service update.

Варианты:

  • false ← (по умолчанию)
  • true

groups

list / elements=string

Список дополнительных имен и/или идентификаторов групп, от имени которых будет запущен процесс контейнера.

Соответствует параметру --group в docker service update.

healthcheck

dictionary

Настройте проверку, которая выполняется для определения того, являются ли контейнеры для этой службы «исправными». Подробную информацию о работе проверок работоспособности см. в документации по инструкции HEALTHCHECK Dockerfile.

healthcheck.interval, healthcheck.timeout и healthcheck.start_period задаются как длительности. Они принимают длительность в виде строки в формате: 5h34m56s, 1m30s и так далее. Поддерживаемые единицы: us, ms, s, m и h.

interval

string

Время между запусками проверки.

retries

integer

Последовательные отказы, необходимые для сообщения о неисправности. Принимает целочисленное значение.

start_period

string

Начальный период для инициализации контейнера перед началом обратного отсчета health-retries.

test

any

Команда для проверки работоспособности.

Должна быть строкой или списком. Если это список, первый элемент должен быть одним из NONE, CMD или CMD-SHELL.

timeout

string

Максимальное время выполнения одной проверки.

hostname

string

Имя хоста контейнера.

Соответствует параметру --hostname в docker service create.

hosts

dictionary

Словарь сопоставлений хост-IP, где каждое имя хоста является ключом в словаре. Каждое имя хоста будет добавлено в файл /etc/hosts контейнера.

Соответствует параметру --host в docker service create.

image

string

Путь к образу службы и тег.

Соответствует параметру IMAGE в docker service create.

init

boolean

Использовать init внутри каждого контейнера службы для пересылки сигналов и сбора процессов.

Соответствует параметру --init в docker service create.

Требуется версия API >= 1.37.

Варианты:

  • false
  • true

метки

словарь

Словарь пар ключ-значение.

Соответствует параметру --label в docker service create.

лимиты

словарь

Настройка лимитов ресурсов службы.

cpus

вещественное число

Лимит процессорного времени службы. 0 означает отсутствие лимита.

Соответствует параметру --limit-cpu в docker service create.

memory

строка

Лимит памяти службы в формате <number>[<unit>]. Число — это положительное целое число. Единица измерения может быть B (байт), K (кибибайт, 1024 байта), M (мебибайт), G (гибибайт), T (тебибайт) или P (пебибайт).

0 означает отсутствие лимита.

Опускание единицы измерения по умолчанию задаёт байты.

Соответствует параметру --limit-memory в docker service create.

журналирование

словарь

Настройка журналирования для службы.

драйвер

строка

Настройка драйвера журналирования для службы.

Соответствует параметру --log-driver в docker service create.

параметры

словарь

Параметры для драйвера журналирования службы.

Соответствует параметру --log-opt в docker service create.

режим

строка

Режим репликации службы.

Служба будет удалена и пересоздана при изменении.

Соответствует параметру --mode в docker service create.

Доступные значения:

  • "replicated" ← (по умолчанию)
  • "global"

монтирования

список / элементы=словарь

Список словарей, описывающих монтирования службы.

Соответствует параметру --mount в docker service create.

настройка_драйвера

словарь

Настройка драйвера тома.

Может использоваться только при mounts[].type=volume.

имя

строка

Имя плагина драйвера тома для использования в томе.

параметры

словарь

Параметры в виде пар ключ-значение для передачи драйверу этого тома.

метки

словарь

Метки тома для применения.

без_копирования

булево

Отключить копирование данных из контейнера при создании тома.

Может использоваться только при mounts[].type=volume.

Доступные значения:

  • false
  • true

распространение

строка

Режим распространения для использования.

Может использоваться только при mounts[].type=bind.

Доступные значения:

  • "shared"
  • "slave"
  • "private"
  • "rshared"
  • "rslave"
  • "rprivate"

только_чтение

булево

Должно ли монтирование быть только для чтения.

Доступные значения:

  • false
  • true

источник

строка

Источник монтирования (например, имя тома или путь к хосту).

Должен быть указан, если mounts[].type не tmpfs.

цель

строка / обязательный

Путь в контейнере.

режим_tmpfs

целое число

Режим файла tmpfs в восьмеричной форме.

Может использоваться только при mounts[].type=tmpfs.

размер_tmpfs

строка

Размер монтирования tmpfs в формате <number>[<unit>]. Число — это положительное целое число. Единица измерения может быть B (байт), K (кибибайт, 1024 байта), M (мебибайт), G (гибибайт), T (тебибайт) или P (пебибайт).

Может использоваться только при mounts[].type=tmpfs.

тип

строка

Тип подключения.

Обратите внимание, что npipe поддерживается только Docker для Windows. Также обратите внимание, что npipe был добавлен в Ansible 2.9.

Варианты:

  • "bind" ← (по умолчанию)
  • "volume"
  • "tmpfs"
  • "npipe"

имя

строка / обязательно

Имя службы.

Соответствует параметру --name модуля docker service create.

сети

список / элементы=любые

Список имен или словарей сетей службы.

При передаче словарей допустимыми подпараметрами являются name, который является обязательным, а также aliases и options.

До версии API 1.29 обновление и удаление сетей не поддерживается. Если внесены изменения, служба будет удалена и пересоздана.

Соответствует параметру --network модуля docker service create.

размещение

словарь

Настройка предпочтений и ограничений размещения службы.

ограничения

список / элементы=строка

Список ограничений размещения службы.

Соответствует параметру --constraint модуля docker service create.

предпочтения

список / элементы=словарь

Список предпочтений размещения в виде пар ключ-значение.

Соответствует параметру --placement-pref модуля docker service create.

Требуется версия API >= 1.27.

максимальное_количество_реплик_на_узел

целое

добавлено в community.docker 1.3.0

Максимальное количество задач на узел.

Соответствует параметру --replicas_max_per_node модуля docker service create.

Требуется версия API >= 1.40

опубликовать

список / элементы=словарь

Список словарей, описывающих опубликованные порты службы.

Соответствует параметру --publish модуля docker service create.

режим

строка

Режим публикации.

Требуется версия API >= 1.32.

Варианты:

  • "ingress"
  • "host"

протокол

строка

Используемый протокол.

Варианты:

  • "tcp" ← (по умолчанию)
  • "udp"

опубликованный_порт

целое

Порт, доступный извне.

целевой_порт

целое / обязательно

Порт внутри контейнера для экспонирования.

только_чтение

логическое

Подключить корневую файловую систему контейнера в режиме только для чтения.

Соответствует параметру --read-only модуля docker service create.

Варианты:

  • false
  • true

реплики

целое

Количество созданных контейнеров в службе. Действительно только если mode=replicated.

Если установлено -1, и служба отсутствует, количество реплик службы будет установлено в 1.

Если установлено -1, и служба присутствует, количество реплик службы останется без изменений.

Соответствует параметру --replicas модуля docker service create.

По умолчанию: -1

резервации

словарь

Настройка резервирования ресурсов службы.

cpu

вещественное

Резервирование ЦП службы. 0 равно отсутствию резервирования.

Соответствует параметру --reserve-cpu модуля docker service create.

память

строка

Резервирование памяти службы в формате <number>[<unit>]. Число — положительное целое. Единица измерения может быть B (байт), K (кибибайт, 1024Б), M (мебибайт), G (гибибайт), T (тебибайт) или P (пебибайт).

0 равно отсутствию резервирования.

Пропуск единицы измерения по умолчанию устанавливает байты.

Соответствует параметру --reserve-memory модуля docker service create.

разрешить_образ

логическое

Если текущий дайджест образа должен быть разрешен из реестра и обновлен при изменении.

Требуется версия API >= 1.30.

Варианты:

  • false ← (по умолчанию)
  • true
END_OF_DOCUMENT_MARKER

restart_config

dictionary

Настраивает, как и следует ли перезапускать контейнеры после их завершения.

condition

string

Условие перезапуска сервиса.

Соответствует параметру --restart-condition параметра docker service create.

Варианты:

  • "none"
  • "on-failure"
  • "any"

delay

string

Задержка между перезапусками.

Принимает строку в формате: 5h34m56s, 1m30s и т.д. Поддерживаемые единицы измерения: us, ms, s, m и h.

Соответствует параметру --restart-delay параметра docker service create.

max_attempts

integer

Максимальное количество перезапусков сервиса.

Соответствует параметру --restart-condition параметра docker service create.

window

string

Окно оценки политики перезапуска.

Принимает строку в формате: 5h34m56s, 1m30s и т.д. Поддерживаемые единицы измерения: us, ms, s, m и h.

Соответствует параметру --restart-window параметра docker service create.

rollback_config

dictionary

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

delay

string

Задержка между откатными действиями.

Принимает строку в формате: 5h34m56s, 1m30s и т.д. Поддерживаемые единицы измерения: us, ms, s, m и h.

Соответствует параметру --rollback-delay параметра docker service create.

Требуется версия API >= 1.28.

failure_action

string

Действие, которое следует предпринять в случае сбоя отката.

Соответствует параметру --rollback-failure-action параметра docker service create.

Требуется версия API >= 1.28.

Варианты:

  • "continue"
  • "pause"

max_failure_ratio

float

Доля задач, которые могут завершиться неудачей во время отката.

Соответствует параметру --rollback-max-failure-ratio параметра docker service create.

Требуется версия API >= 1.28.

monitor

string

Продолжительность мониторинга сбоев после каждого откатного действия.

Принимает строку в формате: 5h34m56s, 1m30s и т.д. Поддерживаемые единицы измерения: us, ms, s, m и h.

Соответствует параметру --rollback-monitor параметра docker service create.

Требуется версия API >= 1.28.

order

string

Указывает порядок операций во время откатов.

Соответствует параметру --rollback-order параметра docker service create.

Требуется версия API >= 1.29.

parallelism

integer

Количество контейнеров, которые нужно откатить одновременно. Если установлено значение 0, все контейнеры откатываются одновременно.

Соответствует параметру --rollback-parallelism параметра docker service create.

Требуется версия API >= 1.28.

secrets

list / elements=dictionary

Список словарей, описывающих секреты сервиса.

Соответствует параметру --secret параметра docker service create.

filename

string

Имя файла, содержащего секрет. По умолчанию используется secrets[].secret_name, если не указано иное.

Соответствует ключу target параметра docker service create --secret.

gid

string

GID группы владельца файла секрета.

mode

integer

Режим доступа к файлу внутри контейнера. Должно быть восьмеричным числом (например, 0644 или 0444).

secret_id

string

ID секрета.

secret_name

string / required

Имя секрета, определённое при его создании.

uid

string

UID владельца файла секрета.

ssl_version

string

Укажите допустимое значение версии SSL. Значение по умолчанию определяется модулем SSL Python.

Если значение не указано в задаче, будет использовано значение переменной окружения DOCKER_SSL_VERSION.

Примечание: этот параметр больше не поддерживается для Docker SDK для Python 7.0.0+. Указание его с Docker SDK для Python 7.0.0 или новее приведет к ошибке.

state

string

absent - Сервис с указанным именем будет удалён, а его задачи остановлены.

present - Подтверждает существование сервиса, соответствующего имени и заданным параметрам конфигурации. Неуказанные параметры конфигурации будут установлены по умолчанию для Docker.

Варианты:

  • "present" ← (по умолчанию)
  • "absent"

stop_grace_period

string

Время ожидания перед принудительным завершением контейнера.

Принимает длительность в виде строки в формате: 5h34m56s, 1m30s и т.д. Поддерживаемые единицы измерения: us, ms, s, m и h.

Соответствует параметру --stop-grace-period модуля docker service create.

stop_signal

string

Переопределяет используемый по умолчанию сигнал для остановки контейнера.

Соответствует параметру --stop-signal модуля docker service create.

sysctls

dictionary

добавлен в community.docker 3.10.0

Словарь пар ключ-значение.

timeout

integer

Максимальное время в секундах ожидания ответа от API.

Если значение не указано в задаче, будет использовано значение переменной окружения DOCKER_TIMEOUT. Если переменная окружения не задана, будет использовано значение по умолчанию.

По умолчанию: 60

tls

boolean

Защитить подключение к API с использованием TLS без проверки подлинности сервера Docker. Обратите внимание, что если validate_certs также установлено в true, то оно будет иметь приоритет.

Если значение не указано в задаче, будет использовано значение переменной окружения DOCKER_TLS. Если переменная окружения не задана, будет использовано значение по умолчанию.

Варианты:

  • false ← (по умолчанию)
  • true

tls_hostname

string

При проверке подлинности сервера Docker укажите ожидаемое имя сервера.

Если значение не указано в задаче, будет использовано значение переменной окружения DOCKER_TLS_HOSTNAME. Если переменная окружения не задана, будет использовано значение по умолчанию.

Обратите внимание, что у этого параметра было значение по умолчанию localhost в более старых версиях. Оно было удалено в community.docker 3.0.0.

Примечание: этот параметр больше не поддерживается для Docker SDK для Python 7.0.0+. Указание его с Docker SDK для Python 7.0.0 или новее приведет к ошибке.

tty

boolean

Выделить псевдо-TTY.

Соответствует параметру --tty модуля docker service create.

Варианты:

  • false
  • true

update_config

dictionary

Настраивает способ обновления сервиса. Полезно для настройки поэтапного обновления.

delay

string

Задержка при поэтапном обновлении.

Принимает строку в формате: 5h34m56s, 1m30s и т.д. Поддерживаемые единицы измерения: us, ms, s, m и h.

Соответствует параметру --update-delay модуля docker service create.

failure_action

string

Действие в случае сбоя контейнера.

Соответствует параметру --update-failure-action модуля docker service create.

Использование rollback требует API версии >= 1.29.

Варианты:

  • "continue"
  • "pause"
  • "rollback"

max_failure_ratio

float

Доля задач, которые могут завершиться с ошибкой во время обновления, прежде чем будет вызвано действие по обработке ошибки.

Соответствует параметру --update-max-failure-ratio модуля docker service create.

monitor

string

Время мониторинга обновлённых задач на предмет ошибок.

Принимает строку в формате: 5h34m56s, 1m30s и т.д. Поддерживаемые единицы измерения: us, ms, s, m и h.

Соответствует параметру --update-monitor модуля docker service create.

order

string

Указывает порядок операций при поэтапном внедрении обновленной задачи.

Соответствует параметру --update-order модуля docker service create.

Требует API версии >= 1.29.

END_OF_DOCUMENT_MARKER

параллелизм

целое число

Параллелизм при обновлении.

Соответствует параметру --update-parallelism модуля docker service create.

использовать_ssh_клиент

булево

добавлен в community.docker 1.5.0

Для SSH-транспортов используйте инструмент ssh командной строки вместо paramiko.

Требуется Docker SDK для Python версии 4.4.0 или новее.

Варианты:

  • false ← (по умолчанию)
  • true

пользователь

строка

Устанавливает имя пользователя или UID, используемые для указанной команды.

До версии Ansible 2.8 значение по умолчанию для этого параметра было root.

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

Соответствует параметру --user модуля docker service create.

проверять_сертификаты

псевдонимы: tls_verify

булево

Обеспечьте безопасность подключения к API, используя TLS и проверяя подлинность хоста Docker.

Если значение не указано в задаче, вместо него будет использовано значение переменной среды DOCKER_TLS_VERIFY. Если переменная среды не задана, будет использовано значение по умолчанию.

Варианты:

  • false ← (по умолчанию)
  • true

рабочая_директория

строка

Путь к рабочей директории.

Соответствует параметру --workdir модуля docker service create.

Атрибуты

Атрибут

Поддержка

Описание

группа_действий

Группы действий: community.docker.docker, docker

Используйте group/docker или group/community.docker.docker в module_defaults для установки значений по умолчанию для этого модуля.

режим_проверки

Поддержка: полная

Может работать в режиме check_mode и возвращать прогноз статуса изменения без модификации целевого объекта.

режим_сравнения

Поддержка: полная

Возвращает подробную информацию о том, что изменилось (или, возможно, требует изменения в check_mode) в режиме сравнения.

Примечания

Примечание

  • Образы будут разрешаться только до последнего дайджеста при использовании Docker API >= 1.30 и Docker SDK для Python >= 3.2.0. При использовании более старых версий используйте force_update=true для запуска разрешения нового образа в кластере.
  • Подключайтесь к демону 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: Set command and arguments
  community.docker.docker_swarm_service:
    name: myservice
    image: alpine
    command: sleep
    args:
      - "3600"

- name: Set a bind mount
  community.docker.docker_swarm_service:
    name: myservice
    image: alpine
    mounts:
      - source: /tmp/
        target: /remote_tmp/
        type: bind

- name: Set service labels
  community.docker.docker_swarm_service:
    name: myservice
    image: alpine
    labels:
      com.example.description: "Accounting webapp"
      com.example.department: "Finance"

- name: Set environment variables
  community.docker.docker_swarm_service:
    name: myservice
    image: alpine
    env:
      ENVVAR1: envvar1
      ENVVAR2: envvar2
    env_files:
      - envs/common.env
      - envs/apps/web.env

- name: Set fluentd logging
  community.docker.docker_swarm_service:
    name: myservice
    image: alpine
    logging:
      driver: fluentd
      options:
        fluentd-address: "127.0.0.1:24224"
        fluentd-async-connect: "true"
        tag: myservice

- name: Set restart policies
  community.docker.docker_swarm_service:
    name: myservice
    image: alpine
    restart_config:
      condition: on-failure
      delay: 5s
      max_attempts: 3
      window: 120s

- name: Set update config
  community.docker.docker_swarm_service:
    name: myservice
    image: alpine
    update_config:
      parallelism: 2
      delay: 10s
      order: stop-first

- name: Set rollback config
  community.docker.docker_swarm_service:
    name: myservice
    image: alpine
    update_config:
      failure_action: rollback
    rollback_config:
      parallelism: 2
      delay: 10s
      order: stop-first

- name: Set placement preferences
  community.docker.docker_swarm_service:
    name: myservice
    image: alpine:edge
    placement:
      preferences:
        - spread: node.labels.mylabel
      constraints:
        - node.role == manager
        - engine.labels.operatingsystem == ubuntu 14.04
      replicas_max_per_node: 2

- name: Set configs
  community.docker.docker_swarm_service:
    name: myservice
    image: alpine:edge
    configs:
      - config_name: myconfig_name
        filename: "/tmp/config.txt"

- name: Set networks
  community.docker.docker_swarm_service:
    name: myservice
    image: alpine:edge
    networks:
      - mynetwork

- name: Set networks as a dictionary
  community.docker.docker_swarm_service:
    name: myservice
    image: alpine:edge
    networks:
      - name: "mynetwork"
        aliases:
          - "mynetwork_alias"
        options:
          foo: bar

- name: Set secrets
  community.docker.docker_swarm_service:
    name: myservice
    image: alpine:edge
    secrets:
      - secret_name: mysecret_name
        filename: "/run/secrets/secret.txt"

- name: Start service with healthcheck
  community.docker.docker_swarm_service:
    name: myservice
    image: nginx:1.13
    healthcheck:
      # Check if nginx server is healthy by curl'ing the server.
      # If this fails or timeouts, the healthcheck fails.
      test: ["CMD", "curl", "--fail", "http://nginx.host.com"]
      interval: 1m30s
      timeout: 10s
      retries: 3
      start_period: 30s

- name: Configure service resources
  community.docker.docker_swarm_service:
    name: myservice
    image: alpine:edge
    reservations:
      cpus: 0.25
      memory: 20M
    limits:
      cpus: 0.50
      memory: 50M

- name: Remove service
  community.docker.docker_swarm_service:
    name: myservice
    state: absent

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

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

Ключ

Описание

changes

список / элементы=строка

Список изменённых атрибутов сервиса, если сервис был изменён, иначе [].

Возвращается: всегда

Пример: ["container_labels", "replicas"]

rebuilt

логическое

Истина, если сервис был пересоздан (удален и создан)

Возвращается: всегда

Пример: true

swarm_service

словарь

Словарь переменных, представляющих текущее состояние сервиса. Соответствует формату параметров модуля.

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

Обратите внимание, что до Ansible 2.7.9 переменная возврата была документирована как ansible_swarm_service, в то время как модуль фактически возвращал переменную под названием ansible_docker_service. Переменная была переименована в swarm_service как в коде, так и в документации для Ansible 2.7.9 и Ansible 2.8.0. В Ansible 2.7.x старое имя ansible_docker_service по-прежнему может использоваться.

Возвращается: всегда

Пример: {"args": ["3600"], "cap_add": null, "cap_drop": ["ALL"], "command": ["sleep"], "configs": null, "constraints": ["node.role == manager", "engine.labels.operatingsystem == ubuntu 14.04"], "container_labels": null, "dns": null, "dns_options": null, "dns_search": null, "endpoint_mode": null, "env": ["ENVVAR1=envvar1", "ENVVAR2=envvar2"], "force_update": null, "groups": null, "healthcheck": {"interval": 90000000000, "retries": 3, "start_period": 30000000000, "test": ["CMD", "curl", "--fail", "http://nginx.host.com"], "timeout": 10000000000}, "healthcheck_disabled": false, "hostname": null, "hosts": null, "image": "alpine:latest@sha256:b3dbf31b77fd99d9c08f780ce6f5282aba076d70a513a8be859d8d3a4d0c92b8", "labels": {"com.example.department": "Finance", "com.example.description": "Accounting webapp"}, "limit_cpu": 0.5, "limit_memory": 52428800, "log_driver": "fluentd", "log_driver_options": {"fluentd-address": "127.0.0.1:24224", "fluentd-async-connect": "true", "tag": "myservice"}, "mode": "replicated", "mounts": [{"driver_config": null, "labels": null, "no_copy": null, "propagation": null, "readonly": false, "source": "/tmp/", "target": "/remote_tmp/", "tmpfs_mode": null, "tmpfs_size": null, "type": "bind"}], "networks": null, "placement_preferences": [{"spread": "node.labels.mylabel"}], "publish": null, "read_only": null, "replicas": 1, "replicas_max_per_node": 1, "reserve_cpu": 0.25, "reserve_memory": 20971520, "restart_policy": "on-failure", "restart_policy_attempts": 3, "restart_policy_delay": 5000000000, "restart_policy_window": 120000000000, "secrets": null, "stop_grace_period": null, "stop_signal": null, "sysctls": null, "tty": null, "update_delay": 10000000000, "update_failure_action": null, "update_max_failure_ratio": null, "update_monitor": null, "update_order": "stop-first", "update_parallelism": 2, "user": null, "working_dir": null}

Авторы

  • Dario Zanzico (@dariko)
  • Jason Witkowski (@jwitko)
  • Hannes Ljungberg (@hannseman)
  • Piotr Wojciechowski (@wojciechowskipiotr)

Ссылки на сборку

  • Отслеживание проблем
  • Репозиторий (источники)
  • Задать вопрос (Docker)
  • Задать вопрос (Docker Compose)
  • Задать вопрос (Docker Swarm)
  • Отправить отчет об ошибке
  • Запросить функцию
  • Связь

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

Spec-Zone.ru

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