Spec-Zone.ru › Ansible

Модуль containers.podman.podman_pod — управление подами Podman

Примечание

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

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

Чтобы установить её, используйте: ansible-galaxy collection install containers.podman. Для использования этого модуля необходимы дополнительные компоненты. Подробности см. в разделе Требования.

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

Новое в containers.podman 1.0.0

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

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

  • Управление подами Podman.

Требования

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

  • podman

Параметры

Параметр

Комментарии

add_host

list / elements=string

Добавить хост в файл /etc/hosts, общий для всех контейнеров в поде.

blkio_weight

string

Относительный вес блочного ввода-вывода. Вес — это значение от 10 до 1000.

Этот параметр не поддерживается в системах без прав root с cgroups V1.

blkio_weight_device

list / elements=string

Относительный вес блочного ввода-вывода для устройства.

cgroup_parent

string

Путь к cgroups, в которых будет создана cgroup для пода. Если путь не абсолютный, он считается относительным к пути cgroups процесса init. Если cgroups ещё не существуют, они будут созданы.

cpu_shares

string

Доли ЦП (относительный вес).

cpus

string

Задать общее количество ЦП, выделенных поду. Значение по умолчанию — 0.000, что означает отсутствие ограничения вычислительной мощности.

cpuset_cpus

string

Ограничить ЦП, на которых разрешено выполнение. Нумерация ЦП начинается с 0. В отличие от `cpus`, этот параметр имеет тип string и разбирается как список чисел. Формат: 0-3,0,1

cpuset_mems

string

Узлы памяти, на которых разрешено выполнение (0-3, 0,1). Действует только в системах NUMA.

debug

boolean

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

Возможные значения:

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

device

list / elements=string

Добавить устройство хоста в под. Необязательный параметр разрешений позволяет задать разрешения для устройства. Это сочетание r для чтения, w для записи и m для mknod(2)

device_read_bps

list / elements=string

Ограничить скорость чтения с устройства (байт в секунду), например device-read-bps=/dev/sda:1mb

device_write_bps

list / elements=string

Ограничить скорость записи на устройство (в байтах в секунду).

dns

list / elements=string

Задать пользовательские DNS-серверы в файле /etc/resolv.conf, общем для всех контейнеров в поде. Разрешён специальный параметр «none», который отключает создание /etc/resolv.conf для пода.

dns_opt

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

list / elements=string

Задать пользовательские параметры DNS в файле /etc/resolv.conf, общем для всех контейнеров в поде.

dns_search

list / elements=string

Задать пользовательские домены поиска DNS в файле /etc/resolv.conf, общем для всех контейнеров в поде.

executable

string

Путь к исполняемому файлу podman, если он отсутствует в $PATH на машине, где запущен podman

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

exit_policy

string

Задать политику завершения пода после выхода последнего контейнера. Поддерживаются политики stop и continue

Возможные значения:

  • "stop"
  • "continue"

generate_systemd

dictionary

Создать файл модуля systemd для контейнера.

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

after

list / elements=string

Добавить параметр модуля systemd after (After=), задающий порядок относительно списка зависимостей для этой службы.

container_prefix

string

Задать префикс имени модуля systemd для контейнеров. По умолчанию используется «container».

names

boolean

Использовать имена контейнеров в параметрах запуска, остановки и описания файла модуля. По умолчанию — true.

Возможные значения:

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

new

boolean

Создавать контейнеры и поды при запуске модуля, а не рассчитывать на то, что они уже существуют. Значение по умолчанию — «false». Дополнительные сведения см. в podman-generate-systemd(1).

Возможные значения:

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

no_header

boolean

Не создавать заголовок с метаданными, например версией Podman и временной меткой. Доступно начиная с версии Podman 3.1.0.

Возможные значения:

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

path

string

Указать путь к каталогу, в котором будут созданы файлы модулей. Этот параметр обязателен. Если каталога не существует, он будет создан.

pod_prefix

string

Задать префикс имени модуля systemd для подов. По умолчанию используется «pod».

requires

list / elements=string

Задать параметр модуля systemd requires (Requires=). Аналогичен wants, но объявляет более строгую зависимость.

restart_policy

string

Указать политику перезапуска службы. Политика перезапуска должна быть одной из следующих: «no», «on-success», «on-failure», «on-abnormal», «on-watchdog», «on-abort» или «always». По умолчанию используется политика «on-failure».

Возможные значения:

  • "no"
  • "on-success"
  • "on-failure"
  • "on-abnormal"
  • "on-watchdog"
  • "on-abort"
  • "always"

restart_sec

integer

Задать значение restartsec для службы systemd.

separator

string

Задать разделитель имени модуля systemd между именем/идентификатором контейнера/пода и префиксом. По умолчанию используется «-» (дефис).

start_timeout

integer

Переопределить значение времени ожидания запуска контейнера значением этого параметра.

stop_timeout

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

integer

Переопределить значение времени ожидания остановки контейнера значением этого параметра. До версии 4 параметр назывался `time`.

wants

list / elements=string

Добавить параметр модуля systemd wants (Wants=), указывающий на (нестрогую) зависимость этой службы.

