Spec-Zone.ru › Ansible 2.10

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

Примечание

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

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

Чтобы использовать его в playbook, укажите: 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
список / элементы=строка
Список прав для добавления в контейнер.

алиасы: capabilities
cap_drop
список / элементы=строка
Список прав для удаления из контейнера.
cgroup_parent
путь
Путь к группе cgroups, в которой будет создана группа cgroups для контейнера. Если путь не абсолютный, то он считается относительным к пути группы cgroups процесса init. Группы cgroups будут созданы, если их ещё нет.
cgroupns
строка
Путь к группе cgroups, в которой будет создана группа cgroups для контейнера.
cgroups
строка
    Варианты:
  • default
  • disabled
Определяет, будет ли контейнер создавать группы CGroups. Допустимые значения — enabled и disabled, по умолчанию — enabled. Значение disabled заставит контейнер не создавать группы CGroups, что противоречит параметрам cgroupns и cgroup-parent.
cidfile
путь
Записать идентификатор контейнера в файл
cmd_args
список / элементы=строка
Дополнительные параметры команд подман, cmd_args - ['--other-param', 'значение'] Учтите, что модуль не поддерживает идемпотентность, если это установлено.
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 /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 в ложь. Передаваемые переменные окружения включают http_proxy, https_proxy, ftp_proxy, no_proxy, а также заглавные версии этих переменных. По умолчанию — истина
image
string
Путь к репозиторию (или имя образа) и тэг, используемые для создания контейнера. Если образ не найден, он будет скачан из реестра. Если тэг не указан, будет использоваться latest.
Также может быть идентификатором образа. В этом случае образ предполагается доступным локально.
image_strict
boolean
    Варианты:
  • нет ←
  • да
Сравнивать образы на идемпотентность, учитывая полное имя с реестром и именами пространств.
image_volume
string
    Варианты:
  • bind
  • tmpfs
  • ignore
Указывает Podman, как обрабатывать встроенные тома образов. Доступные варианты: bind, tmpfs или ignore (по умолчанию bind).
init
boolean
    Варианты:
  • нет
  • да
Запустить init внутри контейнера, который перенаправляет сигналы и собирает процессы. По умолчанию значение ложно.
init_path
string
Путь к бинарному файлу container-init.
interactive
boolean
    Варианты:
  • нет
  • да
Сохранить STDIN открытым, даже если не присоединён. По умолчанию значение ложно. При установке в значение истины, STDIN сохраняется открытым, даже если не присоединён. По умолчанию значение ложно.
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
Указать максимальный размер файла логов (например, 10мб).
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
Предельное значение, равное памяти плюс своп. Должен использоваться со флагом -m (--memory). СВТОП должен всегда быть больше, чем значение -m (--memory). По умолчанию СВТОП будет установлен вдвое больше значения --memory Примечание - идемпотентность поддерживается только для целых чисел.
memory_swappiness
integer
Настройка поведения переключения памяти контейнера. Принимает целое число от 0 до 100.
mount
string
Прикрепить файловую систему к контейнеру. bind или tmpfs. Например, mount "type=bind,source=/path/on/host,destination=/path/in/container"
name
string / required
Имя контейнера
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 для контейнера. По умолчанию значение ложно.
oom_kill_disable
boolean
    Варианты:
  • нет
  • да
Отключить OOM Killer для контейнера или нет. По умолчанию значение ложно.
oom_score_adj
integer
Настроить предпочтения OOM хоста для контейнеров (принимает от -1000 до 1000)
pid
string
Установить режим PID для контейнера

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

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

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

псевдонимы: volumes
volumes_from
list / elements=string
Монтировать volumes из указанных контейнеров.
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 — отсутствует.

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

Spec-Zone.ru

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