Spec-Zone.ru › Ansible 2.11

containers.podman.podman_container – Управление контейнерами podman

Примечание

Этот плагин входит в коллекцию containers.podman (версия 1.4.1).

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

Для использования в плейбуке укажите: containers.podman.podman_container.

Добавлена в версии 1.0.0: плагина containers.podman

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

Обзор

  • Запуск, остановка, перезапуск и управление контейнерами Podman

Требования

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

  • podman

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
annotation
словарь
Добавить аннотацию к контейнеру. Формат — ключ-значение, может быть несколько раз.
authfile
путь
Путь к файлу аутентификации. По умолчанию — ``${XDG_RUNTIME_DIR}/containers/auth.json`` (недоступно для удалённых команд). Также можно переопределить путь к файлу аутентификации, задав переменную окружения ``REGISTRY_AUTH_FILE``. ``export REGISTRY_AUTH_FILE=путь``
blkio_weight
целое число
Вес операций ввода-вывода на блочном устройстве (относительный вес). Принимает значения от 10 до 1000.
blkio_weight_device
словарь
Вес операций ввода-вывода на блочном устройстве (относительный вес устройства, формат DEVICE_NAME[:]WEIGHT).
cap_add
список / элементы=строка
Список дополнительных возможностей для контейнера.

Псевдонимы: возможности
cap_drop
список / элементы=строка
Список возможностей для удаления из контейнера.
cgroup_parent
путь
Путь к cgroups, в котором будет создан cgroup для контейнера. Если путь не абсолютный, он рассматривается как относительный к пути cgroups процесса инициализации. Cgroups будут созданы, если они ещё не существуют.
cgroupns
строка
Путь к cgroups, в котором будет создан cgroup для контейнера.
cgroups
строка
    Варианты:
  • default
  • disabled
Определяет, будет ли контейнер создавать CGroups. Допустимые значения — enabled и disabled, по умолчанию — enabled. Значение disabled запретит создание CGroups, что конфликтует с опциями cgroupns и cgroup-parent.
cidfile
путь
Записать идентификатор контейнера в файл
cmd_args
список / элементы=строка
Дополнительные параметры команды podman, cmd_args - ['--other-param', 'value']. Обратите внимание, модуль не поддерживает идемпотентность, если это задано.
command
сырой
Переопределение команды контейнера. Может быть строкой или списком.
conmon_pidfile
путь
Запись PID процесса conmon в файл. conmon выполняется в отдельном процессе от Podman, поэтому это необходимо при использовании systemd для перезапуска контейнеров Podman.
cpu_period
целое число
Ограничение периода реального времени ЦП в микросекундах
cpu_rt_period
целое число
Ограничение периода реального времени ЦП в микросекундах. Ограничение использования ЦП реального времени контейнера. Этот флаг сообщает ядру ограничить использование контейнером ЦП реального времени до заданного периода.
cpu_rt_runtime
целое число
Ограничение времени выполнения задач реального времени ЦП в микросекундах. Этот флаг сообщает ядру ограничить время, которое в течение заданного периода реального времени ЦП могут использовать задачи.
cpu_shares
целое число
Доли ЦП (относительный вес)
cpus
строка
Количество ЦП. По умолчанию 0.0, что означает отсутствие ограничения.
cpuset_cpus
строка
ЦП, в которых разрешено выполнение (0-3, 0,1)
cpuset_mems
строка
Узлы памяти (MEM) для выполнения (0-3, 0,1). Эффективно только на системах NUMA.
debug
логическое
    Варианты:
  • нет ←
  • да
Возвращает дополнительную информацию, которая может быть полезна для расследования.
detach
логическое
    Варианты:
  • нет
  • да ←
