debconf#
Модуль ansible.builtin.debconf может работать в двух режимах:
изменять настройки DEB-пакетов с помощью утилиты debconf-set-selections;
предоставлять информацию о настройках пакета, хранящихся в БД
debconf.
Особенности работы#
Особенности использования модуля ansible.builtin.debconf:
Для работы модуля на управляемых узлах должны быть установлены пакеты
debconfиdebconf-utils.При настройке определенного пакета необходимо знать его параметры. Для получения списка параметров и их возможных значений для установленного пакета <package> выполните команду:
debconf-show <package>Некоторые дистрибутивы всегда сигнализируют об изменениях при выполнении задач, связанных с установкой паролей. Это нормальное поведение, связанное с маскированием паролей средствами
debconf-get-selections.Модуль не выполняет перенастройку уже установленных пакетов. Все что он делает – изменяет содержимое БД
debconf.Чтобы перенастроить пакет и применить сделанные изменения, требуется запуск
dpkg-reconfigure.dpkg-reconfigureвыполняет настройку пакетов в три этапа путем вызова сценариев из каталога/var/lib/dpkg/info/:<package>.prerm reconfigure <version> <package>.config reconfigure <version> <package>.postinst control <version>
Проблема заключается в том, что на втором этапе для многих пакетов сначала выполняется сброс БД
debconfпутем проверки конфигурации, хранящейся на диске. Это приводит к перезаписи настроек, сделанных модулемansible.builtin.debconf. То есть фактическиdpkg-reconfigureигнорирует изменения, внесенныеdebconf.Для обхода этой проблемы используйте особенность работы
dpkg-reconfigureсо сценарием<package>.config: если файл не существует,dpkg-reconfigureне выполняет его (отсутствие файла при этом не считается ошибкой):Переименуйте файл
<package>.configв<package>.config.ignore.Выполните команду:
dpkg-reconfigure -f noninteractive <package>
Переименуйте файл
<package>.config.ignoreобратно в<package>.config.
Параметры#
Модуль принимает следующие параметры:
- name, pkg#
Название настраиваемого пакета.
- question, selection, setting#
Настройка, принимаемая
debconf.
- unseen#
Установка флага
seenпри формировании файла преднастройки (pre-seed).Возможные значения:
false– без установки флага;true– установка флага.
Значение по умолчанию:
false.
- value, answer#
Значение, присваиваемое указанной настройке.
- vtype#
Тип применяемого значения.
Предупреждение
При использовании типа
passwordрекомендуется запускать задачи с параметромno_log=True, чтобы избежать компрометации секретов.Возможные значения:
boolean;error;multiselect;note;password;seen;select;string;text;title.
Атрибуты#
Атрибуты определяют функции Ansible, которые может использовать модуль.
Атрибут |
Описание |
|---|---|
|
Модуль работает в режиме проверки ( |
|
Модуль поддерживает режим сравнения ( |
|
Модуль поддерживает только дистрибутивы Linux на базе Debian. |
Примеры#
Для изучения возможностей модуля ознакомьтесь с приведенными ниже примерами.
Установка локали по умолчанию#
Следующий пример описывает изменение настроек пакета locales, хранящихся в БД debconf:
---
- name: Set default locale to ru_RU.UTF-8
ansible.builtin.debconf:
name: locales
question: locales/default_environment_locale
value: ru_RU.UTF-8
vtype: select
Получение действующих настроек пакета#
Следующий пример описывает получение действующих настроек пакета:
---
tasks:
- name: Get package settings and current values
ansible.builtin.debconf:
name: exim4-config
register: exim4_settings
- name: Show package settings
ansible.builtin.debug:
var: exim4_settings