Модуль community.general.dconf — изменение и чтение базы данных dconf
Примечание
Этот модуль входит в коллекцию community.general (версия 12.6.1).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.general. Для использования этого модуля требуются дополнительные компоненты; подробности см. в разделе Требования.
Чтобы использовать модуль в плейбуке, укажите: community.general.dconf.
Краткое описание
- Этот модуль позволяет изменять и читать базу данных
dconf. Модуль реализован как оболочка для инструментаdconf. Дополнительные сведения см. на странице руководства dconf(1). - Поскольку для изменения значений
dconfтребуется активный сеанс D-Bus, модуль пытается обнаружить существующий сеанс и использовать его повторно либо запустить инструмент с помощьюdbus-run-session. Поддерживаются какdbus-daemon, так иdbus-broker.
Требования
На хосте, выполняющем этот модуль, должны быть установлены следующие компоненты.
- Необязательно: библиотека Python
gi.repository(обычно включена в ОС на хостах, где естьdconf); в следующем крупном выпуске community.general она станет обязательным требованием.
Параметры
Параметр | Комментарии |
|---|---|
key string / обязательный | Ключ dconf для изменения или чтения из базы данных dconf. |
state string | Действие, выполняемое над ключом/значением. Варианты:
|
value any | Значение, которое нужно задать для указанного ключа dconf. Значение следует указывать в формате GVariant. Из-за сложности этого формата лучше посмотреть существующие значения в базе данных dconf. Обязательно для Хотя тип указан как «raw», обычно значение следует задавать в виде строки. Однако, в частности, логические значения обрабатываются корректно, даже если заданы как логические, а не как строки (на самом деле именно необходимость корректно обрабатывать логические значения объясняет, почему тип этого параметра — «raw»). |
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
check_mode | Поддержка: полная | Может работать в режиме |
diff_mode | Поддержка: нет | В режиме diff возвращает сведения об изменениях (или возможных изменениях в |
Примечания
Примечание
- Для работы модуля необходимы библиотека Python
psutil(версии 4.0.0 или выше),dconf, а также либоdbus-send, либоbusctlдля проверки сеанса D-Bus иdbus-run-sessionв качестве резервного варианта, если существующий сеанс не найден. В зависимости от используемого дистрибутива может потребоваться установить дополнительные пакеты. Поддерживаются как эталонная реализацияdbus-daemon, так иdbus-broker. - Если доступна библиотека Python
gi.repository, модуль использует её для точного сравнения значений вdconfсо значениями, указанными в коде Ansible.gi.repository, скорее всего, присутствует в большинстве систем сdconf, но может быть доступна не везде. Если библиотека отсутствует, для сравнения значений используется простое сравнение строк, что может давать ложные срабатывания: Ansible может считать, что значение изменяется, хотя это не так. Этот резервный механизм будет удалён в версии 15.0.0 коллекции; после этого библиотекаgi.repositoryстанет обязательной. - Библиотека
gi.repositoryобычно входит в пакеты операционной системы (например,python3-giдля Ubuntu/Debian,python3-gobjectдля Red Hat/Fedora,python-gobjectдля Arch Linux). Она также доступна в PyPI какPyGObject, но предоставляет только привязки к системным библиотекам, поэтому настоятельно рекомендуется использовать системные пакеты, а не устанавливать её с помощьюpip. - Обнаружение активного сеанса D-Bus, необходимого для изменения настроек с помощью
dconf, не всегда надёжно из-за особенностей реализации самой службы D-Bus. Если параметры изменяются с помощью Ansible иdbus-run-session, запущенные приложения могут не сразу применять изменения. - Помните, что инструмент командной строки
dconf, обёрткой для которого является этот модуль, использует необычный синтаксис значений (GVariant). Например, чтобы задать строковое значение, следует использовать синтаксисvalue="'myvalue'"— одинарные кавычки должны входить в значение параметра Ansible. - При использовании циклов с таким значением, как
"[('xkb', 'us'), ('xkb', 'se')]", учитывайте возможное преобразование типов. Применение фильтра{{ item.value | string }}к переменной параметра поможет избежать потенциальных проблем с преобразованием. - Проще всего выяснить точный синтаксис и значение для ключа — изменить параметр в приложении, на которое влияет этот ключ, а затем посмотреть заданное значение с помощью команд
dconf dump /path/to/dir/илиdconf read /path/to/key.
Примеры
- name: Configure available keyboard layouts in Gnome
community.general.dconf:
key: "/org/gnome/desktop/input-sources/sources"
value: "[('xkb', 'us'), ('xkb', 'se')]"
state: present
- name: Read currently available keyboard layouts in Gnome
community.general.dconf:
key: "/org/gnome/desktop/input-sources/sources"
state: read
register: keyboard_layouts
- name: Reset the available keyboard layouts in Gnome
community.general.dconf:
key: "/org/gnome/desktop/input-sources/sources"
state: absent
- name: Configure available keyboard layouts in Cinnamon
community.general.dconf:
key: "/org/gnome/libgnomekbd/keyboard/layouts"
value: "['us', 'se']"
state: present
- name: Read currently available keyboard layouts in Cinnamon
community.general.dconf:
key: "/org/gnome/libgnomekbd/keyboard/layouts"
state: read
register: keyboard_layouts
- name: Reset the available keyboard layouts in Cinnamon
community.general.dconf:
key: "/org/gnome/libgnomekbd/keyboard/layouts"
state: absent
- name: Disable desktop effects in Cinnamon
community.general.dconf:
key: "/org/cinnamon/desktop-effects"
value: "false"
state: present
Возвращаемые значения
Общие возвращаемые значения описаны здесь; ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
value string | Значение, связанное с запрошенным ключом. Возвращается: при успешном выполнении, если состояние — «read» Пример: |
Ссылки на коллекцию
© 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/community/general/dconf_module.html