Spec-Zone.ru › Ansible

Модуль containers.podman.podman_image — получение образов для использования в Podman

Примечание

Этот модуль входит в коллекцию containers.podman (версия 1.20.1).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните команду ansible-galaxy collection list.

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

Чтобы использовать её в плейбуке, укажите: containers.podman.podman_image.

  • Краткое описание
  • Параметры
  • Примеры
  • Возвращаемые значения

Краткое описание

  • Сборка, получение и отправка образов с помощью Podman.

Параметры

Параметр

Комментарии

arch

string

Архитектура ЦП для образа контейнера

auth_file

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

path

Путь к файлу, содержащему учетные данные для аутентификации в удаленном реестре.

build

псевдонимы: build_args, buildargs

dictionary

Аргументы, управляющие сборкой образа.

По умолчанию: {}

annotation

dictionary

Словарь пар key=value, добавляемых к образу. Работает только с образами OCI. Игнорируется для контейнеров Docker.

cache

boolean

Использовать ли кэшированные слои при сборке образа

Варианты:

  • false
  • true ← (по умолчанию)

container_file

string

Содержимое Containerfile, используемого для сборки образа. Несовместим с параметром file, указывающим путь к существующему Containerfile.

extra_args

string

Дополнительные аргументы для команды сборки, если она выполняется. Новые аргументы сборки не проверяются на идемпотентность.

file

path

Путь к Containerfile, если он находится не в каталоге контекста сборки. Несовместим с параметром container_file.

force_rm

boolean

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

Варианты:

  • false ← (по умолчанию)
  • true

format

string

Формат собранного образа.

Варианты:

  • "docker"
  • "oci" ← (по умолчанию)

rm

boolean

Удалять промежуточные контейнеры после успешной сборки

Варианты:

  • false
  • true ← (по умолчанию)

target

string

Указать целевой этап сборки.

volume

list / elements=string

Указать несколько параметров тома/монтирования, чтобы подключить к контейнеру один или несколько томов.

ca_cert_dir

path

Путь к каталогу с TLS-сертификатами и ключами, которые следует использовать.

executable

string

Путь к исполняемому файлу podman, если он отсутствует в $PATH на машине, на которой выполняется podman.

По умолчанию: "podman"

force

boolean

Принудительно отправлять или получать образ.

При сборке принудительно выполнять сборку, даже если образ уже существует.

Варианты:

  • false ← (по умолчанию)
  • true

name

string / обязательный

Имя образа для получения, отправки или удаления. Может содержать тег в формате image:tag.

password

string

Пароль для аутентификации в удаленных реестрах.

path

string

Путь к каталогу контекста сборки.

platform

string

Платформа для образа контейнера (например, linux/amd64, linux/arm64).

Укажите платформу для выбора образа при получении или сборке.

Несовместим с arch.

pull

boolean

Получать ли образ.

Варианты:

  • false
  • true ← (по умолчанию)

pull_extra_args

string

Дополнительные аргументы для команды получения образа.

push

boolean

Отправлять ли образ.

Варианты:

  • false ← (по умолчанию)
  • true

push_args

dictionary

Аргументы, управляющие отправкой образов.

По умолчанию: {}

compress

boolean

Сжимать слои образа в tar-архиве при отправке в каталог с использованием транспорта ‘dir’.

Варианты:

  • false
  • true

dest

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

string

Путь или URL, по которому будет отправлен образ.

extra_args

string

Дополнительные аргументы для команды отправки, если она выполняется. Новые аргументы отправки не проверяются на идемпотентность.

format

string

Тип манифеста для отправки образа с использованием транспорта ‘dir’ (по умолчанию используется тип манифеста исходного образа)

Варианты:

  • "oci"
  • "v2s1"
  • "v2s2"

remove_signatures

boolean

Удалить все существующие подписи образа

Варианты:

  • false
  • true

sign_by

string

Путь к файлу ключа для подписи образа.

ssh

string

Параметры SSH для отправки образов с использованием транспорта SCP.

transport

string

Транспорт для отправки образа. Если транспорт не указан, будет предпринята попытка отправить образ в удаленный реестр

Варианты:

  • "dir"
  • "docker-archive"
  • "docker-daemon"
  • "oci-archive"
  • "ostree"
  • "docker"
  • "scp"

quadlet_dir

path

Путь к каталогу для записи файла quadlet. По умолчанию для пользователя root используется /etc/containers/systemd/, а для пользователей без root — ~/.config/containers/systemd/.

quadlet_file_mode

any

Разрешения файла quadlet.

Параметр quadlet_file_mode можно указать в виде восьмеричного числа или символьного режима (например, u+rwx или u=rw,g=r,o=r). Для восьмеричного формата необходимо либо добавить ведущий ноль, чтобы YAML-анализатор Ansible распознал восьмеричное число (например, 0644 или 01777), либо заключить значение в кавычки (например, '644' или '1777'), чтобы Ansible получил строку и преобразовал её в число самостоятельно. Если передать Ansible число, не соблюдая ни одно из этих правил, оно будет интерпретировано как десятичное, что приведет к неожиданным результатам.

Если quadlet_file_mode не указан и файл quadlet не существует, при установке режима для нового файла будет использоваться маска '0640' по умолчанию.

Если quadlet_file_mode не указан и файл quadlet существует, будет использоваться режим существующего файла.

Указание quadlet_file_mode — лучший способ обеспечить создание файлов с правильными разрешениями.

quadlet_filename

string

Имя записываемого файла quadlet. По умолчанию используется имя образа без префиксов и тегов.

quadlet_options

list / elements=string

Параметры файла quadlet. Укажите недостающие параметры сетевых аргументов в виде списка строк для добавления.

state

string

Должен ли образ присутствовать, отсутствовать или быть собран.