gidmap

list / elements=string

Карта GID для пользовательского пространства имён. При использовании этого параметра контейнер запускается с включённым пользовательским пространством имён. Несовместим с параметрами `userns` и `subgidname`.

gpus

string

Устройства GPU, добавляемые в контейнер («all» для передачи всех GPU).

hostname

string

Задать имя хоста для пода

infra

boolean

Создать инфраструктурный контейнер и связать его с подом. Инфраструктурный контейнер — это облегчённый контейнер, используемый для координации общего пространства имён ядра пода. По умолчанию — true.

Возможные значения:

  • false
  • true

infra_command

string

Команда, запускаемая для запуска инфраструктурного контейнера. По умолчанию — «/pause».

infra_conmon_pidfile

string

Записать PID процесса conmon инфраструктурного контейнера в файл. Так как conmon работает в отдельном процессе, а не в Podman, это необходимо при использовании systemd для управления контейнерами и подами Podman.

infra_image

string

Образ, используемый для создания инфраструктурного контейнера. По умолчанию — «k8s.gcr.io/pause:3.1».

infra_name

string

Имя, используемое для инфраструктурного контейнера пода.

ip

string

Задать статический IP-адрес для общей сети пода.

ip6

string

Задать статический IPv6-адрес для общей сети пода.

label

dictionary

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

label_file

string

Прочитать файл меток, разделённых символами новой строки.

mac_address

string

Задать статический MAC-адрес для общей сети пода.

memory

string

Задать ограничение памяти.

В качестве единицы измерения можно указать b (байты), k (кибибайты), m (мебибайты) или g (гибибайты).

memory_swap

string

Задать ограничение, равное сумме памяти и пространства подкачки.

В качестве единицы измерения можно указать b (байты), k (кибибайты), m (мебибайты) или g (гибибайты).

name

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

Назначить имя поду.

network

list / elements=string

Задать режим сети для пода. Поддерживаются значения bridge (по умолчанию), host (не создавать пространство имён сети; все контейнеры в поде будут использовать сеть хоста) или список имён сетей CNI, к которым следует подключиться.

network_alias

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

list / elements=string

Добавить сетевой псевдоним для пода, задав его для всех сетей, к которым подключается под. Чтобы задать имя только для конкретной сети, используйте параметр alias, описанный в разделе параметра -`network`. Сетевые псевдонимы работают только в режиме bridge. Этот параметр можно указывать несколько раз.

no_hosts

boolean

Отключить создание /etc/hosts для пода.

Возможные значения:

  • false
  • true

pid

string

Задать режим PID для пода. По умолчанию для пода создаётся закрытое пространство имён PID. Для этого требуется, чтобы пространство имён PID совместно использовалось через параметр `share`.

pod_id_file

string

Записать идентификатор пода в файл.

publish

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

list / elements=string

Опубликовать порт или диапазон портов пода на хосте.

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 не существует, при задании режима для нового файла будет использоваться значение umask, установленное в системе.

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

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

quadlet_filename

string

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

quadlet_options

list / elements=string

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

recreate

boolean

Используйте с состояниями present и started, чтобы принудительно пересоздать существующий pod.

Варианты:

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

restart_policy

string

Политика перезапуска, применяемая при завершении работы контейнеров.

security_opt

list / elements=string

Параметры безопасности для pod.

share

string

Список пространств имён ядра, разделённых запятыми, для совместного использования. Если указано none или «», пространства имён не будут использоваться совместно. Доступны пространства имён ipc, net, pid, user, uts.

share_parent

boolean

Этот логический параметр определяет, будут ли все контейнеры, входящие в pod, использовать pod в качестве родительской группы cgroup. В Podman значение этого параметра по умолчанию — true.

Варианты:

  • false
  • true

shm_size

string

Задаёт размер области разделяемой памяти /dev/shm. В качестве единицы измерения можно указать b (байты), k (кибибайты), m (мебибайты) или g (гибибайты). Если единица измерения не указана, система использует байты. Если размер не указан, по умолчанию используется 64m. Если размер равен 0, объём памяти, используемой pod для IPC, не ограничен.

shm_size_systemd

string

Размер специфичных для systemd монтирований tmpfs, таких как /run, /run/lock, /var/log/journal и /tmp. В качестве единицы измерения можно указать b (байты), k (кибибайты), m (мебибайты) или g (гибибайты). Если единица измерения не указана, система использует байты. Если размер не указан, по умолчанию используется 64m. Если размер равен 0, использование ограничивается 50 процентами доступной памяти хоста.

state

string

Эта переменная задаёт состояние

Варианты:

  • "created" ← (по умолчанию)
  • "killed"
  • "restarted"
  • "absent"
  • "started"
  • "stopped"
  • "paused"
  • "unpaused"
  • "quadlet"

subgidname

string

Имя для сопоставления GID из файла /etc/subgid. Использование этого флага запускает контейнер с включённым пространством имён пользователя. Этот флаг несовместим с `userns` и `gidmap`.

subuidname

string

Имя для сопоставления UID из файла /etc/subuid. Использование этого флага запускает контейнер с включённым пространством имён пользователя. Этот флаг несовместим с `userns` и `uidmap`.