Запуск контейнера в режиме отсоединения
detach_keys
строка
Переопределить последовательность клавиш для отсоединения контейнера. Формат — одиночный символ или ctrl-значение
device
список / элементы=строка
Добавление устройства хоста в контейнер. Формат <device-on-host>[:<device-on-container>][:<permissions>] (например, device /dev/sdc:/dev/xvdc:rwm).
device_read_bps
список / элементы=строка
Ограничение скорости чтения (байты в секунду) с устройства (например, device-read-bps /dev/sda:1мб).
device_read_iops
список / элементы=строка
Ограничение скорости чтения (операций ввода-вывода в секунду) с устройства (например, device-read-iops /dev/sda:1000).
device_write_bps
список / элементы=строка
Ограничение скорости записи (байты в секунду) на устройство (например, device-write-bps /dev/sda:1мб).
device_write_iops
список / элементы=строка
Ограничение скорости записи (операций ввода-вывода в секунду) на устройство (например, device-write-iops /dev/sda:1000).
dns
список / элементы=строка
Настройка пользовательских DNS-серверов

Псевдонимы: dns_servers
dns_option
строка
Настройка пользовательских DNS-параметров

Псевдонимы: dns_opts
dns_search
строка
Настройка пользовательских DNS-доменов поиска (используйте dns_search с пустой строкой, если не хотите устанавливать домен поиска)

Псевдонимы: dns_search_domains
entrypoint
строка
Переопределение значения ENTRYPOINT изображения по умолчанию
env
словарь
Установка переменных окружения. Эта опция позволяет задавать произвольные переменные окружения, доступные для процесса, который будет запущен внутри контейнера.
env_file
путь
Чтение файла, содержащего переменные окружения, разделённые по строкам
env_host
логическое
    Варианты:
  • нет
  • да
Использовать все текущие переменные окружения хоста в контейнере. По умолчанию — ложь.
etc_hosts
словарь
Словарь соответствий имени хоста и IP-адреса, где имя хоста — ключ в словаре. Каждое имя хоста будет добавлено в файл ``/etc/hosts`` контейнера.

Псевдонимы: add_hosts
executable
строка
По умолчанию:
"podman"
Путь к исполняемому файлу podman, если он не находится в $PATH на машине, на которой выполняется podman
expose
список / элементы=строка
Экспонирование порта или диапазона портов (например, expose "3300-3310") для настройки перенаправления портов на системе хоста.

Псевдонимы: exposed, exposed_ports
force_restart
логическое
    Варианты:
  • нет ←
  • да
Принудительный перезапуск контейнера.

Псевдонимы: restart
gidmap
список / элементы=строка
Запуск контейнера в новом пространстве имен пользователя с помощью предоставленного отображения.
group_add
список / элементы=строка
Добавление дополнительных групп для работы

Псевдонимы: groups
healthcheck
строка
Настройка или изменение команды проверки состояния контейнера.
healthcheck_interval
строка
Настройка интервала проверки состояния (значение disable приводит к отсутствию автоматической установки таймера) (по умолчанию "30s").
healthcheck_retries
целое число
Количество попыток повтора перед тем, как проверка состояния считается нездоровой. Значение по умолчанию — 3.
healthcheck_start_period
строка
Время инициализации, необходимое контейнеру для запуска. Значение можно выразить в формате времени, например, 2m3s. Значение по умолчанию — 0s.
healthcheck_timeout
строка
Максимальное время, разрешенное для завершения проверки состояния перед тем, как интервал считается не пройденным. Как и для start-period, значение можно выразить в формате времени, например, 1m22s. Значение по умолчанию — 30s.
hostname
строка
Имя хоста контейнера. Устанавливает имя хоста контейнера, доступное внутри контейнера.
http_proxy
логическое
    Варианты:
  • нет
  • да
