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