sysctl

dictionary

Задаёт параметры ядра для pod.

uidmap

list / elements=string

Запускает контейнер в новом пространстве имён пользователя с указанным сопоставлением. Этот параметр несовместим с параметрами `userns` и `subuidname`. Он позволяет сопоставлять UID хоста с UID контейнера. Параметр можно передавать несколько раз для сопоставления разных диапазонов.

userns

string

Задаёт режим пространства имён пользователя для всех контейнеров в pod. По умолчанию используется значение переменной окружения PODMAN_USERNS. Пустое значение («») означает, что пространства имён пользователя отключены.

uts

string

Задаёт режим пространства имён UTS для pod.

volume

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

list / elements=string

Создаёт монтирование привязки.

volumes_from

list / elements=string

Монтирует тома из указанного контейнера.

Примеры

# What modules does for example
- containers.podman.podman_pod:
    name: pod1
    state: started
    ports:
      - "4444:5555"

# Connect random port from localhost to port 80 on pod2
- name: Connect random port from localhost to port 80 on pod2
  containers.podman.podman_pod:
    name: pod2
    state: started
    publish: "127.0.0.1::80"

# Full workflow example with pod and containers
- name: Create a pod with parameters
  containers.podman.podman_pod:
    name: mypod
    state: created
    network: host
    share: net
    userns: auto
    security_opt:
      - seccomp=unconfined
      - apparmor=unconfined
    hostname: mypod
    dns:
      - 1.1.1.1
    volumes:
      - /tmp:/tmp/:ro
    label:
      key: cval
      otherkey: kddkdk
      somekey: someval
    add_host:
      - "google:5.5.5.5"

- name: Create containers attached to the pod
  containers.podman.podman_container:
    name: "{{ item }}"
    state: created
    pod: mypod
    image: alpine
    command: sleep 1h
    loop:
      - "container1"
      - "container2"

- name: Start pod
  containers.podman.podman_pod:
    name: mypod
    state: started
    network: host
    share: net
    userns: auto
    security_opt:
      - seccomp=unconfined
      - apparmor=unconfined
    hostname: mypod
    dns:
      - 1.1.1.1
    volumes:
      - /tmp:/tmp/:ro
    label:
      key: cval
      otherkey: kddkdk
      somekey: someval
    add_host:
      - "google:5.5.5.5"

# Create a Quadlet file for a pod
- containers.podman.podman_pod:
    name: qpod
    state: quadlet
    ports:
      - "4444:5555"
    volume:
      - /var/run/docker.sock:/var/run/docker.sock
    quadlet_dir: /custom/dir

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

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

Ключ

Описание

pod

dictionary

Результаты проверки созданного pod.

Возвращается: всегда

Пример: {"CgroupParent": "user.slice", "CgroupPath": "user.slice/user-1000.slice/user@1000.service/user.slice/....slice", "Containers": [{"Id": "37f960e6c8accc6b5b41945b1dcf03a28d3a366f7f37049748f18b21c44f577e", "Name": "a99a49b8fa77-infra", "State": "created"}], "CreateCgroup": true, "CreateCommand": ["podman", "pod", "create", "--name", "pod_name", "--infra=True", "--userns", "auto", "--security-opt", "seccomp=unconfined", "--security-opt", "apparmor=unconfined", "--hostname", "mypod", "--dns", "1.1.1.2", "--label", "key=cval", "--label", "otherkey=kddkdk", "--label", "somekey=someval", "--add-host", "google:5.5.5.5", "--volume", "/tmp/test//:/data2"], "CreateInfra": true, "Created": "2024-05-28T20:41:09.946926613+03:00", "ExitPolicy": "continue", "Hostname": "mypod", "Id": "a99a41b8fa77d8c7ff1c432a7a21bc0c2afd8c13b94a9d9b9b19b66ae97920c1", "InfraConfig": {"DNSOption": null, "DNSSearch": null, "DNSServer": ["1.1.1.2"], "HostAdd": ["google:5.5.5.5"], "HostNetwork": false, "NetworkOptions": null, "Networks": null, "NoManageHosts": false, "NoManageResolvConf": false, "PortBindings": {}, "StaticIP": "", "StaticMAC": "", "pid_ns": "private", "userns": "host", "uts_ns": "private"}, "InfraContainerID": "37f960e6c8accc6b5b41945b1dcf03a28d3a366f7f37049748f18b21c44f577e", "Labels": {"key": "cval", "otherkey": "kddkdk", "somekey": "someval"}, "LockNumber": 1, "Name": "pod_name", "NumContainers": 1, "SharedNamespaces": ["user", "uts", "ipc", "net"], "State": "Created", "mounts": [{"Destination": "/data2", "Driver": "", "Mode": "", "Options": ["nosuid", "nodev", "rbind"], "Propagation": "rprivate", "RW": true, "Source": "/tmp/test", "Type": "bind"}], "security_opt": ["seccomp=unconfined", "apparmor=unconfined"]}

Авторы

  • 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_pod_module.html

Spec-Zone.ru

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