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 строка |
| Определяет, будет ли контейнер создавать 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 |
| Указывает 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 |
| Драйвер ведения журнала. Используется для установки драйвера ведения журнала для контейнера. Например, log_driver "k8s-file". | |
| log_level string |
| Уровень ведения журнала для 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 |
| Прокси-сигналы, отправляемые команде podman run контейнерному процессу. SIGCHLD, SIGSTOP и SIGKILL не проксируются. По умолчанию значение true. | |
| state string |
|
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 |
| Запустить контейнер в режиме systemd. По умолчанию true. | |
| tmpfs dictionary | Создать 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-монтирование. Если вы укажете 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