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 | Настроить проверку, которая выполняется для определения того, являются ли контейнеры для этого сервиса «здоровыми». Смотрите документацию по инструкции HEALTHCHECK Dockerfile instruction для получения подробной информации о том, как работают проверки состояния.
interval, timeout и start_period указаны как продолжительности. Они принимают продолжительность как строку в формате, похожем на: 5h34m56s, 1m30s и т.д. Поддерживаемые единицы измерения: us, ms, s, m и h. Требуется версия API >= 1.25. | |||
| интервал строка | Время между выполнением проверки. | |||
| повторные попытки целое число | Необходимые последовательные сбои для отметки как неисправного. Принимает целое число. | |||
| период_начала строка | Период начала для инициализации контейнера перед запуском отсчёта попыток проверки работоспособности. | |||
| тест сырой | Команда для проверки работоспособности. Должна быть строкой или списком. Если список, первый элемент должен быть одним из NONE, CMD или CMD-SHELL. | |||
| таймаут строка | Максимальное время для выполнения одной проверки. | |||
| имя_хоста строка | Имя хоста контейнера. Соответствует параметру --hostname в docker service create. Требуется версия API ≥ 1.25. | |||
| хосты словарь добавлено в 2.8 | Словарь сопоставлений хост-IP, где имя хоста является ключом в словаре. Каждое имя хоста будет добавлено в файл /etc/hosts контейнера. Соответствует параметру --host в docker service create. Требуется версия API ≥ 1.25. | |||
| образ строка | Путь и метка изображения службы. Соответствует параметру IMAGE в docker service create. | |||
| метки словарь | Словарь пар ключ-значение. Соответствует параметру --label в docker service create. | |||
| ограничение_cpu вещественное число | Ограничение ЦП службы. 0 — означает без ограничений.Соответствует параметру --limit-cpu в docker service create. Устарело в 2.8, будет удалено в 2.12. Используйте параметр limits.cpus вместо этого. | |||
| ограничение_памяти строка | Ограничение памяти службы в формате <number>[<unit>]. Число — положительное целое. Единица измерения может быть B (байт), K (кибибайт, 1024Б), M (мебибайт), G (гибибайт), T (тебибайт) или P (пебибайт).0 — означает без ограничений.Опускание единицы измерения по умолчанию означает байты. Соответствует параметру --limit-memory в docker service create. Устарело в 2.8, будет удалено в 2.12. Используйте параметр limits.memory вместо этого. | |||
| ограничения словарь добавлено в 2.8 | Настройка ограничений ресурсов службы. | |||
| cpu вещественное число | Ограничение ЦП службы. 0 — означает без ограничений.Соответствует параметру --limit-cpu в docker service create. | |||
| память строка | Ограничение памяти службы в формате <number>[<unit>]. Число — положительное целое. Единица измерения может быть B (байт), K (кибибайт, 1024Б), M (мебибайт), G (гибибайт), T (тебибайт) или P (пебибайт).0 — означает без ограничений.Опускание единицы измерения по умолчанию означает байты. Соответствует параметру --limit-memory в docker service create. | |||
| драйвер_журнала строка | Настройка драйвера логгирования для службы. Соответствует параметру --log-driver в docker service create. Устарело в 2.8, будет удалено в 2.12. Используйте параметр logging.driver вместо этого. | |||
| опции_драйвера_журнала словарь | Параметры драйвера логгирования службы. Соответствует параметру --log-opt в docker service create. Устарело в 2.8, будет удалено в 2.12. Используйте параметр logging.options вместо этого. | |||
| логгирование словарь добавлено в 2.8 | Настройка логгирования для службы. | |||
| драйвер строка | Настройка драйвера логгирования для службы. Соответствует параметру --log-driver в docker service create. | |||
| опции словарь | Параметры драйвера логгирования службы. Соответствует параметру --log-opt в docker service create. | |||
| режим строка |
| Режим репликации службы. Служба будет удалена и пересоздана при изменении. Соответствует параметру --mode в docker service create. | ||
| моунты список / элементы=словарь | Список словарей, описывающих моунты службы. Соответствует параметру --mount в docker service create. | |||
| конфигурация_драйвера словарь добавлено в 2.8 | Конфигурация драйвера томов. Может быть использована только, когда режим — volume. | |||
| имя строка | Имя плагина драйвера томов, используемого для тома. | |||
| опции словарь | Параметры в формате ключ-значение, передаваемые драйверу для данного тома. | |||
| метки словарь добавлено в 2.8 | Метки тома для применения. | |||
| без_копирования булево добавлено в 2.8 |
| Отключить копирование данных из контейнера при создании тома. Может быть использована только, когда режим — volume. | ||
| распространение строка добавлено в 2.8 |
| Режим распространения, который необходимо использовать. Может быть использована только, когда режим — bind. | ||
| только_для_чтения булево |
| Должен ли моунт быть только для чтения. | ||
| источник строка | Источник моунта (например, имя тома или путь на хосте). Должен быть указан, если тип не tmpfs. | |||
| цель строка / обязательно | Путь в контейнере. | |||
| режим_tmpfs целое число добавлено в 2.8 | Сводный режим tmpfs в восьмеричном формате. Может быть использована только, когда режим — tmpfs. | |||
| tmpfs_size строка добавлен в 2.8 | Размер подмонтирования tmpfs в формате <number>[<unit>]. Число — положительное целое. Единицей измерения может быть B (байт), K (кибибайт, 1024Б), M (мебибайт), G (гибибайт), T (тебибайт) или P (пебибайт).Можно использовать только при mode tmpfs. | |||
| type строка |
| Тип подмонтирования. Обратите внимание, что npipe поддерживается только Docker для Windows. Также обратите внимание, что npipe был добавлен в Ansible 2.9. | ||
| name строка / обязательно | Имя службы. Соответствует параметру --name в docker service create. | |||
| networks список / элементы=сырые | Список имен сетей службы или словарей. При передаче словарей допустимыми дополнительными параметрами являются name (обязательный), aliases и options. До версии 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 строка |
| Условие перезапуска службы. Соответствует параметру --restart-condition в docker service create.Устарело в 2.8, будет удалено в 2.12. Используйте параметр restart_config.condition вместо него. | ||
| 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 boolean |
| Выделить псевдо-терминал. Соответствует параметру --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 float | Доля задач, которые могут завершиться неудачно во время обновления, прежде чем будет вызвано действие при сбое. Соответствует параметру --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 float | Доля задач, которые могут завершиться неудачно во время обновления, прежде чем будет вызвано действие при сбое. Соответствует параметру --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 boolean |
| Обеспечение безопасности соединения с 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для запуска разрешения нового образа в кластере. - Подключиться к демону 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]с помощью 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_name: myconfig_name
filename: "/tmp/config.txt"
- name: Set networks
docker_swarm_service:
name: myservice
image: alpine:edge
networks:
- mynetwork
- name: Set networks as a dictionary
docker_swarm_service:
name: myservice
image: alpine:edge
networks:
- name: "mynetwork"
aliases:
- "mynetwork_alias"
options:
foo: bar
- name: Set secrets
docker_swarm_service:
name: myservice
image: alpine:edge
secrets:
- 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. Переменная была переименована в swarm_service как в коде, так и в документации для Ansible 2.7.9 и Ansible 2.8.0. В 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.9/modules/docker_swarm_service_module.html