Spec-Zone.ru › Ansible 2.10

community.general.docker_image – Управление образами Docker.

Примечание

Этот плагин входит в коллекцию community.general (версия 1.3.2).

Для его установки используйте: ansible-galaxy collection install community.general.

Чтобы использовать его в книге задач, укажите: community.general.docker_image.

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

Обзор

  • Создайте, загрузите или получите образ, сделав его доступным для создания контейнеров. Также поддерживает маркирование образа в репозитории и архивирование образа в файл .tar.
  • Начиная с Ansible 2.8, рекомендуется явно указать источник образа (source может быть build, load, pull или local). Это станет обязательным начиная с community.general 2.0.0.

Требования

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

  • API Docker >= 1.20
  • Docker SDK для Python: Обратите внимание, что модуль Python docker-py был заменен на docker (подробности см. в здесь). Для Python 2.6 необходимо использовать docker-py. В противном случае рекомендуется установить модуль Python docker. Обратите внимание, что оба модуля не должны быть установлены одновременно. Также обратите внимание, что при установке и удалении одного из модулей, другой может перестать работать, и потребуется его переустановка.
  • Docker SDK для Python >= 1.8.0 (используйте docker-py для Python 2.6)

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
api_version
строка
По умолчанию:
"auto"
Версия Docker API, работающая на Docker хосте.
По умолчанию используется последняя версия API, поддерживаемая Docker SDK для Python и демоном docker.
Если значение не указано в задаче, используется значение переменной окружения DOCKER_API_VERSION. Если переменная окружения не задана, используется значение по умолчанию.

Псевдонимы: docker_api_version
archive_path
путь
Используется со статусом present для архивирования образа в файл .tar.
build
словарь
Указывает параметры, используемые для построения образов.
args
словарь
Предоставляет словарь аргументов для построения key:value, которые сопоставляются с директивой Dockerfile ARG.
Docker ожидает, что значение будет строкой. Для удобства любые значения, отличные от строк, будут преобразованы в строки.
Требуется Docker API >= 1.21.
cache_from
список / элементы=строка
Список имен образов, которые следует рассматривать как источник кэша.
container_limits
словарь
Словарь ограничений, применяемых к каждому контейнеру, созданному процессом построения.
cpusetcpus
строка
Процессоры, в которых разрешено выполнение, например, "0-3", "0,1".
cpushares
целое число
Доли процессора (относительный вес).
memory
целое число
Установить ограничение памяти для построения.
memswap
целое число
Общий объем памяти (память + своп), -1 для отключения свопа.
dockerfile
строка
Используется со статусом present и источником build для задания альтернативного имени Dockerfile, используемого при построении образа.
Также может включать относительный путь (относительно path).
etc_hosts
словарь
Дополнительные хосты для добавления в /etc/hosts при построении контейнеров в виде отображения имени хоста к IP-адресу.
http_timeout
целое число
Таймаут для HTTP-запросов во время операции построения образа. Укажите положительное целое число в секундах.
network
строка
Сеть, используемая для инструкций построения RUN.
nocache
логическое значение
    Варианты:
  • нет ←
  • да
Не использовать кэш при построении образа.
path
путь / обязательно
Используется со статусом 'present' для построения образа. Будет путём к каталогу, содержащему контекст и Dockerfile для построения образа.
pull
логическое значение
    Варианты:
  • нет
  • да
При построении образа загружает любые обновления для образа FROM в Dockerfile.
По умолчанию в настоящее время yes. Это изменится на no в версии community.general 2.0.0.
rm
логическое значение
    Варианты:
  • нет
  • да ←
Удалить промежуточные контейнеры после построения.
target
строка
При построении образа определяет промежуточную стадию сборки по имени в качестве конечной стадии для результирующего образа.
use_config_proxy
логическое значение
    Варианты:
  • нет
  • да
