Spec-Zone.ru › Ansible

containers.podman.podman_pod модуль — Управление Podman контейнерами

Примечание

Этот модуль является частью коллекции containers.podman (версия 1.16.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

список / элементы=строка

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

blkio_weight

строка

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

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

blkio_weight_device

список / элементы=строка

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

cgroup_parent

строка

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

cpu_shares

строка

CPU-доли (относительный вес).

cpus

строка

Установите общее количество выделенных процессоров для подсети. По умолчанию 0,000, что указывает на отсутствие ограничения вычислительной мощности.

cpuset_cpus

строка

Ограничить поддержку выполнения процессорами. Первый процессор имеет номер 0. В отличие от `cpus`, это строка, анализируемая как список чисел. Формат: 0-3,0,1

cpuset_mems

строка

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

debug

логический

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

Варианты:

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

device

список / элементы=строка

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

device_read_bps

список / элементы=строка

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

device_write_bps

список / элементы=строка

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

dns

список / элементы=строка

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

dns_opt

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

список / элементы=строка

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

dns_search

список / элементы=строка

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

executable

строка

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

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

exit_policy

строка

Установите политику выхода подсети, когда завершается последний контейнер. Поддерживаемые политики: stop и continue

Варианты:

  • "stop"
  • "continue"

generate_systemd

словарь

Генерировать файл единицы systemd для контейнера.

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

after

список / элементы=строка

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

container_prefix

строка

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

names

логический

Использовать имена контейнеров для запуска, остановки и описания в файле единицы. По умолчанию 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 unit 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

Установите значение systemd service restartsec.

separator

string

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

start_timeout

integer

Переопределите значение таймаута запуска контейнера заданным значением.

stop_timeout

aliases: time

integer

Переопределите значение таймаута остановки контейнера заданным значением. До версии 4 называлось «time».

wants

list / elements=string

Добавьте опцию systemd unit 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 / required

Присваивает имя поду.

network

list / elements=string

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

network_alias

aliases: network_aliases

list / elements=string

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

no_hosts

boolean

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

Варианты:

  • false
  • true

pid

string

Устанавливает режим PID для пода. По умолчанию создаётся частное пространство имён PID для пода. Требуется, чтобы пространство имён PID было общим через параметр `share`.

pod_id_file

string

Записывает ID пода в файл.

publish

aliases: ports

list / elements=string

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

quadlet_dir

path

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

quadlet_filename

string

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

quadlet_options

list / elements=string

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

recreate

boolean

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

Варианты:

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

restart_policy

string

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

security_opt

list / elements=string

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

share

string

Список пространств имён ядра, разделённый запятыми, для совместного использования. Если не указано или указано “”, пространства имён не будут совместно использоваться. Пространства имён на выбор: ipc, net, pid, user, uts.

share_parent

boolean

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

Варианты:

  • false
  • true

shm_size

string

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

shm_size_systemd

string

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

состояние

строка

Это переменная установлена для состояния

Варианты:

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

subgidname

строка

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

subuidname

строка

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

sysctl

словарь

Установить параметры ядра для подсети.

uidmap

список / элементы=строка

Запустить контейнер в новом пространстве имен пользователей, используя предоставленное отображение. Этот параметр конфликтует с параметрами `userns` и `subuidname`. Этот параметр предоставляет способ сопоставления идентификаторов пользователей хоста с идентификаторами пользователей контейнера. Его можно передавать несколько раз для отображения различных диапазонов.

userns

строка

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

uts

строка

Установить режим пространства имен UTS для подсети.

volume

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

список / элементы=строка

Создать монтирование bind.

volumes_from

список / элементы=строка

Подключить тома из указанного контейнера.

Примеры

# 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

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

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

Ключ

Описание

подсеть

словарь

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

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

Пример: {"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–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/containers/podman/podman_pod_module.html

Spec-Zone.ru

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