Spec-Zone.ru › Ansible 2.4

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
  • всегда
  • никогда
  • 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
  • absent
  • 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_name
Имя службы.
всегда сложный
service
Имя службы.
успех сложный
содержит:
имя описание возвращается тип пример
container_name
Имя контейнера. Формат: project_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

Spec-Zone.ru

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