Если установлено значение yes и в конфигурации клиента docker указана конфигурация прокси (по умолчанию $HOME/.docker/config.json), соответствующие переменные окружения будут установлены в строящемся контейнере.
Требуется Docker SDK для Python >= 3.7.0.
buildargs
словарь
Предоставляет словарь аргументов для построения key:value, которые сопоставляются с директивой Dockerfile ARG.
Docker ожидает, что значение будет строкой. Для удобства любые значения, отличные от строк, будут преобразованы в строки.
Требуется Docker API >= 1.21.
Пожалуйста, используйте build.args вместо этого. Этот параметр будет удалён в версии community.general 2.0.0.
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
container_limits
словарь
Словарь ограничений, применяемых к каждому контейнеру, созданному процессом построения.
Пожалуйста, используйте build.container_limits вместо этого. Этот параметр будет удалён в версии community.general 2.0.0.
cpusetcpus
строка
Процессоры, в которых разрешено выполнение, например, "0-3", "0,1".
cpushares
целое число
Доли процессора (относительный вес).
memory
целое число
Установить ограничение памяти для построения.
memswap
целое число
Общий объем памяти (память + своп), -1 для отключения свопа.
debug
логическое значение
    Варианты:
  • нет ←
  • да
Режим отладки
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
dockerfile
строка
Используется со статусом present и источником build для задания альтернативного имени Dockerfile, используемого при построении образа.
Также может включать относительный путь (относительно path).
Пожалуйста, используйте build.dockerfile вместо этого. Этот параметр будет удалён в версии community.general 2.0.0.
force
логическое значение
    Варианты:
  • нет
  • да
Используется со статусом absent для удаления и отметки всех образов, соответствующих указанному имени. Используется со статусом present для построения, загрузки или загрузки образа, когда образ уже существует. Также используется со статусом present для принудительной отметки образа.
Прекратите использование этого параметра и используйте более специализированные параметры force_source, force_absent и force_tag вместо этого.
Этот параметр будет удалён в версии community.general 2.0.0.
force_absent
логическое значение
    Варианты:
  • нет ←
  • да
Используется со статусом absent для удаления и отметки всех образов, соответствующих указанному имени.
force_source
логическое значение
    Варианты:
  • нет ←
  • да
Используется со статусом present для построения, загрузки или загрузки образа (в зависимости от значения параметра source), когда образ уже существует.
force_tag
boolean
    Выборы:
  • нет ←
  • да
Используйте со состоянием present для принудительной маркировки изображения.
http_timeout
целое число
Таймаут для HTTP-запросов во время операции построения изображения. Укажите положительное целое значение в секундах.
Пожалуйста, используйте build.http_timeout вместо этого. Этот параметр будет удален в версии community.general 2.0.0.
load_path
путь
Используйте со состоянием present для загрузки изображения из файла .tar.
Установите source в load, если вы хотите загрузить изображение. Параметр будет автоматически установлен до версии community.general 2.0.0, если этот параметр используется (кроме случаев, когда также указан параметр path, в этом случае построение будет иметь приоритет). Начиная с версии community.general 2.0.0, вы должны установить source в load.
name
строка / обязательно
Имя изображения. Формат имени может быть одним из: имя, репозиторий/имя, сервер_регистра:порт/имя. При отправке или извлечении изображения имя может необязательно включать тег, добавляя ":имя_тега".
Обратите внимание, что идентификаторы изображений (хеши) не поддерживаются.
nocache
boolean
    Выборы:
  • нет ←
  • да
Не использовать кэш при построении изображения.
Пожалуйста, используйте build.nocache вместо этого. Этот параметр будет удален в версии community.general 2.0.0.
path
путь
Используйте со состоянием 'present' для построения изображения. Будет указан путь к каталогу, содержащему контекст и Dockerfile для построения изображения.
Установите source в build, если вы хотите построить изображение. Параметр будет автоматически установлен до версии community.general 2.0.0, если этот параметр используется. Начиная с версии community.general 2.0.0, вы должны установить source в build.
Пожалуйста, используйте build.path вместо этого. Этот параметр будет удален в версии community.general 2.0.0.

