community.general.docker_swarm_service – docker swarm service
Примечание
Этот плагин является частью коллекции community.general (версия 1.3.2).
Для его установки используйте: ansible-galaxy collection install community.general.
Для использования в книге задач укажите: community.general.docker_swarm_service.
Обзор
- Управляет службами 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 сырой | Команда для выполнения при запуске контейнера. Команда может быть строкой, списком или списком строк. Соответствует параметру 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, будет удалено в community.general 2.0.0. Используйте параметр 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 список / элементы=путь | Список путей к файлам на целевом устройстве, содержащим переменные окружения FOO=BAR.Порядок списка важен для определения значения, присваиваемого переменной, которая появляется более одного раза. Если переменная также присутствует в env, то значение из env будет переопределять. | |||
| force_update логическое |
| Принудительное обновление, даже если не требуется. Соответствует параметру --force в docker service update. Требуется версия API >= 1.25. | ||
| groups список / элементы=строка | Список дополнительных имён и/или идентификаторов групп, в которых будет выполняться процесс контейнера. Соответствует параметру --group в docker service update. Требуется версия API >= 1.25. | |||
| healthcheck словарь | Настройка проверки, которая выполняется для определения того, являются ли контейнеры для этого сервиса «здоровыми». См. документацию по инструкции HEALTHCHECK Dockerfile для получения подробностей о том, как работают проверки работоспособности.
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 словарь | Словарь соответствий имени хоста IP-адресу, где имя хоста является ключом в словаре. Каждое имя хоста будет добавлено в файл /etc/hosts контейнера. Соответствует параметру --host в docker service create. Требуется версия API >= 1.25. | |||
| image строка | Путь и тег изображения сервиса. Соответствует параметру IMAGE в docker service create. | |||
| init boolean добавлен в 0.2.0 community.general |
| Используйте init внутри каждого контейнера службы для перенаправления сигналов и сбора процессов. Соответствует параметру --init в docker service create.Требуется версия API >= 1.37. | ||
| labels словарь | Словарь пар ключ-значение. Соответствует параметру --label в docker service create. | |||
| limit_cpu float | Предел ЦП службы. 0 означает отсутствие предела.Соответствует параметру --limit-cpu в docker service create.Устарело в версии 2.8, будет удалено в community.general 2.0.0. Используйте параметр limits.cpus вместо него. | |||
| limit_memory строка | Предел памяти службы в формате <number>[<unit>]. Число — положительное целое. Единица измерения может быть B (байт), K (кибибайт, 1024 байта), M (мебибайт), G (гибибайт), T (тебибайт) или P (пебибайт).0 означает отсутствие предела.Пропуск единицы измерения по умолчанию означает байты. Соответствует параметру --limit-memory в docker service create.Устарело в версии 2.8, будет удалено в community.general 2.0.0. Используйте параметр limits.memory вместо него. | |||
| limits словарь | Настраивает пределы ресурсов службы. | |||
| cpus float | Предел ЦП службы. 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, будет удалено в community.general 2.0.0. Используйте параметр logging.driver вместо него. | |||
| log_driver_options словарь | Параметры для драйвера регистрации службы. Соответствует параметру --log-opt в docker service create.Устарело в версии 2.8, будет удалено в community.general 2.0.0. Используйте параметр logging.options вместо него. | |||
| logging словарь | Конфигурация регистрации для службы. | |||
| driver строка | Настройте драйвер регистрации для службы. Соответствует параметру --log-driver в docker service create. | |||
| options словарь | Параметры для драйвера регистрации службы. Соответствует параметру --log-opt в docker service create. | |||
| mode строка |
| Режим репликации службы. Служба будет удалена и пересоздана при изменении. Соответствует параметру --mode в docker service create. | ||
| mounts список / элементы=словарь | Список словарей, описывающих монтирования службы. Соответствует параметру --mount в docker service create. | |||
| driver_config словарь | Конфигурация драйвера томов. Может быть использована только при type равном volume. | |||
| name строка | Имя плагина драйвера томов для использования с томом. | |||
| options словарь | Параметры в виде пар ключ-значение для передачи драйверу для этого тома. | |||
| labels словарь | Метки тома для применения. | |||
| no_copy boolean |
| Отключить копирование данных из контейнера при создании тома. Может быть использована только при type равном volume. | ||
| propagation строка |
| Режим распространения для использования. Может быть использована только при type равном bind. | ||
| readonly boolean |
| Должно ли монтирование быть только для чтения. | ||
| source строка | Источник монтирования (например, имя тома или путь хоста). Должен быть указан, если type не равен tmpfs. | |||
| target строка / обязательно | Путь контейнера. | |||
| tmpfs_mode целое число | Режим файла tmpfs в восьмеричном формате. Может быть использована только при type равном tmpfs. | |||
| tmpfs_size строка | Размер монтирования tmpfs в формате <number>[<unit>]. Число — положительное целое. Единица измерения может быть B (байт), K (кибибайт, 1024 байта), M (мебибайт), G (гибибайт), T (тебибайт) или P (пебибайт).Может быть использована только при type равном 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 словарь | Настраивает предпочтения и ограничения размещения службы. | |||
| 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 boolean |
| Монтировать корневую файловую систему контейнеров в режиме только для чтения. Соответствует параметру --read-only в docker service create. | ||
| replicas integer | По умолчанию: -1 | Количество контейнеров, созданных в службе. Действительно только если mode равен replicated.Если установлено значение -1, и служба отсутствует, количество реплик службы будет установлено в 1.Если установлено значение -1, и служба присутствует, количество реплик службы останется неизменным.Соответствует параметру --replicas в docker service create. | ||
| reservations dictionary | Настройка резервирования ресурсов службы. | |||
| cpus float | Зарезервированные процессорные ядра службы. 0 означает отсутствие резервирования.Соответствует параметру --reserve-cpu в docker service create. | |||
| memory string | Зарезервированная память службы в формате <number>[<unit>]. Число — положительное целое. Единицей измерения может быть B (байт), K (кибибайт, 1024 Б), M (мебибайт), G (гибибайт), T (тебибайт) или P (пебибайт).0 означает отсутствие резервирования.Если единица измерения опущена, по умолчанию используется байт. Соответствует параметру --reserve-memory в docker service create. | |||
| reserve_cpu float | Зарезервированные процессорные ядра службы. 0 означает отсутствие резервирования.Соответствует параметру --reserve-cpu в docker service create.Устарело в версии 2.8, будет удалено в community.general 2.0.0. Используйте параметр reservations.cpus вместо него. | |||
| reserve_memory string | Зарезервированная память службы в формате <number>[<unit>]. Число — положительное целое. Единицей измерения может быть B (байт), K (кибибайт, 1024 Б), M (мебибайт), G (гибибайт), T (тебибайт) или P (пебибайт).0 означает отсутствие резервирования.Если единица измерения опущена, по умолчанию используется байт. Соответствует параметру --reserve-memory в docker service create.Устарело в версии 2.8, будет удалено в community.general 2.0.0. Используйте параметр reservations.memory вместо него. | |||
| resolve_image boolean |
| Если текущий дайджест изображения должен быть получен из реестра и обновлен при изменении. Требуется версия API >= 1.30. | ||
| restart_config dictionary | Настройка перезапуска контейнеров при выходе из строя. | |||
| condition string |
| Условие перезапуска службы. Соответствует параметру --restart-condition в docker service create. | ||
| 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. | |||
| restart_policy string |
| Условие перезапуска службы. Устарело в версии 2.8, будет удалено в community.general 2.0.0. Используйте параметр restart_config.condition вместо него.Соответствует параметру --restart-condition в docker service create. | ||
| restart_policy_attempts integer | Максимальное количество перезапусков службы. Устарело в версии 2.8, будет удалено в community.general 2.0.0. Используйте параметр restart_config.max_attempts вместо него.Соответствует параметру --restart-condition в docker service create. | |||
| restart_policy_delay raw | Задержка между перезапусками. Принимает длительность как целое число в наносекундах или строку в формате: 5h34m56s, 1m30s и т.д. Поддерживаемые единицы измерения: us, ms, s, m и h.Устарело в версии 2.8, будет удалено в community.general 2.0.0. Используйте параметр restart_config.delay вместо него.Соответствует параметру --restart-delay в docker service create. | |||
| restart_policy_window raw | Период оценки политики перезапуска. Принимает длительность как целое число в наносекундах или строку в формате: 5h34m56s, 1m30s и т.д. Поддерживаемые единицы измерения: us, ms, s, m и h.Устарело в версии 2.8, будет удалено в community.general 2.0.0. Используйте параметр restart_config.window вместо него.Соответствует параметру --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. | ||
| 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.Требуется версия API >= 1.25. | |||
| filename string | Имя файла, содержащего секрет. По умолчанию используется secret_name, если не указано иначе. Соответствует ключу target в docker service create --secret. | |||
| gid string | GID группы файла секрета. | |||
| mode integer | Режим доступа к файлам внутри контейнера. Должно быть восьмеричным числом (например, 0644 или 0444). | |||
| secret_id string | Идентификатор секрета. | |||
| secret_name string / required | Имя секрета, заданное при его создании. | |||
| uid string | UID владельца файла секрета. | |||
| ssl_version string | Укажите допустимую версию SSL. Значение по умолчанию определяется модулем ssl.py. Если значение не указано в задаче, будет использовано значение переменной окружения DOCKER_SSL_VERSION. | |||
| state string |
| absent - Служба с указанным именем будет удалена, а её задачи остановлены.present - Утверждает существование службы с соответствующим именем и параметрами конфигурации. Неуказанные параметры конфигурации будут установлены по умолчанию для Docker. | ||
| 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. | |||
| timeout integer | Default: 60 | Максимальное время в секундах ожидания ответа от API. Если значение не указано в задаче, будет использовано значение переменной окружения DOCKER_TIMEOUT. Если переменная окружения не задана, будет использовано значение по умолчанию. | ||
| tls boolean |
| Защитить соединение с API с помощью TLS без проверки подлинности сервера Docker. Обратите внимание, что если validate_certs также задано значением yes, оно будет иметь приоритет.Если значение не указано в задаче, будет использовано значение переменной окружения DOCKER_TLS. Если переменная окружения не задана, будет использовано значение по умолчанию. | ||
| tls_hostname string | Default: "localhost" | При проверке подлинности сервера Docker укажите ожидаемое имя сервера. Если значение не указано в задаче, будет использовано значение переменной окружения DOCKER_TLS_HOSTNAME. Если переменная окружения не задана, будет использовано значение по умолчанию. | ||
| tty boolean |
| Выделить псевдо-TTY. Соответствует параметру --tty в docker service create. Требуется версия API ≥ 1.25. | ||
| 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. | ||
| max_failure_ratio float | Доля задач, которые могут завершиться сбоем во время обновления, прежде чем будет выполнено действие при сбое. Соответствует параметру --update-max-failure-ratio в docker service create. Требуется версия API ≥ 1.25. | |||
| monitor string | Время мониторинга обновленных задач на наличие сбоев. Принимает строку в формате: 5h34m56s, 1m30s и т.д. Поддерживаемые единицы измерения: us, ms, s, m и h. Соответствует параметру --update-monitor в docker service create. Требуется версия API ≥ 1.25. | |||
| order string | Указывает порядок выполнения операций при поэтапном развертывании обновленной задачи. Соответствует параметру --update-order в docker service create. Требуется версия API ≥ 1.29. | |||
| parallelism integer | Параллельность поэтапного обновления. Соответствует параметру --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, будет удалено в community.general 2.0.0. Используйте параметр update_config.delay вместо него. | |||
| update_failure_action string |
| Действие при сбое контейнера. Соответствует параметру --update-failure-action в docker service create. Использование rollback требует версии API ≥ 1.29. Устарело в версии 2.8, будет удалено в community.general 2.0.0. Используйте параметр update_config.failure_action вместо него. | ||
| update_max_failure_ratio float | Доля задач, которые могут завершиться сбоем во время обновления, прежде чем будет выполнено действие при сбое. Соответствует параметру --update-max-failure-ratio в docker service create. Требуется версия API ≥ 1.25. Устарело в версии 2.8, будет удалено в community.general 2.0.0. Используйте параметр 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, будет удалено в community.general 2.0.0. Используйте параметр update_config.monitor вместо него. | |||
| update_order string |
| Указывает порядок выполнения операций при поэтапном развертывании обновленной задачи. Соответствует параметру --update-order в docker service create. Требуется версия API ≥ 1.29. Устарело в версии 2.8, будет удалено в community.general 2.0.0. Используйте параметр update_config.order вместо него. | ||
| update_parallelism integer | Параллельность поэтапного обновления. Соответствует параметру --update-parallelism в docker service create. До версии Ansible 2.8 значение по умолчанию для этого параметра было 1. Устарело в версии 2.8, будет удалено в community.general 2.0.0. Используйте параметр update_config.parallelism вместо него. | |||
| user string | Устанавливает имя пользователя или UID, используемый для указанной команды. До версии Ansible 2.8 значение по умолчанию для этого параметра было root. Значение по умолчанию было удалено, чтобы при отсутствии указания пользователя использовался пользователь, определённый в образе. Соответствует параметру --user в docker service create. | |||
| validate_certs boolean |
| Защитить соединение с API с помощью TLS и проверить подлинность сервера Docker. Если значение не указано в задаче, будет использовано значение переменной окружения DOCKER_TLS_VERIFY. Если переменная окружения не задана, будет использовано значение по умолчанию.псевдонимы: tls_verify | ||
| working_dir string | Путь к рабочей директории. Соответствует параметру --workdir в docker service create. | |||
Примечания
Примечание
- Изображения будут обновляться только до последнего дайджеста при использовании 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в противном случае.
Примеры
- name: Set command and arguments
community.general.docker_swarm_service:
name: myservice
image: alpine
command: sleep
args:
- "3600"
- name: Set a bind mount
community.general.docker_swarm_service:
name: myservice
image: alpine
mounts:
- source: /tmp/
target: /remote_tmp/
type: bind
- name: Set service labels
community.general.docker_swarm_service:
name: myservice
image: alpine
labels:
com.example.description: "Accounting webapp"
com.example.department: "Finance"
- name: Set environment variables
community.general.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.general.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.general.docker_swarm_service:
name: myservice
image: alpine
restart_config:
condition: on-failure
delay: 5s
max_attempts: 3
window: 120s
- name: Set update config
community.general.docker_swarm_service:
name: myservice
image: alpine
update_config:
parallelism: 2
delay: 10s
order: stop-first
- name: Set rollback config
community.general.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.general.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
community.general.docker_swarm_service:
name: myservice
image: alpine:edge
configs:
- config_name: myconfig_name
filename: "/tmp/config.txt"
- name: Set networks
community.general.docker_swarm_service:
name: myservice
image: alpine:edge
networks:
- mynetwork
- name: Set networks as a dictionary
community.general.docker_swarm_service:
name: myservice
image: alpine:edge
networks:
- name: "mynetwork"
aliases:
- "mynetwork_alias"
options:
foo: bar
- name: Set secrets
community.general.docker_swarm_service:
name: myservice
image: alpine:edge
secrets:
- secret_name: mysecret_name
filename: "/run/secrets/secret.txt"
- name: Start service with healthcheck
community.general.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.general.docker_swarm_service:
name: myservice
image: alpine:edge
reservations:
cpus: 0.25
memory: 20M
limits:
cpus: 0.50
memory: 50M
- name: Remove service
community.general.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" ], "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 } |
Авторы
- 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.10/collections/community/general/docker_swarm_service_module.html