Перейти к содержимому

core.pkg

← Каталог модулей

soul-sidesoulstack.systemsystemroot требуется

Управление пакетами OS через штатный пакетный менеджер.

core.pkg приводит OS-пакеты к нужному состоянию через native package manager хоста. Backend выбирается автоматически по фактам хоста, состояния идемпотентны: если пакет уже в нужной версии, шаг ничего не делает и сообщает changed=false. Установка и удаление идут правами процесса soul-агента и требуют root.

Требования

  • Rootтребуется
  • Сторонаsoul-side
  • Коллекцияsoulstack.system
  • Категорияsystem
Capabilitiesrun_as_rootexec_subprocess
Детект backend

Авто из фактов хоста (os.pkg_mgr); при отсутствии — рантайм-детект: apt (Debian/Ubuntu), dnf (RHEL ≥ 8), yum (RHEL ≤ 7), apk (Alpine). Не определён — шаг падает.

Состояния

core.pkg.installed — Пакет установлен (опционально точная версия).

Меняется, когда

Пакета не было или установленная версия ≠ запрошенной.

Не меняется, когда

Нужная версия уже стоит.

Параметры

ПараметрТипОбяз. / дефолтОписание
namestringrequiredИмя пакета.
versionstringoptionalТочная версия пакета (если опущено — любая).

Пример — Установка redis-server с фиксированной версией и retry

- name: Install redis-server
module: core.pkg.installed
retry: { count: 3, delay: 10s }
params:
name: redis-server
version: "7.0.15"

Output

ПолеТипОписание
namestring
installedtrue
versionstring

Справочник

Поддерживаемые backend'ы

МенеджерДистрибутивыКак выбирается
aptDebian, Ubuntuиз факта os.pkg_mgr, иначе рантайм-детект
dnfRHEL ≥ 8, Fedoraто же
yumRHEL ≤ 7то же
apkAlpineто же

Заметки

  • На apt/apk перед installed/latest один раз за жизнь процесса обновляется индекс репозиториев — важно для свежих VM и контейнеров. dnf/yum подтягивают metadata сами.
  • Требует root: install и remove идут через пакетный менеджер.

Безопасность и умолчания

  • Подпись пакетов проверяет пакетный менеджер, а не модуль: источник доверия — репозиторные ключи apt/dnf/yum/apk на хосте.
  • Модуль не добавляет ключи репозиториев и не выставляет --allow-unauthenticated / --nogpgcheck.
  • name и version должны приходить от автора Destiny, а не из недоверенного ввода: установка исполняет maintainer-скрипты пакета (postinst и т.п.) правами soul-агента.

См. также