псевдонимы: build_path
pull
boolean
    Выборы:
  • нет
  • да
При построении изображения загружает все обновления для изображения FROM в Dockerfile.
Пожалуйста, используйте build.pull вместо этого. Этот параметр будет удален в версии community.general 2.0.0.
По умолчанию в настоящее время yes. Это изменится на no в версии community.general 2.0.0.
push
boolean
    Выборы:
  • нет ←
  • да
Отправить изображение в реестр. Укажите реестр в параметре name или repository.
repository
строка
Полный путь к репозиторию. Используйте со состоянием present для добавления тега к изображению в репозиторий. Ожидается формат repository:tag. Если тег не указан, будет использоваться значение параметра tag или latest.
rm
boolean
    Выборы:
  • нет
  • да ←
Удалить промежуточные контейнеры после сборки.
Пожалуйста, используйте build.rm вместо этого. Этот параметр будет удален в версии community.general 2.0.0.
source
строка
    Выборы:
  • build
  • load
  • pull
  • local
Определяет, откуда модуль попытается извлечь изображение.
Используйте build для построения изображения из Dockerfile. build.path должен быть указан, когда используется это значение.
Используйте load для загрузки изображения из .tar файла. load_path должен быть указан, когда используется это значение.
Используйте pull для извлечения изображения из реестра.
Используйте local для того, чтобы убедиться, что изображение уже доступно в локальном демоне Docker, то есть не пытайтесь построить, извлечь или загрузить изображение.
До версии community.general 2.0.0 значение этого параметра будет автоматически определяться для обеспечения обратной совместимости, но будет выведено предупреждение, если оно не указано явно. Начиная с версии community.general 2.0.0, автоматическое определение будет отключено, и этот параметр станет обязательным.
ssl_version
строка
Укажите действительную версию SSL. Значение по умолчанию определяется модулем ssl.py.
Если значение не указано в задаче, будет использоваться значение переменной окружения DOCKER_SSL_VERSION.
state
строка
    Выборы:
  • absent
  • present ←
  • build
Делать утверждения о состоянии изображения.
При absent изображение будет удалено. Используйте параметр force, чтобы размаркировать и удалить все изображения, соответствующие предоставленному имени.
При present проверьте, существует ли изображение с предоставленным именем и тегом. Если изображение не найдено или используется параметр force, изображение будет извлечено, построено или загружено в зависимости от параметра source.
По умолчанию изображение будет извлечено из Docker Hub или реестра, указанного в имени изображения. Обратите внимание, что это изменится в версии community.general 2.0.0, поэтому, чтобы убедиться, что вы извлекаете, установите source в pull. Чтобы построить изображение, укажите значение path, установленное на каталог, содержащий контекст и Dockerfile, и установите source в build. Чтобы загрузить изображение, укажите load_path, чтобы указать путь к файлу архива. Чтобы добавить тег изображения в репозиторий, укажите путь repository. Если имя содержит путь к репозиторию, оно будет отправлено.
*Примечание:* state=build УСТАРЕЛО и будет удалено в версии community.general 2.0.0. Указание build будет работать так же, как present.
tag
строка
По умолчанию:
"latest"
Используется для выбора изображения при извлечении. Будет добавлен к изображению при отправке, добавлении тега или построении. По умолчанию latest.
Если формат параметра name равен name:tag, то значение тега из name будет иметь приоритет.
timeout
целое число
По умолчанию:
60
Максимальное время ожидания ответа от API в секундах.
Если значение не указано в задаче, будет использоваться значение переменной окружения DOCKER_TIMEOUT вместо него. Если переменная окружения не установлена, будет использовано значение по умолчанию.
tls
boolean
    Выборы:
  • нет ←
  • да
