Spec-Zone.ru › Ansible 2.5

docker_service - Управление службами и контейнерами Docker.

Новое в версии 2.1.

  • Описание
    • Требования
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения
  • Статус
    • Автор

Описание

  • Использует docker compose для запуска, остановки и масштабирования служб.
  • Работает с версиями compose 1 и 2.
  • Compose можно прочитать из файла docker-compose.yml (или .yaml) или встроить с помощью опции definition.
  • Дополнительные сведения см. в примерах.
  • Поддерживает режим проверки.

Требования

Ниже перечислены требования, которые должны быть выполнены на хосте, на котором выполняется этот модуль.

  • python >= 2.6
  • docker-compose >= 1.7.0
  • Docker API >= 1.20
  • PyYAML >= 3.11

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
api_version По умолчанию:
значение по умолчанию, предоставляемое docker-py
Версия Docker API, работающая на хосте Docker. По умолчанию используется последняя версия API, поддерживаемая docker-py.

псевдонимы: docker_api_version
build
    Варианты:
  • нет ←
  • да
Используется со значением present для всегда построения изображений перед запуском приложения.
Аналогично выполнению docker-compose build с опцией pull.
Изображения будут перестроены только в том случае, если Docker обнаружит изменения в файле Dockerfile или содержимом каталога сборки.
Используйте опцию nocache для игнорирования кэша изображений при выполнении сборки.
Если существующее изображение заменяется, службы, использующие изображение, будут пересозданы, если recreate не равно never.
cacert_path По умолчанию:
None
Использование сертификата CA при проверке сервера путем предоставления пути к файлу сертификата CA.

псевдонимы: tls_ca_cert
cert_path По умолчанию:
None
Путь к файлу TLS-сертификата клиента.

псевдонимы: tls_client_cert
debug
    Варианты:
  • нет ←
  • да
Включить действия в возвращаемые значения.
definition
Предоставление docker-compose yaml, описывающего одну или несколько служб, сетей и томов.
Взаимоисключающие опции с project_src и files.
dependencies
    Варианты:
  • нет
  • да ←
Если state равно present, укажите, нужно ли включать связанные службы.
docker_host По умолчанию:
unix://var/run/docker.sock
URL или путь к сокету Unix, используемые для подключения к Docker API. Для подключения к удаленному хосту предоставьте строку 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 По умолчанию:
None
Путь к файлу закрытого ключа клиента 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
    Варианты:
  • всегда
  • никогда
  • умно ←
По умолчанию контейнеры будут пересозданы, если их конфигурация отличается от определения службы.
Установка значения никогда игнорирует различия в конфигурации и оставляет существующие контейнеры без изменений.
Установка значения всегда принудительно пересоздаёт все существующие контейнеры.
remove_images По умолчанию:
None
Используйте со значением 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
    Варианты:
  • отсутствует
  • настоящий ←
Желаемое состояние проекта.
Указание настоящего эквивалентно запуску docker-compose up.
Указание отсутствующего эквивалентно запуску docker-compose down.
stopped
    Варианты:
  • нет ←
  • да
Используйте со значением present, чтобы оставить контейнеры в завершенном или неработающем состоянии.
timeout По умолчанию:
60
Максимальное время в секундах ожидания ответа от API.
tls По умолчанию:
нет
Защитить соединение с API с помощью TLS без проверки подлинности сервера Docker.
tls_hostname По умолчанию:
localhost
При проверке подлинности сервера Docker укажите ожидаемое имя сервера.
tls_verify По умолчанию:
нет
Защитить соединение с API с помощью TLS и проверить подлинность сервера Docker.

Примечания

Примечание

  • Подключиться к демону 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/.

Примеры

# 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
complex
при режиме проверки или debug true
Предоставляет действия, которые нужно выполнить для каждого сервиса, как определено в compose.

service_name
complex
всегда
Имя сервиса.

action
list
всегда
Дескриптивное имя действия, которое нужно выполнить для контейнеров сервиса.

id
string
всегда
Полный ID контейнера

short_id
string
всегда
Короткий ID контейнера

name
string
всегда
Имя контейнера

pulled_image
complex
при получении изображения
Предоставляет информацию об изображении, когда новое изображение подтягивается для сервиса.

name
string
всегда
Имя изображения

id
string
всегда
Хэш изображения

built_image
complex
при построении изображения
Предоставляет информацию об изображении, когда новое изображение строится для сервиса.

name
string
всегда
Имя изображения

id
string
всегда
Хэш изображения

service
complex
успешно
Имя сервиса.

container_name
complex
успешно
Имя контейнера. Формат: project_service_#.

cmd
list
успешно
Одна или несколько команд, которые нужно выполнить в контейнере.

image
str
успешно
Имя изображения, из которого был создан контейнер.

labels
complex
успешно
Метаданные, назначенные контейнеру.

networks
complex
успешно
Содержит словарь для каждой сети, членом которой является контейнер.

macAddress
str
успешно
MAC-адрес, назначенный виртуальной сетевой карте.

globalIPv6PrefixLen
int
успешно
Длина подсети IPv6.

links
list
успешно
Список имён контейнеров, к которым этот контейнер связан.

globalIPv6
str
успешно
Адрес IPv6, назначенный контейнеру.

aliases
list
успешно
Псевдонимы, назначенные контейнеру сетью.

IPAddress
string
успешно
Адрес IP, назначенный контейнеру.

IPPrefixLen
int
успешно
Количество битов, используемых подсетью.

state
complex
успешно
Информация о текущем состоянии контейнера.

status
str
успешно
Описание состояния работы.

running
bool
успешно
Запущен ли контейнер с работающим процессом.



Статус

Этот модуль помечен как превью, что означает, что он не гарантирует обратную совместимость интерфейса.

Автор

  • Chris Houseknecht (@chouseknecht)

Подсказка

Если вы обнаружите какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.5/modules/docker_service_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API