По умолчанию переменные окружения прокси передаются в контейнер, если они заданы для процесса podman. Это можно отключить, установив опцию http_proxy в false. Передаваемые переменные окружения включают http_proxy, https_proxy, ftp_proxy, no_proxy, а также заглавные версии этих переменных. По умолчанию — true.
image
string
Путь к репозиторию (или имя изображения) и тег, используемые для создания контейнера. Если изображение не найдено, оно будет загружено из реестра. Если тег не указан, будет использовано значение latest.
Также может быть идентификатором изображения. В этом случае предполагается, что изображение доступно локально.
image_strict
boolean
    Варианты:
  • нет ←
  • да
Следует ли сравнивать изображения при идемпотентности, учитывая полное имя с реестром и именами пространств имён.
image_volume
string
    Варианты:
  • bind
  • tmpfs
  • ignore
Указывает Podman, как обрабатывать встроенные тома изображений. Доступны варианты bind, tmpfs или ignore (по умолчанию bind).
init
boolean
    Варианты:
  • нет
  • да
Запустить init внутри контейнера, который перенаправляет сигналы и собирает процессы. По умолчанию значение false.
init_path
string
Путь к бинарному файлу container-init.
interactive
boolean
    Варианты:
  • нет
  • да
Сохранять STDIN открытым, даже если он не подключен. Значение по умолчанию — false. При значении true, stdin остаётся открытым даже при отсутствии подключения. Значение по умолчанию — false.
ip
string
Указать статический IP-адрес для контейнера, например '10.88.64.128'. Может использоваться только если не указаны дополнительные сети CNI для подключения через 'network:', и если контейнер не подключается к пространству имён сети другого контейнера через 'network container:<name|id>'. Адрес должен находиться в пуле сети CNI по умолчанию (по умолчанию 10.88.0.0/16).
ipc
string
По умолчанию создаётся частное пространство имён IPC (POSIX SysV IPC) для контейнера

алиасы: ipc_mode
kernel_memory
string
Ограничение ядра памяти (формат <число>[<единица>], где единица = b, k, m или g) Примечание — идемпотентность поддерживается только для целых чисел.
label
dictionary
Добавить метаданные к контейнеру, передать словарь имён меток и значений

алиасы: labels
label_file
string
Считать из файла, разделенного строками, метки
log_driver
string
    Варианты:
  • k8s-file
  • journald
  • json-file
Драйвер ведения журнала. Используется для установки драйвера ведения журнала для контейнера. Например, log_driver "k8s-file".
log_level
string
    Варианты:
  • debug
  • info
  • warn
  • error
  • fatal
  • panic
Уровень ведения журнала для Podman. Сообщения журнала, выше указанного уровня ("debug"|"info"|"warn"|"error"|"fatal"|"panic") (по умолчанию "error")
log_opt
dictionary
Параметры, специфичные для драйвера ведения журнала. Используется для установки пути к файлу журнала контейнера.

алиасы: log_options
max_size
string
Указать максимальный размер файла журнала (например, 10mb).
path
string
Указать путь к файлу журнала (например, /var/log/container/mycontainer.json).
tag
string
Указать пользовательский тег журнала для контейнера.
mac_address
string
Указать MAC-адрес для контейнера, например '92:d0:c6:0a:29:33'. Не забывайте, что он должен быть уникальным в одной сети Ethernet.
memory
string
Ограничение памяти (формат 10k, где единица = b, k, m или g) Примечание — идемпотентность поддерживается только для целых чисел.
memory_reservation
string
Мягкое ограничение памяти (формат 100m, где единица = b, k, m или g) Примечание — идемпотентность поддерживается только для целых чисел.
memory_swap
string
Значение ограничения, равное памяти плюс swap. Должно использоваться со флагом -m (--memory). Ограничение swap должно всегда быть больше значения -m (--memory). По умолчанию ограничение swap будет установлено в два раза больше значения --memory. Примечание — идемпотентность поддерживается только для целых чисел.
memory_swappiness
integer
Настройка поведения переключения памяти контейнера. Принимает целое число от 0 до 100.
mount
string
Прикрепить файловую систему mount к контейнеру. bind или tmpfs. Например, mount "type=bind,source=/path/on/host,destination=/path/in/container"
name
string / обязательно
Имя контейнера
network
list / elements=string
Установить режим сети для контейнера * bridge — создать стек сети на стандартном мосту * none — без сетевого взаимодействия * container:<name|id> — повторно использовать стек сети другого контейнера * host — использовать стек сети хоста podman. * <network-name>|<network-id> — подключиться к пользовательской сети * ns:<path> — путь к пространству имён сети для подключения * slirp4netns — использовать slirp4netns для создания пользовательского стека сети. Это значение по умолчанию для контейнеров rootless