Обеспечьте безопасное подключение к API с помощью TLS без проверки подлинности хоста Docker. Обратите внимание, что если validate_certs также установлен в значение yes, оно будет иметь приоритет.
Если значение не указано в задаче, будет использоваться значение переменной окружения DOCKER_TLS вместо него. Если переменная окружения не установлена, будет использовано значение по умолчанию.
tls_hostname
строка
По умолчанию:
"localhost"
При проверке подлинности хоста Docker укажите ожидаемое имя сервера.
Если значение не указано в задаче, будет использоваться значение переменной окружения DOCKER_TLS_HOSTNAME вместо него. Если переменная окружения не установлена, будет использовано значение по умолчанию.
use_tls
строка
    Выборы:
  • нет
  • encrypt
  • verify
УСТАРЕЛО. Нужно ли использовать tls для подключения к демону docker. Установите значение в encrypt для использования TLS. Установите значение в verify для использования TLS и проверки того, что сертификат сервера действителен для сервера.
*Примечание:* Если вы укажете этот параметр, он установит значение параметров tls или validate_certs, если они не установлены в no.
Будет удален в версии community.general 2.0.0.
validate_certs
boolean
    Выборы:
  • нет ←
  • да
Обеспечьте безопасное подключение к API с помощью TLS и проверьте подлинность хоста Docker.
Если значение не указано в задаче, будет использоваться значение переменной окружения DOCKER_TLS_VERIFY вместо него. Если переменная окружения не установлена, будет использовано значение по умолчанию.

псевдонимы: tls_verify

Примечания

Примечание

  • Подключитесь к демону 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: Pull an image
  community.general.docker_image:
    name: pacur/centos-7
    source: pull

- name: Tag and push to docker hub
  community.general.docker_image:
    name: pacur/centos-7:56
    repository: dcoppenhagan/myimage:7.56
    push: yes
    source: local

- name: Tag and push to local registry
  community.general.docker_image:
    # Image will be centos:7
    name: centos
    # Will be pushed to localhost:5000/centos:7
    repository: localhost:5000/centos
    tag: 7
    push: yes
    source: local

- name: Add tag latest to image
  community.general.docker_image:
    name: myimage:7.1.2
    repository: myimage:latest
    # As 'latest' usually already is present, we need to enable overwriting of existing tags:
    force_tag: yes
    source: local

- name: Remove image
  community.general.docker_image:
    state: absent
    name: registry.ansible.com/chouseknecht/sinatra
    tag: v1

- name: Build an image and push it to a private repo
  community.general.docker_image:
    build:
      path: ./sinatra
    name: registry.ansible.com/chouseknecht/sinatra
    tag: v1
    push: yes
    source: build

- name: Archive image
  community.general.docker_image:
    name: registry.ansible.com/chouseknecht/sinatra
    tag: v1
    archive_path: my_sinatra.tar
    source: local

- name: Load image from archive and push to a private registry
  community.general.docker_image:
    name: localhost:5000/myimages/sinatra
    tag: v1
    push: yes
    load_path: my_sinatra.tar
    source: load

- name: Build image and with build args
  community.general.docker_image:
    name: myimage
    build:
      path: /path/to/build/dir
      args:
        log_volume: /var/log/myapp
        listen_port: 8080
    source: build

- name: Build image using cache source
  community.general.docker_image:
    name: myimage:latest
    build:
      path: /path/to/build/dir
      # Use as cache source for building myimage
      cache_from:
        - nginx:latest
        - alpine:3.8
    source: build

Значения возврата

Общие значения возврата описаны здесь, следующие поля уникальны для данного модуля:

Ключ Возвращаемое значение Описание
image
словарь
успех
Результаты проверки изображения для затронутого изображения.

stdout
строка
добавлено в 1.3.0 community.general
успех
Вывод Docker build при построении изображения.



Авторы

  • Павел Антонов (@softzilla)
  • Крис Хаусенект (@chouseknecht)
  • Сорин Сбарнеа (@ssbarnea)

© 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_image_module.html

Spec-Zone.ru

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