Модуль 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. Если значение не указано в задаче, будет использовано значение переменной окружения По умолчанию: |
args список / элементы=строка | Список аргументов, которые будут переданы контейнеру. Соответствует параметру |
ca_path псевдонимы: ca_cert, tls_ca_cert, cacert_path путь | Использование сертификата CA при проверке сервера, указав путь к файлу сертификата CA. Если значение не указано в задаче, а переменная окружения Этот параметр назывался |
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-сертификата клиента. Если значение не указано в задаче, а переменная окружения |
client_key псевдонимы: tls_client_key, key_path путь | Путь к файлу TLS-ключа клиента. Если значение не указано в задаче, а переменная окружения |
command любой | Команда, которая будет выполнена при запуске контейнера. Команда может быть строкой, списком или списком строк. Соответствует параметру |
configs список / элементы=словарь | Список словарей, описывающих конфигурации сервиса. Соответствует параметру Требуется версия API >= 1.30. |
|
config_id строка |
Идентификатор конфигурации. |
|
config_name строка / обязательно |
Имя конфигурации, определённое при её создании. |
|
filename строка |
Имя файла, содержащего конфигурацию. По умолчанию |
|
gid строка |
GID группы файла конфигурации. |
|
mode целое число |
Режим доступа к файлу внутри контейнера. Должно быть восьмеричное число (например, |
|
uid строка |
UID владельца файла конфигурации. |
container_labels словарь | Словарь пар «ключ-значение». Соответствует параметру |
debug логический | Режим отладки Варианты:
|
dns список / элементы=строка | Список пользовательских DNS-серверов. Соответствует параметру |
dns_options list / elements=string | Список пользовательских параметров DNS. Соответствует параметру |
dns_search list / elements=string | Список пользовательских доменов поиска DNS. Соответствует параметру |
docker_host aliases: docker_url string | URL или путь к сокету Unix, используемый для подключения к API Docker. Для подключения к удаленному хосту укажите строку подключения TCP. Например, Если значение не указано в задаче, вместо него будет использовано значение переменной среды По умолчанию: |
endpoint_mode string | Режим конечной точки службы. Соответствует параметру Варианты:
|
env any | Список или словарь переменных среды службы. Если передан список, каждый элемент должен иметь формат Если передан словарь, значения, которые могут быть интерпретированы как числа, логические значения или другие типы парсером YAML, должны быть заключены в кавычки (например, Соответствует параметру |
env_files list / elements=path | |
force_update boolean | Принудительное обновление, даже если изменения не требуются. Соответствует параметру Варианты:
|
groups list / elements=string | Список дополнительных имен и/или идентификаторов групп, от имени которых будет запущен процесс контейнера. Соответствует параметру |
healthcheck dictionary | Настройте проверку, которая выполняется для определения того, являются ли контейнеры для этой службы «исправными». Подробную информацию о работе проверок работоспособности см. в документации по инструкции HEALTHCHECK Dockerfile.
|
|
interval string |
Время между запусками проверки. |
|
retries integer |
Последовательные отказы, необходимые для сообщения о неисправности. Принимает целочисленное значение. |
|
start_period string |
Начальный период для инициализации контейнера перед началом обратного отсчета health-retries. |
|
test any |
Команда для проверки работоспособности. Должна быть строкой или списком. Если это список, первый элемент должен быть одним из |
|
timeout string |
Максимальное время выполнения одной проверки. |
hostname string | Имя хоста контейнера. Соответствует параметру |
hosts dictionary | Словарь сопоставлений хост-IP, где каждое имя хоста является ключом в словаре. Каждое имя хоста будет добавлено в файл /etc/hosts контейнера. Соответствует параметру |
image string | Путь к образу службы и тег. Соответствует параметру |
init boolean | Использовать init внутри каждого контейнера службы для пересылки сигналов и сбора процессов. Соответствует параметру Требуется версия API >= 1.37. Варианты:
|
метки словарь | Словарь пар ключ-значение. Соответствует параметру |
лимиты словарь | Настройка лимитов ресурсов службы. |
|
cpus вещественное число |
Лимит процессорного времени службы. Соответствует параметру |
|
memory строка |
Лимит памяти службы в формате
Опускание единицы измерения по умолчанию задаёт байты. Соответствует параметру |
журналирование словарь | Настройка журналирования для службы. |
|
драйвер строка |
Настройка драйвера журналирования для службы. Соответствует параметру |
|
параметры словарь |
Параметры для драйвера журналирования службы. Соответствует параметру |
режим строка | Режим репликации службы. Служба будет удалена и пересоздана при изменении. Соответствует параметру Доступные значения:
|
монтирования список / элементы=словарь | Список словарей, описывающих монтирования службы. Соответствует параметру |
|
настройка_драйвера словарь |
Настройка драйвера тома. Может использоваться только при |
|
имя строка |
Имя плагина драйвера тома для использования в томе. |
|
параметры словарь |
Параметры в виде пар ключ-значение для передачи драйверу этого тома. |
|
метки словарь |
Метки тома для применения. |
|
без_копирования булево |
Отключить копирование данных из контейнера при создании тома. Может использоваться только при Доступные значения:
|
|
распространение строка |
Режим распространения для использования. Может использоваться только при Доступные значения:
|
|
только_чтение булево |
Должно ли монтирование быть только для чтения. Доступные значения:
|
|
источник строка |
Источник монтирования (например, имя тома или путь к хосту). Должен быть указан, если |
|
цель строка / обязательный |
Путь в контейнере. |
|
режим_tmpfs целое число |
Режим файла tmpfs в восьмеричной форме. Может использоваться только при |
|
размер_tmpfs строка |
Размер монтирования tmpfs в формате Может использоваться только при |
|
тип строка |
Тип подключения. Обратите внимание, что Варианты:
|
имя строка / обязательно | Имя службы. Соответствует параметру |
сети список / элементы=любые | Список имен или словарей сетей службы. При передаче словарей допустимыми подпараметрами являются До версии API 1.29 обновление и удаление сетей не поддерживается. Если внесены изменения, служба будет удалена и пересоздана. Соответствует параметру |
размещение словарь | Настройка предпочтений и ограничений размещения службы. |
|
ограничения список / элементы=строка |
Список ограничений размещения службы. Соответствует параметру |
|
предпочтения список / элементы=словарь |
Список предпочтений размещения в виде пар ключ-значение. Соответствует параметру Требуется версия API >= 1.27. |
|
максимальное_количество_реплик_на_узел целое добавлено в community.docker 1.3.0 |
Максимальное количество задач на узел. Соответствует параметру Требуется версия API >= 1.40 |
опубликовать список / элементы=словарь | Список словарей, описывающих опубликованные порты службы. Соответствует параметру |
|
режим строка |
Режим публикации. Требуется версия API >= 1.32. Варианты:
|
|
протокол строка |
Используемый протокол. Варианты:
|
|
опубликованный_порт целое |
Порт, доступный извне. |
|
целевой_порт целое / обязательно |
Порт внутри контейнера для экспонирования. |
только_чтение логическое | Подключить корневую файловую систему контейнера в режиме только для чтения. Соответствует параметру Варианты:
|
реплики целое | Количество созданных контейнеров в службе. Действительно только если Если установлено Если установлено Соответствует параметру По умолчанию: |
резервации словарь | Настройка резервирования ресурсов службы. |
|
cpu вещественное |
Резервирование ЦП службы. Соответствует параметру |
|
память строка |
Резервирование памяти службы в формате
Пропуск единицы измерения по умолчанию устанавливает байты. Соответствует параметру |
разрешить_образ логическое | Если текущий дайджест образа должен быть разрешен из реестра и обновлен при изменении. Требуется версия API >= 1.30. Варианты:
|
restart_config dictionary | Настраивает, как и следует ли перезапускать контейнеры после их завершения. |
|
condition string |
Условие перезапуска сервиса. Соответствует параметру Варианты:
|
|
delay string |
Задержка между перезапусками. Принимает строку в формате: Соответствует параметру |
|
max_attempts integer |
Максимальное количество перезапусков сервиса. Соответствует параметру |
|
window string |
Окно оценки политики перезапуска. Принимает строку в формате: Соответствует параметру |
rollback_config dictionary | Настраивает, как следует откатывать сервис в случае сбоя обновления. |
|
delay string |
Задержка между откатными действиями. Принимает строку в формате: Соответствует параметру Требуется версия API >= 1.28. |
|
failure_action string |
Действие, которое следует предпринять в случае сбоя отката. Соответствует параметру Требуется версия API >= 1.28. Варианты:
|
|
max_failure_ratio float |
Доля задач, которые могут завершиться неудачей во время отката. Соответствует параметру Требуется версия API >= 1.28. |
|
monitor string |
Продолжительность мониторинга сбоев после каждого откатного действия. Принимает строку в формате: Соответствует параметру Требуется версия API >= 1.28. |
|
order string |
Указывает порядок операций во время откатов. Соответствует параметру Требуется версия API >= 1.29. |
|
parallelism integer |
Количество контейнеров, которые нужно откатить одновременно. Если установлено значение 0, все контейнеры откатываются одновременно. Соответствует параметру Требуется версия API >= 1.28. |
secrets list / elements=dictionary | Список словарей, описывающих секреты сервиса. Соответствует параметру |
|
filename string |
Имя файла, содержащего секрет. По умолчанию используется Соответствует ключу |
|
gid string |
GID группы владельца файла секрета. |
|
mode integer |
Режим доступа к файлу внутри контейнера. Должно быть восьмеричным числом (например, |
|
secret_id string |
ID секрета. |
|
secret_name string / required |
Имя секрета, определённое при его создании. |
|
uid string |
UID владельца файла секрета. |
ssl_version string | Укажите допустимое значение версии SSL. Значение по умолчанию определяется модулем SSL Python. Если значение не указано в задаче, будет использовано значение переменной окружения Примечание: этот параметр больше не поддерживается для Docker SDK для Python 7.0.0+. Указание его с Docker SDK для Python 7.0.0 или новее приведет к ошибке. |
state string |
Варианты:
|
stop_grace_period string | Время ожидания перед принудительным завершением контейнера. Принимает длительность в виде строки в формате: Соответствует параметру |
stop_signal string | Переопределяет используемый по умолчанию сигнал для остановки контейнера. Соответствует параметру |
sysctls dictionary добавлен в community.docker 3.10.0 | Словарь пар ключ-значение. |
timeout integer | Максимальное время в секундах ожидания ответа от API. Если значение не указано в задаче, будет использовано значение переменной окружения По умолчанию: |
tls boolean | Защитить подключение к API с использованием TLS без проверки подлинности сервера Docker. Обратите внимание, что если Если значение не указано в задаче, будет использовано значение переменной окружения Варианты:
|
tls_hostname string | При проверке подлинности сервера Docker укажите ожидаемое имя сервера. Если значение не указано в задаче, будет использовано значение переменной окружения Обратите внимание, что у этого параметра было значение по умолчанию Примечание: этот параметр больше не поддерживается для Docker SDK для Python 7.0.0+. Указание его с Docker SDK для Python 7.0.0 или новее приведет к ошибке. |
tty boolean | Выделить псевдо-TTY. Соответствует параметру Варианты:
|
update_config dictionary | Настраивает способ обновления сервиса. Полезно для настройки поэтапного обновления. |
|
delay string |
Задержка при поэтапном обновлении. Принимает строку в формате: Соответствует параметру |
|
failure_action string |
Действие в случае сбоя контейнера. Соответствует параметру Использование Варианты:
|
|
max_failure_ratio float |
Доля задач, которые могут завершиться с ошибкой во время обновления, прежде чем будет вызвано действие по обработке ошибки. Соответствует параметру |
|
monitor string |
Время мониторинга обновлённых задач на предмет ошибок. Принимает строку в формате: Соответствует параметру |
|
order string |
Указывает порядок операций при поэтапном внедрении обновленной задачи. Соответствует параметру Требует API версии >= 1.29. |
|
параллелизм целое число |
Параллелизм при обновлении. Соответствует параметру |
использовать_ssh_клиент булево добавлен в community.docker 1.5.0 | Для SSH-транспортов используйте инструмент Требуется Docker SDK для Python версии 4.4.0 или новее. Варианты:
|
пользователь строка | Устанавливает имя пользователя или UID, используемые для указанной команды. До версии Ansible 2.8 значение по умолчанию для этого параметра было Значение по умолчанию было удалено, чтобы при отсутствии указанного здесь пользователя использовался пользователь, определенный в образе. Соответствует параметру |
проверять_сертификаты псевдонимы: tls_verify булево | Обеспечьте безопасность подключения к API, используя TLS и проверяя подлинность хоста Docker. Если значение не указано в задаче, вместо него будет использовано значение переменной среды Варианты:
|
рабочая_директория строка | Путь к рабочей директории. Соответствует параметру |
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
группа_действий | Группы действий: community.docker.docker, docker | Используйте |
режим_проверки | Поддержка: полная | Может работать в режиме |
режим_сравнения | Поддержка: полная | Возвращает подробную информацию о том, что изменилось (или, возможно, требует изменения в |
Примечания
Примечание
- Образы будут разрешаться только до последнего дайджеста при использовании 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 список / элементы=строка | Список изменённых атрибутов сервиса, если сервис был изменён, иначе []. Возвращается: всегда Пример: |
rebuilt логическое | Истина, если сервис был пересоздан (удален и создан) Возвращается: всегда Пример: |
swarm_service словарь | Словарь переменных, представляющих текущее состояние сервиса. Соответствует формату параметров модуля. Обратите внимание, что факты не являются частью зарегистрированных переменных, но доступны напрямую. Обратите внимание, что до Ansible 2.7.9 переменная возврата была документирована как Возвращается: всегда Пример: |
Ссылки на сборку
© 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