алиасы: net, network_mode
no_hosts
boolean
    Варианты:
  • нет
  • да
Не создавать /etc/hosts для контейнера. По умолчанию значение false.
oom_kill_disable
boolean
    Варианты:
  • нет
  • да
Отключить OOM Killer для контейнера. По умолчанию значение false.
oom_score_adj
integer
Настроить настройки OOM хоста для контейнеров (принимает значения от -1000 до 1000)
pid
string
Установить режим PID для контейнера

алиасы: pid_mode
pids_limit
string
Настроить ограничение PIDs контейнера. Установить -1, чтобы получить неограниченное количество PIDs для контейнера.
pod
string
Запустить контейнер в существующем под. Если вы хотите, чтобы podman создал pod для вас, используйте имя под с префиксом "new:".
privileged
boolean
    Варианты:
  • нет
  • да
Предоставление расширенных привилегий контейнеру. По умолчанию значение false.
publish
list / elements=string
Опубликовать порт или диапазон портов контейнера на хост. Формат — ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort | containerPort В случае, если задан только containerPort, hostPort будет выбран случайным образом Podman.

алиасы: ports, published, published_ports
publish_all
boolean
    Варианты:
  • нет
  • да
Опубликовать все открытые порты на случайные порты интерфейсов хоста. Значение по умолчанию — false.
read_only
boolean
    Варианты:
  • нет
  • да
Монтировать корневую файловую систему контейнера в режиме только для чтения. Значение по умолчанию — false.
read_only_tmpfs
boolean
    Варианты:
  • нет
  • да
Если контейнер работает в режиме --read-only, то монтировать tmpfs в режиме чтения/записи в /run, /tmp и /var/tmp. Значение по умолчанию — true.
recreate
boolean
    Варианты:
  • нет ←
  • да
Использовать с состояниями присутствия и запуска, чтобы принудительно пересоздать существующий контейнер.
restart_policy
string
Политика перезапуска, которую следует соблюдать при выходе контейнеров. Политика перезапуска не будет действовать, если контейнер остановлен с помощью команд podman kill или podman stop. Допустимые значения: * no — не перезапускать контейнеры при выходе * on-failure[:max_retries] — перезапускать контейнеры, когда они выходят с кодом ошибки не 0, бесконечно или до достижения необязательного значения max_retries. * always — перезапускать контейнеры при выходе, независимо от состояния, бесконечно
rm
boolean
    Варианты:
  • нет
  • да
Автоматически удалить контейнер при выходе. Значение по умолчанию — false.

алиасы: remove, auto_remove
rootfs
boolean
    Варианты:
  • нет
  • да
Если true, первый аргумент ссылается на развернутый контейнер в файловой системе. Значение по умолчанию — false.
security_opt
list / elements=string
Параметры безопасности. Например, security_opt "seccomp=unconfined"
shm_size
string
Размер /dev/shm. Формат <число><единица>. Число должно быть больше 0. Единица необязательна и может быть b (байты), k (килобайты), m (мегабайты) или g (гигабайты). Если единица опущена, система использует байты. Если размер опушен полностью, система использует 64m
sig_proxy
boolean
    Варианты:
  • no
  • yes
