docker_swarm_service – служба docker swarm
Новая версия с 2.7.
Обзор
- Управляет службами docker через узел менеджера swarm.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- API Docker >= 1.24
- Docker SDK для Python: Обратите внимание, что модуль Python docker-py устарел, его заменил docker (подробности см. в здесь). Этот модуль не работает с docker-py.
- Docker SDK для Python >= 2.0.2
- Python >= 2.7
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | ||
|---|---|---|---|---|
| api_version строка | По умолчанию: "auto" | Версия Docker API, работающая на Docker хосте. По умолчанию используется последняя версия API, поддерживаемая Docker SDK для Python и демоном docker. Если значение не указано в задаче, будет использовано значение переменной среды DOCKER_API_VERSION. Если переменная среды не задана, будет использовано значение по умолчанию.псевдонимы: docker_api_version | ||
| args список | Список аргументов, которые необходимо передать контейнеру. Соответствует параметру ARG в docker service create. | |||
| ca_cert путь | Использование сертификата CA при проверке сервера, указав путь к файлу сертификата CA. Если значение не указано в задаче и переменная среды DOCKER_CERT_PATH задана, будет использован файл ca.pem из каталога, указанного в переменной среды DOCKER_CERT_PATH.псевдонимы: tls_ca_cert, cacert_path | |||
| 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 | |||
| command необработанный добавлен в 2.8 | Команда для выполнения при запуске контейнера. Команда может быть строкой, списком или списком строк. Соответствует параметру COMMAND в docker service create. | |||
| configs список | Список словарей, описывающих конфигурации сервиса. Соответствует параметру --config в docker service create.Требуется версия API >= 1.30. | |||
| config_id строка / обязательно | Идентификатор конфигурации. | |||
| config_name строка / обязательно | Имя конфигурации, определённое при её создании. | |||
| filename строка / обязательно | Имя файла, содержащего конфигурацию. По умолчанию совпадает с config_name, если не указано. | |||
| gid строка | GID группы файла конфигурации. | |||
| mode целое число | Режим доступа к файлу внутри контейнера. Должен быть восьмеричным числом (например, 0644 или 0444). | |||
| uid строка | UID владельца файла конфигурации. | |||
| constraints список | Список ограничений сервиса. Соответствует параметру --constraint в docker service create.Устарело в 2.8, будет удалено в 2.12. Используйте параметр placement.constraints вместо него. | |||
| container_labels словарь | Словарь пар ключ-значение. Соответствует параметру --container-label в docker service create. | |||
| debug булево |
| Режим отладки | ||
| dns список | Список пользовательских DNS-серверов. Соответствует параметру --dns в docker service create.Требуется версия API >= 1.25. | |||
| dns_options список | Список пользовательских DNS-опций. Соответствует параметру --dns-option в docker service create.Требуется версия API >= 1.25. | |||
| dns_search список | Список пользовательских DNS-доменных имён. Соответствует параметру --dns-search в docker service create.Требуется версия API >= 1.25. | |||
| 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 | ||
| endpoint_mode строка |
| Режим конечной точки сервиса. Соответствует параметру --endpoint-mode в docker service create.Требуется версия API >= 1.25. | ||
| env необработанный | Список или словарь переменных окружения сервиса. Если передан список, каждый элемент должен быть в формате KEY=VALUE.Если передан словарь, значения, которые могут быть интерпретированы как числа, булевы значения или другие типы парсером YAML, должны быть заключены в кавычки (например, "true") для предотвращения потери данных.Соответствует параметру --env в docker service create. | |||
| env_files список добавлен в 2.8 | Список путей к файлам, присутствующим на целевом сервере, содержащим переменные окружения FOO=BAR.Порядок списка имеет значение для определения значения переменной, которая встречается более одного раза. Если переменная также присутствует в env, значение env будет переопределять. | |||
| force_update булево |
| Выполнить обновление даже если изменений нет. Соответствует параметру --force в docker service update.Требуется версия API >= 1.25. | ||
| groups список добавлен в 2.8 | Список дополнительных имён групп и/или идентификаторов, под которыми будет выполняться процесс контейнера. Соответствует параметру --group в docker service update.Требуется версия API >= 1.25. | |||
| healthcheck словарь добавлен в 2.8 | Настроить проверку для определения того, являются ли контейнеры для этого сервиса «здоровыми». См. документацию инструкции Dockerfile HEALTHCHECK для получения подробной информации о работе проверок.
interval, timeout и start_period задаются как продолжительности. Они принимают продолжительность в виде строки в формате, похожем на: 5h34m56s, 1m30s и т. д. Поддерживаемые единицы измерения: us, ms, s, m и h.Требуется версия API >= 1.25. | |||
| interval строка | Время между выполнением проверки. | |||
| retries целое число | Необходимое количество последовательных сбоев для отметки состояния как нездорового. Принимает целочисленные значения. | |||
| start_period строка | Начальный период для инициализации контейнера перед запуском отсчета попыток проверки состояния. | |||
| test необработанный | Команда для проверки состояния. Должна быть строкой или списком. Если списком, первый элемент должен быть одним из NONE, CMD или CMD-SHELL. | |||
| timeout строка | Максимальное время выполнения одной проверки. | |||
| hostname строка | Имя хоста контейнера. Соответствует параметру --hostname в docker service create. Требуется версия API >= 1.25. | |||
| hosts словарь добавлен в 2.8 | Словарь сопоставлений хост-IP, где имя хоста — ключ в словаре. Каждое имя хоста будет добавлено в файл /etc/hosts контейнера. Соответствует параметру --host в docker service create. Требуется версия API >= 1.25. | |||
| image строка / обязательно | Путь и тэг изображения сервиса. Соответствует параметру IMAGE в docker service create. | |||
| labels словарь | Словарь пар ключ-значение. Соответствует параметру --label в docker service create. | |||
| limit_cpu вещественное число | Предел ЦП сервиса. 0 соответствует отсутствию ограничения.Соответствует параметру --limit-cpu в docker service create. Устарело в 2.8, будет удалено в 2.12. Используйте параметр limits.cpus вместо этого. | |||
| limit_memory строка | Предел памяти сервиса в формате <number>[<unit>]. Число — положительное целое. Единица измерения может быть B (байт), K (кибибайт, 1024 байта), M (мебибайт), G (гибибайт), T (тебибайт) или P (пебибайт).0 соответствует отсутствию ограничения.Если единица измерения опущена, по умолчанию предполагаются байты. Соответствует параметру --limit-memory в docker service create. Устарело в 2.8, будет удалено в 2.12. Используйте параметр limits.memory вместо этого. | |||
| limits словарь добавлен в 2.8 | Настройка лимитов ресурсов сервиса. | |||
| 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 строка | Настройка драйвера логирования для сервиса. Соответствует параметру --log-driver в docker service create. Устарело в 2.8, будет удалено в 2.12. Используйте параметр logging.driver вместо этого. | |||
| log_driver_options словарь | Параметры для драйвера логирования сервиса. Соответствует параметру --log-opt в docker service create. Устарело в 2.8, будет удалено в 2.12. Используйте параметр logging.options вместо этого. | |||
| logging словарь добавлен в 2.8 | Настройка логирования для сервиса. | |||
| driver строка | Настройка драйвера логирования для сервиса. Соответствует параметру --log-driver в docker service create. | |||
| options словарь | Параметры для драйвера логирования сервиса. Соответствует параметру --log-opt в docker service create. | |||
| mode строка |
| Режим репликации сервиса. Сервис будет удален и пересоздан при изменении. Соответствует параметру --mode в docker service create. | ||
| mounts список | Список словарей, описывающих подключения сервиса. Соответствует параметру --mount в docker service create. | |||
| driver_config словарь добавлен в 2.8 | Настройка драйвера томов. Можно использовать только когда mode равен volume. | |||
| name строка | Имя плагина драйвера томов для использования с томом. | |||
| options словарь | Параметры в виде пар ключ-значение, передаваемые драйверу для этого тома. | |||
| labels словарь добавлен в 2.8 | Метки тома для применения. | |||
| no_copy логический добавлен в 2.8 |
| Отключить копирование данных из контейнера при создании тома. Можно использовать только когда mode равен volume. | ||
| propagation строка добавлен в 2.8 |
| Режим распространения. Можно использовать только когда mode равен bind. | ||
| readonly логический |
| Должен ли этот том быть только для чтения? | ||
| source строка | Источник подключения (например, имя тома или путь на хосте). Требуется, если тип не tmpfs. | |||
| target строка / обязательно | Путь в контейнере. | |||
| tmpfs_mode целое число добавлен в 2.8 | Режим файла tmpfs в восьмеричном формате. Можно использовать только когда mode равен tmpfs. | |||
| tmpfs_size строка добавлен в 2.8 | Размер подмонтированного tmpfs в формате <number>[<unit>]. Число — положительное целое. Единица измерения может быть B (байт), K (кибибайт, 1024Б), M (мебибайт), G (гибибайт), T (тебибайт) или P (пебибайт).Может быть использован только при mode равном tmpfs. | |||
| type строка |
| Тип монтирования. | ||
| name строка / обязательно | Имя сервиса. Соответствует параметру --name в docker service create. | |||
| networks список | Список имён сетей сервиса. До версии API 1.29 обновление и удаление сетей не поддерживается. Если изменения будут внесены, сервис будет удалён и пересоздан. Соответствует параметру --network в docker service create. | |||
| placement словарь добавлен в 2.8 | Настройка предпочтений и ограничений размещения сервиса. | |||
| constraints список | Список ограничений сервиса. Соответствует параметру --constraint в docker service create. | |||
| preferences список | Список предпочтений размещения в виде пар ключ-значение. Соответствует параметру --placement-pref в docker service create.Требуется версия API >= 1.27. | |||
| publish список | Список словарей, описывающих опубликованные порты сервиса. Соответствует параметру --publish в docker service create.Требуется версия API >= 1.25. | |||
| mode строка |
| Использовать режим публикации. Требуется версия API >= 1.32. | ||
| protocol строка |
| Использовать протокол. | ||
| published_port целое число / обязательно | Порт, доступный извне. | |||
| target_port целое число / обязательно | Порт внутри контейнера для экспонирования. | |||
| read_only булево добавлен в 2.8 |
| Монтировать корневую файловую систему контейнера в режиме только для чтения. Соответствует параметру --read-only в docker service create. | ||
| replicas целое число | По умолчанию: -1 | Количество экземпляров контейнеров в сервисе. Действительно только если mode равен replicated.Если установлено значение -1, а сервис отсутствует, реплики сервиса будут установлены в 1.Если установлено значение -1, а сервис присутствует, реплики сервиса останутся неизменными.Соответствует параметру --replicas в docker service create. | ||
| reservations словарь добавлен в 2.8 | Настройка резервации ресурсов сервиса. | |||
| cpus вещественное число | Резервирование ЦП сервиса. 0 соответствует отсутствию резервирования.Соответствует параметру --reserve-cpu в docker service create. | |||
| memory строка | Резервирование памяти сервиса в формате <number>[<unit>]. Число — положительное целое. Единица измерения может быть B (байт), K (кибибайт, 1024Б), M (мебибайт), G (гибибайт), T (тебибайт) или P (пебибайт).0 соответствует отсутствию резервирования.Пропуск единицы измерения по умолчанию соответствует байтам. Соответствует параметру --reserve-memory в docker service create. | |||
| reserve_cpu вещественное число | Резервирование ЦП сервиса. 0 соответствует отсутствию резервирования.Соответствует параметру --reserve-cpu в docker service create.Устарело в 2.8, будет удалено в 2.12. Используйте параметр reservations.cpus вместо него. | |||
| reserve_memory строка | Резервирование памяти сервиса в формате <number>[<unit>]. Число — положительное целое. Единица измерения может быть B (байт), K (кибибайт, 1024Б), M (мебибайт), G (гибибайт), T (тебибайт) или P (пебибайт).0 соответствует отсутствию резервирования.Пропуск единицы измерения по умолчанию соответствует байтам. Соответствует параметру --reserve-memory в docker service create.Устарело в 2.8, будет удалено в 2.12. Используйте параметр reservations.memory вместо него. | |||
| resolve_image булево добавлен в 2.8 |
| Если текущий дайджест образа должен быть решен из реестра и обновлён при изменении. Требуется версия API >= 1.30. | ||
| restart_config словарь добавлен в 2.8 | Настройка перезапуска контейнеров при их завершении. | |||
| condition строка |
| Условие перезапуска сервиса. Соответствует параметру --restart-condition в docker service create. | ||
| delay строка | Задержка между перезапусками. Принимает строку в формате: 5h34m56s, 1m30s и т.д. Поддерживаемые единицы измерения: us, ms, s, m и h.Соответствует параметру --restart-delay в docker service create. | |||
| max_attempts целое число | Максимальное количество перезапусков сервиса. Соответствует параметру --restart-condition в docker service create. | |||
| window строка | Окно оценки политики перезапуска. Принимает строку в формате: 5h34m56s, 1m30s и т.д. Поддерживаемые единицы измерения: us, ms, s, m и h.Соответствует параметру --restart-window в docker service create. | |||
| restart_policy строка |
| Условие перезапуска сервиса. Устарело в 2.8, будет удалено в 2.12. Используйте параметр restart_config.condition вместо него.Соответствует параметру --restart-condition в docker service create. | ||
| restart_policy_attempts целое число | Максимальное количество перезапусков службы. Соответствует параметру --restart-condition в docker service create. Устарело в 2.8, будет удалено в 2.12. Используйте параметр restart_config.max_attempts вместо него. | |||
| restart_policy_delay сырое | Задержка между перезапусками. Принимает длительность как целое число в наносекундах или как строку в формате, напоминающем: 5h34m56s, 1m30s и т. д. Поддерживаемые единицы измерения: us, ms, s, m и h. Соответствует параметру --restart-delay в docker service create. Устарело в 2.8, будет удалено в 2.12. Используйте параметр restart_config.delay вместо него. | |||
| restart_policy_window сырое | Окно оценки политики перезапуска. Принимает длительность как целое число в наносекундах или как строку в формате, напоминающем: 5h34m56s, 1m30s и т. д. Поддерживаемые единицы измерения: us, ms, s, m и h. Соответствует параметру --restart-window в docker service create. Устарело в 2.8, будет удалено в 2.12. Используйте параметр restart_config.window вместо него. | |||
| rollback_config словарь добавлено в 2.8 | Настройка способа отката службы в случае сбоя обновления. | |||
| delay строка | Задержка между отката заданий. Принимает строку в формате, напоминающем: 5h34m56s, 1m30s и т. д. Поддерживаемые единицы измерения: us, ms, s, m и h. Соответствует параметру --rollback-delay в docker service create. Требуется версия API ≥ 1.28. | |||
| failure_action строка |
| Действие в случае сбоя отката. Соответствует параметру --rollback-failure-action в docker service create. Требуется версия API ≥ 1.28. | ||
| max_failure_ratio вещественное число | Доля задач, которые могут завершиться сбоем во время отката. Соответствует параметру --rollback-max-failure-ratio в docker service create. Требуется версия API ≥ 1.28. | |||
| monitor строка | Длительность мониторинга за ошибками после каждого отката задания. Принимает строку в формате, напоминающем: 5h34m56s, 1m30s и т. д. Поддерживаемые единицы измерения: us, ms, s, m и h. Соответствует параметру --rollback-monitor в docker service create. Требуется версия API ≥ 1.28. | |||
| order строка |
| Определяет порядок операций при откатах. Соответствует параметру --rollback-order в docker service create. Требуется версия API ≥ 1.29. | ||
| parallelism целое число | Количество контейнеров, которые нужно откатить одновременно. Если установлено значение 0, все контейнеры откатываются одновременно. Соответствует параметру --rollback-parallelism в docker service create. Требуется версия API ≥ 1.28. | |||
| secrets список | Список словарей, описывающих секреты службы. Соответствует параметру --secret в docker service create. Требуется версия API ≥ 1.25. | |||
| filename строка | Имя файла, содержащего секрет. По умолчанию — secret_name, если не указано. Соответствует ключу target в docker service create --secret. | |||
| gid строка | GID группы файла секрета. | |||
| mode целое число | Режим доступа к файлу внутри контейнера. Должно быть восьмеричным числом (например, 0644 или 0444). | |||
| secret_id строка / обязательно | Идентификатор секрета. | |||
| secret_name строка / обязательно | Имя секрета, определенное при его создании. | |||
| uid строка | UID владельца файла секрета. | |||
| ssl_version строка | Укажите допустимый номер версии SSL. Значение по умолчанию определяется модулем ssl.py. Если значение не указано в задании, будет использовано значение переменной среды DOCKER_SSL_VERSION. | |||
| state строка / обязательно |
| absent - Служба с указанным именем будет удалена, а её задачи остановлены.present - Утверждает существование службы с соответствующим именем и параметрами конфигурации. Неуказанные параметры конфигурации будут установлены по умолчанию Docker. | ||
| stop_grace_period строка добавлено в 2.8 | Время ожидания перед принудительным завершением контейнера. Принимает длительность как строку в формате, напоминающем: 5h34m56s, 1m30s и т. д. Поддерживаемые единицы измерения: us, ms, s, m и h. Соответствует параметру --stop-grace-period в docker service create. | |||
| stop_signal строка добавлено в 2.8 | Переопределение сигнала по умолчанию, используемого для остановки контейнера. Соответствует параметру --stop-signal в docker service create. | |||
| timeout целое число | По умолчанию: 60 | Максимальное время в секундах ожидания ответа от API. Если значение не указано в задании, будет использовано значение переменной среды DOCKER_TIMEOUT. Если переменная среды не задана, будет использовано значение по умолчанию. | ||
| tls логическое значение |
| Защитить соединение с API с помощью TLS без проверки подлинности сервера Docker. Обратите внимание, что если validate_certs также установлено в yes, оно будет иметь приоритет.Если значение не указано в задании, будет использовано значение переменной среды DOCKER_TLS. Если переменная среды не задана, будет использовано значение по умолчанию. | ||
| tls_hostname строка | По умолчанию: "localhost" | При проверке подлинности сервера Docker укажите ожидаемое имя сервера. Если значение не указано в задании, будет использовано значение переменной среды DOCKER_TLS_HOSTNAME. Если переменная среды не задана, будет использовано значение по умолчанию. | ||
| tty логическое значение |
| Выделить псевдо-TTY. Соответствует параметру --tty в docker service create. Требуется версия API ≥ 1.25. | ||
| update_config словарь добавлено в 2.8 | Настраивает, как служба должна обновляться. Полезно для настройки постепенных обновлений. | |||
| delay строка | Задержка постепенного обновления. Принимает строку в формате, похожем на: 5h34m56s, 1m30s и т. д. Поддерживаемые единицы измерения: us, ms, s, m и h. Соответствует параметру --update-delay модуля docker service create. | |||
| failure_action строка |
| Действие, которое следует предпринять в случае сбоя контейнера. Соответствует параметру --update-failure-action модуля docker service create. Использование rollback требует API версии >= 1.29. | ||
| max_failure_ratio вещественное число | Доля задач, которые могут завершиться ошибкой во время обновления, прежде чем будет выполнено действие при ошибке. Соответствует параметру --update-max-failure-ratio модуля docker service create. Требуется API версия >= 1.25. | |||
| monitor строка | Время мониторинга обновленных задач на наличие ошибок. Принимает строку в формате, похожем на: 5h34m56s, 1m30s и т. д. Поддерживаемые единицы измерения: us, ms, s, m и h. Соответствует параметру --update-monitor модуля docker service create. Требуется API версия >= 1.25. | |||
| order строка |
| Указывает порядок операций при постепенном развертывании обновленной задачи. Соответствует параметру --update-order модуля docker service create. Требуется API версия >= 1.29. | ||
| parallelism целое число | Параллелизм постепенного обновления. Соответствует параметру --update-parallelism модуля docker service create. | |||
| update_delay raw | Задержка постепенного обновления. Принимает длительность как целое число в наносекундах или строку в формате, похожем на: 5h34m56s, 1m30s и т. д. Поддерживаемые единицы измерения: us, ms, s, m и h. Соответствует параметру --update-delay модуля docker service create. До версии Ansible 2.8 значение по умолчанию для этого параметра было 10. Устарело в 2.8, будет удалено в 2.12. Используйте параметр update_config.delay вместо него. | |||
| update_failure_action строка |
| Действие, которое следует предпринять в случае сбоя контейнера. Соответствует параметру --update-failure-action модуля docker service create. Использование rollback требует API версии >= 1.29. Устарело в 2.8, будет удалено в 2.12. Используйте параметр update_config.failure_action вместо него. | ||
| update_max_failure_ratio вещественное число | Доля задач, которые могут завершиться ошибкой во время обновления, прежде чем будет выполнено действие при ошибке. Соответствует параметру --update-max-failure-ratio модуля docker service create. Требуется API версия >= 1.25. Устарело в 2.8, будет удалено в 2.12. Используйте параметр update_config.max_failure_ratio вместо него. | |||
| update_monitor raw | Время мониторинга обновленных задач на наличие ошибок. Принимает длительность как целое число в наносекундах или строку в формате, похожем на: 5h34m56s, 1m30s и т. д. Поддерживаемые единицы измерения: us, ms, s, m и h. Соответствует параметру --update-monitor модуля docker service create. Требуется API версия >= 1.25. Устарело в 2.8, будет удалено в 2.12. Используйте параметр update_config.monitor вместо него. | |||
| update_order строка |
| Указывает порядок операций при постепенном развертывании обновленной задачи. Соответствует параметру --update-order модуля docker service create. Требуется API версия >= 1.29. Устарело в 2.8, будет удалено в 2.12. Используйте параметр update_config.order вместо него. | ||
| update_parallelism целое число | Параллелизм постепенного обновления. Соответствует параметру --update-parallelism модуля docker service create. До версии Ansible 2.8 значение по умолчанию для этого параметра было 1. Устарело в 2.8, будет удалено в 2.12. Используйте параметр update_config.parallelism вместо него. | |||
| user строка | Устанавливает имя пользователя или UID, используемый для указанной команды. До версии Ansible 2.8 значение по умолчанию для этого параметра было root. Значение по умолчанию было удалено, чтобы в случае отсутствия указанного здесь пользователя использовался пользователь, определенный в образе. Соответствует параметру --user модуля docker service create. | |||
| validate_certs логическое значение |
| Обеспечение безопасности подключения к API с помощью TLS и проверки подлинности сервера Docker-хоста. Если значение не указано в задаче, будет использовано значение переменной среды DOCKER_TLS_VERIFY. Если переменная среды не задана, будет использовано значение по умолчанию.алиасы: tls_verify | ||
| working_dir строка добавлено в 2.8 | Путь к рабочей директории. Соответствует параметру --workdir модуля docker service create. | |||
Примечания
Примечание
- Образы будут разрешаться только до последнего дайджеста при использовании Docker API >= 1.30 и Docker SDK for Python >= 3.2.0. При использовании более старых версий используйте
force_update: true, чтобы заставить кластер Swarm разрешить новый образ. - Подключайтесь к демону 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://docker-py.readthedocs.io/en/stable/machine/. - При подключении к демону Docker с TLS вам может потребоваться установить дополнительные пакеты Python. Для Docker SDK for Python версии 2.4 или выше это можно сделать, установив
docker[tls]с помощью pip. - Обратите внимание, что Docker SDK for Python позволяет указать путь к конфигурации Docker только для очень небольшого числа функций. В общем случае будет использоваться
$HOME/.docker/config.json, если переменная средыDOCKER_CONFIGне задана, и$DOCKER_CONFIG/config.jsonв противном случае.
Примеры
- name: Set command and arguments
docker_swarm_service:
name: myservice
image: alpine
command: sleep
args:
- "3600"
- name: Set a bind mount
docker_swarm_service:
name: myservice
image: alpine
mounts:
- source: /tmp/
target: /remote_tmp/
type: bind
- name: Set service labels
docker_swarm_service:
name: myservice
image: alpine
labels:
com.example.description: "Accounting webapp"
com.example.department: "Finance"
- name: Set environment variables
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
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
docker_swarm_service:
name: myservice
image: alpine
restart_config:
condition: on-failure
delay: 5s
max_attempts: 3
window: 120s
- name: Set update config
docker_swarm_service:
name: myservice
image: alpine
update_config:
parallelism: 2
delay: 10s
order: stop-first
- name: Set rollback config
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
docker_swarm_service:
name: myservice
image: alpine:edge
placement:
preferences:
- spread: node.labels.mylabel
constraints:
- node.role == manager
- engine.labels.operatingsystem == ubuntu 14.04
- name: Set configs
docker_swarm_service:
name: myservice
image: alpine:edge
configs:
- config_id: myconfig_id
config_name: myconfig_name
filename: "/tmp/config.txt"
- name: Set networks
docker_swarm_service:
name: myservice
image: alpine:edge
networks:
- mynetwork
- name: Set secrets
docker_swarm_service:
name: myservice
image: alpine:edge
secrets:
- secret_id: mysecret_id
secret_name: mysecret_name
filename: "/run/secrets/secret.txt"
- name: Start service with healthcheck
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
docker_swarm_service:
name: myservice
image: alpine:edge
reservations:
cpus: 0.25
memory: 20M
limits:
cpus: 0.50
memory: 50M
- name: Remove service
docker_swarm_service:
name: myservice
state: absent
Значения возврата
Общие значения возврата описаны здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| changes список | всегда | Список измененных атрибутов службы, если служба была изменена, иначе []. Пример: ['container_labels', 'replicas'] |
| rebuilt булево значение | всегда | True, если служба была пересоздана (удалена и создана заново) Пример: True |
| swarm_service словарь | всегда | Словарь переменных, представляющих текущее состояние службы. Соответствует формату параметров модуля. Обратите внимание, что факты не являются частью зарегистрированных переменных, но к ним можно получить доступ напрямую. Обратите внимание, что до Ansible 2.7.9 возвращаемое значение было документировано как ansible_swarm_service, в то время как модуль фактически возвращал переменную ansible_docker_service. В Ansible 2.7.9 и Ansible 2.8.0 переменная была переименована в swarm_service как в коде, так и в документации. В Ansible 2.7.x старое имя ansible_docker_service по-прежнему можно использовать.Пример: { "args": [ "3600" ], "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": [ { "readonly": false, "source": "/tmp/", "target": "/remote_tmp/", "type": "bind", "labels": null, "propagation": null, "no_copy": null, "driver_config": null, "tmpfs_size": null, "tmpfs_mode": null } ], "networks": null, "placement_preferences": [ { "spread": "node.labels.mylabel" } ], "publish": null, "read_only": null, "replicas": 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, "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 } |
Статус
- Этот модуль не гарантирует обратную совместимость интерфейса. [превью]
- Этот модуль поддерживается сообществом Ansible. [community]
Авторы
- Dario Zanzico (@dariko)
- Jason Witkowski (@jwitko)
- Hannes Ljungberg (@hannseman)
Подсказка
Если вы заметили какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.8/modules/docker_swarm_service_module.html