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 строка |
| Определяет, будет ли контейнер создавать группы 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 |
| Указывает 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 |
| Драйвер логгирования. Используется для установки драйвера логгирования для контейнера. Например, log_driver "k8s-file". | |
| log_level string |
| Уровень логгирования для 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 |
| Прокси-сигналы, отправленные в команду podman run контейнеру. SIGCHLD, SIGSTOP и SIGKILL не проксируются. По умолчанию значение — true. | |
| state string |
|
отсутствует - Контейнер, соответствующий указанному имени, будет остановлен и удален.
наличие - Утверждает существование контейнера, соответствующего имени и любым предоставленным параметрам конфигурации. Если контейнер не соответствует имени, контейнер будет создан. Если контейнер соответствует имени, но предоставленная конфигурация не соответствует, контейнер будет обновлен, если это возможно. Если он не может быть обновлен, он будет удален и пересоздан с запрошенной конфигурацией. Версия образа будет учитываться при сравнении конфигурации. Используйте параметр 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 |
| Запустить контейнер в режиме systemd. По умолчанию значение — true. | |
| tmpfs dictionary | Создание mount tmpfs. Например, tmpfs "/tmp" "rw,size=787448k,mode=1777" | ||
| tty boolean |
| Выделить псевдо-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