Прокси-сигналы, отправляемые команде podman run контейнерному процессу. SIGCHLD, SIGSTOP и SIGKILL не проксируются. По умолчанию значение true.
state
string
    Варианты:
  • absent
  • present
  • stopped
  • started ←
absent - Контейнер с указанным именем будет остановлен и удален.
present - Утверждает существование контейнера, соответствующего имени и любым заданным параметрам конфигурации. Если контейнер с таким именем не найден, будет создан новый контейнер. Если контейнер с таким именем найден, но заданная конфигурация не соответствует, контейнер будет обновлен, если это возможно. Если обновление невозможно, он будет удален и пересоздан с запрошенной конфигурацией. При сравнении конфигурации будет учитываться версия образа. Используйте опцию recreate, чтобы принудительно пересоздать соответствующий контейнер.
started - Утверждает, что существует запущенный контейнер, соответствующий имени и любым заданным параметрам конфигурации. Если контейнер с таким именем не найден, будет создан и запущен новый контейнер. Используйте recreate для всегда пересоздания соответствующего контейнера, даже если он запущен. Используйте force_restart, чтобы принудительно остановить и перезапустить соответствующий контейнер.
stopped - Утверждает, что контейнер сначала present, а затем, если контейнер запущен, переводит его в состояние остановки.
stop_signal
integer
Сигнал для остановки контейнера. По умолчанию SIGTERM.
stop_timeout
integer
Таймаут (в секундах) для остановки контейнера. По умолчанию 10.
subgidname
string
Запустить контейнер в новом пространстве имен пользователя, используя отображение с 'name' в файле /etc/subgid.
subuidname
string
Запустить контейнер в новом пространстве имен пользователя, используя отображение с 'name' в файле /etc/subuid.
sysctl
dictionary
Настройка параметра ядра в пространстве имен во время выполнения
systemd
boolean
    Варианты:
  • no
  • yes
Запустить контейнер в режиме systemd. По умолчанию true.
tmpfs
dictionary
Создать tmpfs-монтирование. Например, tmpfs "/tmp" "rw,size=787448k,mode=1777"
tty
boolean
    Варианты:
  • no
  • yes
Выделить псевдо-TTY. По умолчанию false.
uidmap
list / elements=string
Запустить контейнер в новом пространстве имен пользователя с предоставленным отображением.
ulimit
list / elements=string
Параметры ulimit

Псевдонимы: ulimits
user
string
Устанавливает имя пользователя или UID и, по желанию, имя группы или GID для указанной команды.
userns
string
Установить режим пространства имен пользователя для контейнера. По умолчанию значение переменной окружения PODMAN_USERNS. Пустое значение означает отключение пространств имен пользователя.

Псевдонимы: userns_mode
uts
string
Установить режим UTS для контейнера
volume
list / elements=string
Создать bind-монтирование. Если вы укажете volume /HOST-DIR:/CONTAINER-DIR, podman смонтирует /HOST-DIR в хосте на /CONTAINER-DIR в контейнере podman.

Псевдонимы: volumes
volumes_from
list / elements=string
Монтировать тома из указанного(ых) контейнера(ов).
workdir
string
Рабочий каталог внутри контейнера. По умолчанию рабочий каталог для запуска бинарных файлов внутри контейнера - корневой каталог (/).

Псевдонимы: working_dir

Примеры

- name: Run container
  containers.podman.podman_container:
    name: container
    image: quay.io/bitnami/wildfly
    state: started

- name: Create a data container
  containers.podman.podman_container:
    name: mydata
    image: busybox
    volume:
      - /tmp/data

- name: Re-create a redis container
  containers.podman.podman_container:
    name: myredis
    image: redis
    command: redis-server --appendonly yes
    state: present
    recreate: yes
    expose:
      - 6379
    volumes_from:
      - mydata

