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 | Добавить системный блок после ( Эта опция может быть указана более одного раза. Определяемые пользователем зависимости будут добавлены в сгенерированный файл unit Но любые существующие параметры, такие как необходимые или определенные по умолчанию (например, Только с Podman 4.0.0 и выше |
container_prefix string | Установить префикс имени системного блока для контейнеров. Если не установлено, использовать значение по умолчанию, определенное podman, Дополнительную информацию см. на странице руководства podman-generate-systemd(1). |
dest path | Место назначения сгенерированного файла(ов) системного блока. Использовать Использовать |
env dictionary | Установить переменные среды для файлов системного блока. Ключи - это имена переменных среды, а значения - значения переменных среды. Только с Podman 4.3.0 и выше |
executable string |
По умолчанию: |
force boolean | Заменить файл(ы) системного блока, даже если он уже существует. Это работает с опцией dest. Варианты:
|
name string / required | Имя пода или контейнера для экспорта |
new boolean | Генерировать файлы unit, которые создают контейнеры и поды, а не только запускают их. Дополнительную информацию см. на странице руководства podman-generate-systemd(1). Варианты:
|
no_header boolean | Не генерировать заголовок, включая метаданные, такие как версия Podman и метка времени. Варианты:
|
pod_prefix string | Установить префикс имени системного блока для подов. Если не установлено, использовать значение по умолчанию, определенное podman, Дополнительную информацию см. на странице руководства podman-generate-systemd(1). |
requires list / elements=string | Установить опцию requires (Requires=) системного блока. Аналогично wants, но объявляет более сильную зависимость требований. Только с Podman 4.0.0 и выше |
restart_policy string | Политика перезапуска службы Варианты:
|
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. Варианты:
|
wants list / elements=string | Добавить опцию wants ( Эта опция может быть указана более одного раза. Эта опция не влияет на порядок запуска или остановки служб. Определяемые пользователем зависимости будут добавлены в сгенерированный файл unit Но любые существующие параметры, такие как необходимые или определенные по умолчанию (например, Только с 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, используемой для генерации системного модуля(ей) Возвращается: всегда Пример: |
systemd_units словарь | Копия сгенерированного(ых) системного модуля(ей) .service Возвращается: всегда Пример: |
Ссылки на сборку
© 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