Варианты:

  • "present" ← (по умолчанию)
  • "absent"
  • "build"
  • "quadlet"

tag

string

Тег образа для получения, отправки или удаления.

По умолчанию: "latest"

username

string

Имя пользователя для аутентификации в удаленных реестрах.

validate_certs

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

boolean

Требовать HTTPS и проверять сертификаты при получении или отправке. Также используется при сборке, если требуется получение или отправка.

Варианты:

  • false
  • true

Примеры

- name: Pull an image
  containers.podman.podman_image:
    name: quay.io/bitnami/wildfly

- name: Remove an image
  containers.podman.podman_image:
    name: quay.io/bitnami/wildfly
    state: absent

- name: Remove an image with image id
  containers.podman.podman_image:
    name: 0e901e68141f
    state: absent

- name: Pull a specific version of an image
  containers.podman.podman_image:
    name: redis
    tag: 4

- name: Build a basic OCI image
  containers.podman.podman_image:
    name: nginx
    path: /path/to/build/dir

- name: Build a basic OCI image with advanced parameters
  containers.podman.podman_image:
    name: nginx
    path: /path/to/build/dir
    build:
      cache: no
      force_rm: true
      format: oci
      annotation:
        app: nginx
        function: proxy
        info: Load balancer for my cool app
      extra_args: "--build-arg KEY=value"

- name: Build a Docker formatted image
  containers.podman.podman_image:
    name: nginx
    path: /path/to/build/dir
    build:
      format: docker

- name: Build and push an image using existing credentials
  containers.podman.podman_image:
    name: nginx
    path: /path/to/build/dir
    push: true
    push_args:
      dest: quay.io/acme

- name: Build and push an image using an auth file
  containers.podman.podman_image:
    name: nginx
    push: true
    auth_file: /etc/containers/auth.json
    push_args:
      dest: quay.io/acme

- name: Build and push an image using username and password
  containers.podman.podman_image:
    name: nginx
    push: true
    username: bugs
    password: "{{ vault_registry_password }}"
    push_args:
      dest: quay.io/acme

- name: Build and push an image to multiple registries
  containers.podman.podman_image:
    name: "{{ item }}"
    path: /path/to/build/dir
    push: true
    auth_file: /etc/containers/auth.json
  loop:
    - quay.io/acme/nginx
    - docker.io/acme/nginx

- name: Build and push an image to multiple registries with separate parameters
  containers.podman.podman_image:
    name: "{{ item.name }}"
    tag: "{{ item.tag }}"
    path: /path/to/build/dir
    push: true
    auth_file: /etc/containers/auth.json
    push_args:
      dest: "{{ item.dest }}"
  loop:
    - name: nginx
      tag: 4
      dest: docker.io/acme

    - name: nginx
      tag: 3
      dest: docker.io/acme

- name: Push image to a remote host via scp transport
  containers.podman.podman_image:
    name: testimage
    pull: false
    push: true
    push_args:
      dest: user@server
      transport: scp

- name: Pull an image for a specific CPU architecture
  containers.podman.podman_image:
    name: nginx
    arch: amd64

- name: Pull an image for a specific platform (e.g. x86 on M-series Mac)
  containers.podman.podman_image:
    name: nginx
    platform: linux/amd64

- name: Build a container from file inline
  containers.podman.podman_image:
    name: mycustom_image
    state: build
    build:
      container_file: |-
        FROM alpine:latest
        CMD echo "Hello, World!"

- name: Create a quadlet file for an image
  containers.podman.podman_image:
    name: docker.io/library/alpine:latest
    state: quadlet
    quadlet_dir: /etc/containers/systemd
    quadlet_filename: alpine-latest
    quadlet_file_mode: '0640'
    quadlet_options:
      - Variant=arm/v7
      - |
        [Install]
        WantedBy=default.target

Возвращаемые значения

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

Ключ

Описание

image

dictionary

Результаты проверки образа, который был получен, отправлен или собран.

Возвращается: при успехе

Пример: [{"Annotations": {}, "Architecture": "amd64", "Author": "", "Comment": "", "Config": {"ArgsEscaped": true, "Cmd": ["/bin/sh"], "Env": ["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"]}, "Created": "2019-03-07T22:19:53.447205048Z", "Digest": "sha256:8421d9a84432575381bfabd248f1eb56f3aa21d9d7cd2511583c68c9b7511d10", "GraphDriver": {"Data": {"UpperDir": "/home/user/.local/share/containers/storage/overlay/3fc6.../diff", "WorkDir": "/home/user/.local/share/containers/storage/overlay/3fc6.../work"}, "Name": "overlay"}, "History": [{"created": "2019-03-07T22:19:53.313789681Z", "created_by": "/bin/sh -c #(nop) ADD file:aa17928... in / "}, {"created": "2019-03-07T22:19:53.447205048Z", "created_by": "/bin/sh -c #(nop)  CMD [\"/bin/sh\"]", "empty_layer": true}], "Id": "6d1ef012b5674ad8a127ecfa9b5e6f5178d171b90ee462846974177fd9bdd39f", "Labels": null, "ManifestType": "application/vnd.docker.distribution.manifest.v2+json", "NamesHistory": ["docker.io/library/alpine:3.7"], "Os": "linux", "Parent": "", "RepoDigests": ["docker.io/library/alpine@sha256:8421...", "docker.io/library/alpine@sha256:9225..."], "RepoTags": ["docker.io/library/alpine:3.7"], "RootFS": {"Layers": ["sha256:3fc6..."], "Type": "layers"}, "Size": 4467084, "User": "", "Version": "18.06.1-ce", "VirtualSize": 4467084}]

Авторы

  • Sagi Shnaidman (@sshnaidm)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)

© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/containers/podman/podman_image_module.html

Spec-Zone.ru

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