Spec-Zone.ru › Ansible

containers.podman.podman_generate_systemd модуль – Генерация системного файла unit systemd из поддода или контейнера

Примечание

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

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

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

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

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

Обзор

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

Требования

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

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

Параметры

Параметр

Комментарии

after

list / elements=string

Добавить системный блок после (After=) опции, которая упорядочивает зависимости между списком зависимостей и этой службой.

Эта опция может быть указана более одного раза.

Определяемые пользователем зависимости будут добавлены в сгенерированный файл unit

Но любые существующие параметры, такие как необходимые или определенные по умолчанию (например, online.target), не будут удалены или переопределены.

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

container_prefix

string

Установить префикс имени системного блока для контейнеров.

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

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

dest

path

Место назначения сгенерированного файла(ов) системного блока.

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

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

env

dictionary

Установить переменные среды для файлов системного блока.

Ключи - это имена переменных среды, а значения - значения переменных среды.

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

executable

string

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

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

force

boolean

Заменить файл(ы) системного блока, даже если он уже существует.

Это работает с опцией dest.

Варианты:

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

name

string / required

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

new

boolean

Генерировать файлы unit, которые создают контейнеры и поды, а не только запускают их.

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

Варианты:

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

no_header

boolean

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

Варианты:

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

pod_prefix

string

Установить префикс имени системного блока для подов.

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

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

requires

list / elements=string

Установить опцию requires (Requires=) системного блока.

Аналогично 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

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

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

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

start_timeout

integer

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

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

stop_timeout

integer

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

use_names

boolean

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

Варианты:

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

wants

list / elements=string

Добавить опцию wants (Wants=) системного блока, от которой эта служба (слабо) зависит.

Эта опция может быть указана более одного раза.

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

Определяемые пользователем зависимости будут добавлены в сгенерированный файл unit

Но любые существующие параметры, такие как необходимые или определенные по умолчанию (например, online.target), не будут удалены или переопределены.

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

Примечания

Примечание

  • Если вы укажете под, будут сгенерированы системные модули для него и всех его контейнеров.
  • Создайте все ваши под, контейнеры и их зависимости перед генерацией системных файлов.
  • Если контейнер или под уже запущены перед выполнением systemctl daemon-reload, системаd не увидит контейнер или под как запущенные.
  • Остановите свой контейнер или под перед выполнением 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

строка

Копия команды podman, используемой для генерации системного модуля(ей)

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

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

systemd_units

словарь

Копия сгенерированного(ых) системного модуля(ей) .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–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/containers/podman/podman_generate_systemd_module.html

Spec-Zone.ru

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