- name: Restart a container
  containers.podman.podman_container:
    name: myapplication
    image: redis
    state: started
    restart: yes
    etc_hosts:
        other: "127.0.0.1"
    restart_policy: "no"
    device: "/dev/sda:/dev/xvda:rwm"
    ports:
        - "8080:9000"
        - "127.0.0.1:8081:9001/udp"
    env:
        SECRET_KEY: "ssssh"
        BOOLEAN_KEY: "yes"

- name: Container present
  containers.podman.podman_container:
    name: mycontainer
    state: present
    image: ubuntu:14.04
    command: "sleep 1d"

- name: Stop a container
  containers.podman.podman_container:
    name: mycontainer
    state: stopped

- name: Start 4 load-balanced containers
  containers.podman.podman_container:
    name: "container{{ item }}"
    recreate: yes
    image: someuser/anotherappimage
    command: sleep 1d
  with_sequence: count=4

- name: remove container
  containers.podman.podman_container:
    name: ohno
    state: absent

- name: Writing output
  containers.podman.podman_container:
    name: myservice
    image: busybox
    log_options: path=/var/log/container/mycontainer.json
    log_driver: k8s-file

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

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

Ключ Возвращаемое значение Описание
container
dictionary
всегда
Данные, представляющие текущее состояние контейнера. Соответствует выводу podman inspection.
Обратите внимание, что данные являются частью зарегистрированных переменных с Ansible 2.8. По соображениям совместимости, данные также доступны напрямую как podman_container. Обратите внимание, что возвращаемые данные будут удалены в Ansible 2.12.
Пустое, если state равно absent.

Пример:
{ "AppArmorProfile": "", "Args": [ "sh" ], "BoundingCaps": [ "CAP_CHOWN", ... ], "Config": { "Annotations": { "io.kubernetes.cri-o.ContainerType": "sandbox", "io.kubernetes.cri-o.TTY": "false" }, "AttachStderr": false, "AttachStdin": false, "AttachStdout": false, "Cmd": [ "sh" ], "Domainname": "", "Entrypoint": "", "Env": [ "PATH=/usr/sbin:/usr/bin:/sbin:/bin", "TERM=xterm", "HOSTNAME=", "container=podman" ], "Hostname": "", "Image": "docker.io/library/busybox:latest", "Labels": null, "OpenStdin": false, "StdinOnce": false, "StopSignal": 15, "Tty": false, "User": { "gid": 0, "uid": 0 }, "Volumes": null, "WorkingDir": "/" }, "ConmonPidFile": "...", "Created": "2019-06-17T19:13:09.873858307+03:00", "Dependencies": [], "Driver": "overlay", "EffectiveCaps": [ "CAP_CHOWN", ... ], "ExecIDs": [], "ExitCommand": [ "/usr/bin/podman", "--root", ... ], "GraphDriver": { ... }, "HostConfig": { ... }, "HostnamePath": "...", "HostsPath": "...", "ID": "...", "Image": "...", "ImageName": "docker.io/library/busybox:latest", "IsInfra": false, "LogPath": "/tmp/container/mycontainer.json", "MountLabel": "system_u:object_r:container_file_t:s0:c282,c782", "Mounts": [ ... ], "Name": "myservice", "Namespace": "", "NetworkSettings": { "Bridge": "", ... }, "Path": "sh", "ProcessLabel": "system_u:system_r:container_t:s0:c282,c782", "ResolvConfPath": "...", "RestartCount": 0, "Rootfs": "", "State": { "Dead": false, "Error": "", "ExitCode": 0, "FinishedAt": "2019-06-17T19:13:10.157518963+03:00", "Healthcheck": { "FailingStreak": 0, "Log": null, "Status": "" }, "OOMKilled": false, "OciVersion": "1.0.1-dev", "Paused": false, "Pid": 4083, "Restarting": false, "Running": false, "StartedAt": "2019-06-17T19:13:10.152479729+03:00", "Status": "exited" }, "StaticDir": "..." ... }


Авторы

  • Sagi Shnaidman (@sshnaidm)

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

Spec-Zone.ru

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