docker_service - Управление службами и контейнерами Docker.
Новая версия с 2.1.
- Синопсис
- Требования (к хосту, на котором выполняется модуль)
- Параметры
- Примеры
- Возвращаемые значения
- Примечания
Синопсис
- Использует docker compose для запуска, остановки и масштабирования служб.
- Работает с версиями compose 1 и 2.
- Compose можно прочитать из файла docker-compose.yml (или .yaml) или вставить с помощью опции
definition. - Более подробную информацию см. в примерах.
- Поддерживает режим проверки.
Требования (к хосту, на котором выполняется модуль)
- python >= 2.6
- docker-compose >= 1.7.0
- API Docker >= 1.20
- PyYAML >= 3.11
Параметры
| параметр | обязательно | по умолчанию | варианты | комментарии |
|---|---|---|---|---|
| api_version | нет | значение по умолчанию предоставляется docker-py | Версия API Docker, работающая на хосте Docker. По умолчанию используется последняя версия API, поддерживаемая docker-py. псевдонимы: docker_api_version | |
| build | нет |
| Используйте со значением present, чтобы всегда строить образы перед запуском приложения. То же самое, что и запуск docker-compose build с опцией pull. Образы будут перестроены только если Docker обнаружит изменения в Dockerfile или содержимом каталога сборки. Используйте опцию nocache для игнорирования кэша образов при выполнении сборки.Если существующий образ заменяется, службы, использующие этот образ, будут пересозданы, если recreate не равно never. | |
| cacert_path | нет | Используйте сертификат CA при проверке сервера, указав путь к файлу сертификата CA. псевдонимы: tls_ca_cert | ||
| cert_path | нет | Путь к файлу TLS-сертификата клиента. псевдонимы: tls_client_cert | ||
| debug | нет |
| Включить actions в возвращаемых значениях. | |
| definition | нет | Укажите docker-compose yaml, описывающий одну или несколько служб, сетей и томов. Взаимоисключающие опции с project_src и files. | ||
| dependencies | нет | True |
| Когда state равно present, укажите, включать или нет связанные службы. |
| docker_host | нет | unix://var/run/docker.sock | URL или путь к Unix-сокету для подключения к API Docker. Для подключения к удалённому хосту, укажите строку TCP-соединения. Например, 'tcp://192.0.2.23:2376'. Если TLS используется для шифрования соединения, модуль автоматически заменит 'tcp' в URL-адресе соединения на 'https'. псевдонимы: docker_url | |
| files | нет | Список имён файлов относительно project_src. Переопределяет docker-compose.yml или docker-compose.yaml.Файлы загружаются и объединяются в заданном порядке. | ||
| hostname_check | нет |
| Проверять или нет имя хоста демона Docker на соответствие имени, указанному в клиенте сертификате. | |
| key_path | нет | Путь к файлу TLS-ключа клиента. псевдонимы: tls_client_key | ||
| nocache (добавлен в 2.2)
| нет |
| Используйте с опцией build для игнорирования кэша во время процесса сборки образов. | |
| project_name | нет | Укажите имя проекта. Если не указано, имя проекта берётся из имени базового файла project_src. Требуется, когда не предоставлен definition. | ||
| project_src | нет | Путь к каталогу, содержащему файл docker-compose.yml или docker-compose.yaml. Взаимоисключающие опции с definition. Требуется, если не предоставлен definition. | ||
| pull (добавлен в 2.2)
| нет |
| Используйте со значением present, чтобы всегда подтягивать образы перед запуском приложения. То же самое, что и запуск docker-compose pull. При подтягивании нового образа службы, использующие этот образ, будут пересозданы, если recreate не равно never. | |
| recreate | нет | smart |
| По умолчанию, контейнеры будут пересозданы, если их конфигурация отличается от определения службы. Установив никогда, игнорируются различия в конфигурации, и существующие контейнеры остаются неизменными. Установив всегда, принудительно пересоздаются все существующие контейнеры. |
| remove_images | нет | Используйте со значением absent для удаления всех образов или только локальных образов. | ||
| remove_volumes | нет |
| Используйте со значением absent для удаления томов данных. | |
| restarted | нет |
| Используйте со значением present для перезапуска всех контейнеров. | |
| scale | нет | Когда state равно present, масштабировать службы. Укажите словарь пар ключ/значение, где ключ — имя службы, а значение — целое число, представляющее количество контейнеров. | ||
| services | нет | Когда state равно present, запустить docker-compose up для подмножества служб. | ||
| ssl_version | нет | 1.0 | Укажите версию SSL. Значение по умолчанию определяется docker-py, в настоящее время 1.0. | |
| state | нет | present |
| Желаемое состояние проекта. Указание present эквивалентно запуску docker-compose up. Указание absent эквивалентно запуску docker-compose down. |
| stopped | нет |
| Используйте со значением present, чтобы оставить контейнеры в состоянии завершения или неактивности. | |
| timeout | нет | 60 | Максимальное время в секундах ожидания ответа от API. | |
| tls | нет | Защитить соединение с API с помощью TLS без проверки подлинности хоста Docker. | ||
| tls_hostname | нет | localhost | При проверке подлинности хоста Docker укажите ожидаемое имя сервера. | |
| tls_verify | нет | Защитить соединение с API с помощью TLS и проверить подлинность хоста Docker. |
Примеры
# Examples use the django example at U(https://docs.docker.com/compose/django/). Follow it to create the flask
# directory
- name: Run using a project directory
hosts: localhost
connection: local
gather_facts: no
tasks:
- docker_service:
project_src: flask
state: absent
- docker_service:
project_src: flask
register: output
- debug:
var: output
- docker_service:
project_src: flask
build: no
register: output
- debug:
var: output
- assert:
that: "not output.changed "
- docker_service:
project_src: flask
build: no
stopped: true
register: output
- debug:
var: output
- assert:
that:
- "not web.flask_web_1.state.running"
- "not db.flask_db_1.state.running"
- docker_service:
project_src: flask
build: no
restarted: true
register: output
- debug:
var: output
- assert:
that:
- "web.flask_web_1.state.running"
- "db.flask_db_1.state.running"
- name: Scale the web service to 2
hosts: localhost
connection: local
gather_facts: no
tasks:
- docker_service:
project_src: flask
scale:
web: 2
register: output
- debug:
var: output
- name: Run with inline v2 compose
hosts: localhost
connection: local
gather_facts: no
tasks:
- docker_service:
project_src: flask
state: absent
- docker_service:
project_name: flask
definition:
version: '2'
services:
db:
image: postgres
web:
build: "{{ playbook_dir }}/flask"
command: "python manage.py runserver 0.0.0.0:8000"
volumes:
- "{{ playbook_dir }}/flask:/code"
ports:
- "8000:8000"
depends_on:
- db
register: output
- debug:
var: output
- assert:
that:
- "web.flask_web_1.state.running"
- "db.flask_db_1.state.running"
- name: Run with inline v1 compose
hosts: localhost
connection: local
gather_facts: no
tasks:
- docker_service:
project_src: flask
state: absent
- docker_service:
project_name: flask
definition:
db:
image: postgres
web:
build: "{{ playbook_dir }}/flask"
command: "python manage.py runserver 0.0.0.0:8000"
volumes:
- "{{ playbook_dir }}/flask:/code"
ports:
- "8000:8000"
links:
- db
register: output
- debug:
var: output
- assert:
that:
- "web.flask_web_1.state.running"
- "db.flask_db_1.state.running"
Возвращаемые значения
Общие возвращаемые значения описаны здесь Возвращаемые значения, следующие поля уникальны для данного модуля:
| имя | описание | возвращается | тип | пример | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| actions | Предоставляет действия, которые должны быть выполнены для каждой службы, как определено compose. | в режиме проверки или I(debug) true | сложный | |||||||||||
| содержит: |
| |||||||||||||
| service | Имя службы. | успех | сложный | |||||||||||
| содержит: |
| |||||||||||||
Примечания
Примечание
- Подключиться к демону 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.org/en/stable/machine/ для получения дополнительной информации.
Статус
Этот модуль помечен как превью, что означает, что он не гарантирует обратную совместимость.
Для помощи в разработке модулей, если у вас есть такое желание, пожалуйста, прочтите Информация о сообществе и участие в разработке, Тестирование Ansible и Разработка модулей.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/docker_service_module.html