Spec-Zone.ru › Ansible

Модуль containers.podman.podman_generate_systemd — создание модуля systemd для пода или контейнера

Примечание

Этот модуль входит в коллекцию containers.podman (версия 1.20.1).

Эта коллекция может быть уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install containers.podman. Для работы с этим модулем могут потребоваться дополнительные компоненты; подробности см. в разделе Требования.

Чтобы использовать модуль в плейбуке, укажите: containers.podman.podman_generate_systemd.

  • Краткое описание
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения

Краткое описание

  • Создание файла(ов) модуля systemd .service для пода или контейнера
  • Поддержка режима проверки Ansible

Требования

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

  • Podman установлен на целевом узле

Параметры

Параметр

Комментарии

after

list / elements=string

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

Этот параметр можно указывать несколько раз.

Пользовательские зависимости добавляются в конец созданного файла модуля.

При этом существующие параметры, например обязательные или заданные по умолчанию (например, online.target), не удаляются и не переопределяются.

Только для Podman версии 4.0.0 и выше

container_prefix

string

Задаёт префикс имени модуля systemd для контейнеров.

Если параметр не задан, используется значение по умолчанию, определённое в podman: container.

Дополнительные сведения см. на странице справочного руководства podman-generate-systemd(1).

dest

path

Путь назначения для созданного файла(ов) модуля systemd.

Используйте /etc/systemd/system для общесистемного экземпляра systemd.

Используйте /etc/systemd/user или ~/.config/systemd/user для пользовательских экземпляров systemd.

env

dictionary

Задаёт переменные окружения для файлов модулей systemd.

Ключи — это имена переменных окружения, а значения — их значения.

Только для Podman версии 4.3.0 и выше

executable

string

Имя исполняемого файла Podman или полный путь к нему

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

force

boolean

Заменяет файл(ы) модуля systemd, даже если они уже существуют.

Работает с параметром dest.

Варианты:

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

name

string / обязательный

Имя пода или контейнера для экспорта

new

boolean

Создаёт файлы модулей, которые создают контейнеры и поды, а не только запускают их.

Дополнительные сведения см. на странице справочного руководства podman-generate-systemd(1).

Варианты:

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

no_header

boolean

Не создаёт заголовок с метаданными, такими как версия Podman и временная метка.

Варианты:

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

pod_prefix

string

Задаёт префикс имени модуля systemd для подов.

Если параметр не задан, используется значение по умолчанию, определённое в podman: pod.

Дополнительные сведения см. на странице справочного руководства podman-generate-systemd(1).

requires

list / elements=string

Задаёт параметр Requires= для модуля systemd.

Подобно wants, но задаёт более строгую зависимость.

Только для Podman версии 4.0.0 и выше

restart_policy

string

Политика перезапуска службы

Варианты:

  • "no-restart"
  • "on-success"
  • "on-failure"
  • "on-abnormal"
  • "on-watchdog"
  • "on-abort"
  • "always"

restart_sec

integer

Задаёт время ожидания перед перезапуском службы (настраивается параметром restart-policy).

Значение указывается в секундах.

Только для Podman версии 4.0.0 и выше

separator

string

Разделитель в имени модуля systemd между именем/идентификатором контейнера/пода и префиксом.

Если параметр не задан, используется значение по умолчанию, определённое в podman: -.

Дополнительные сведения см. на странице справочного руководства podman-generate-systemd(1).

start_timeout

integer

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

Только для Podman версии 4.0.0 и выше

stop_timeout

integer

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

use_names

boolean

Использует имена контейнеров для запуска, остановки и описания в файле модуля.

Варианты:

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

wants

list / elements=string

Добавляет параметр systemd unit Wants (Wants=), указывающий, от каких служб данная служба слабо зависит.

Этот параметр можно указывать несколько раз.

Этот параметр не влияет на порядок запуска или остановки служб.

Пользовательские зависимости добавляются в конец созданного файла модуля.

При этом существующие параметры, например обязательные или заданные по умолчанию (например, online.target), не удаляются и не переопределяются.

Только для Podman версии 4.0.0 и выше

Примечания

Примечание

  • Если указать под, будут созданы модули systemd для него и всех его контейнеров
  • Создайте все поды, контейнеры и их зависимости до генерации файлов systemd
  • Если контейнер или под уже запущен до выполнения systemctl daemon-reload, systemd не будет считать его запущенным
  • Остановите контейнер или под перед выполнением systemctl daemon-reload, после чего их можно запустить с помощью systemctl start my_container.service

Примеры

# Example of creating a container and systemd unit file.
# When using podman_generate_systemd with new:true then
# the container needs rm:true for idempotence.
- name: Create postgres container
  containers.podman.podman_container:
    name: postgres
    image: docker.io/library/postgres:latest
    rm: true
    state: created

- name: Generate systemd unit file for postgres container
  containers.podman.podman_generate_systemd:
    name: postgres
    new: true
    no_header: true
    dest: /etc/systemd/system

- name: Ensure postgres container is started and enabled
  ansible.builtin.systemd:
    name: container-postgres
    daemon_reload: true
    state: started
    enabled: true


# Example of creating a container and integrate it into systemd
- name: A postgres container must exist, stopped
  containers.podman.podman_container:
    name: postgres_local
    image: docker.io/library/postgres:latest
    state: stopped

- name: Systemd unit files for postgres container must exist
  containers.podman.podman_generate_systemd:
    name: postgres_local
    dest: ~/.config/systemd/user/

- name: Postgres container must be started and enabled on systemd
  ansible.builtin.systemd:
    name: container-postgres_local
    scope: user
    daemon_reload: true
    state: started
    enabled: true


# Generate the unit files, but store them on an Ansible variable
# instead of writing them on target host
- name: Systemd unit files for postgres container must be generated
  containers.podman.podman_generate_systemd:
    name: postgres_local
  register: postgres_local_systemd_unit

# Generate the unit files with environment variables sets
- name: Systemd unit files for postgres container must be generated
  containers.podman.podman_generate_systemd:
    name: postgres_local
    env:
      POSTGRES_USER: my_app
      POSTGRES_PASSWORD: example
  register: postgres_local_systemd_unit

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

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

Ключ

Описание

podman_command

string

Копия команды podman, использованной для создания модуля(ей) systemd

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

Пример: "podman generate systemd my_webapp"

systemd_units

dictionary

Копия созданного модуля(ей) systemd .service

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

Пример: {"container-postgres_local": " #Content of the systemd .servec unit for postgres_local container", "pod-my_webapp": " #Content of the systemd .servec unit for my_webapp pod"}

Авторы

  • Sébastien Gendre (@CyberFox001)

Ссылки на коллекцию

  • Отслеживание ошибок
  • Репозиторий (исходный код)

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

Spec-Zone.ru

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