community.general.dconf 模块 – 修改和读取 dconf 数据库
注意
此模块是 community.general 集合 (版本 10.1.0) 的一部分。
如果您使用的是 ansible 软件包,则可能已经安装了此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list。
要安装它,请使用: ansible-galaxy collection install community.general。您需要其他要求才能使用此模块,请参阅 要求 获取详细信息。
要在 playbook 中使用它,请指定: community.general.dconf。
概要
- 此模块允许修改和读取 - dconf数据库。该模块作为- dconf工具的包装器实现。有关更多详细信息,请参阅 dconf(1) 手册页。
- 由于 - dconf需要运行的 D-Bus 会话才能更改值,因此该模块将尝试检测现有会话并重用它,或通过- dbus-run-session运行该工具。
要求
执行此模块的主机需要以下要求。
- 可选的 - gi.repositoryPython 库(通常包含在具有- dconf的主机的操作系统中);这将在 community.general 的未来主要版本中成为非可选要求。
参数
| 参数 | 注释 | 
|---|---|
| 要修改或从中读取 dconf 数据库的 dconf 密钥。 | |
| 对键/值执行的操作。 选项 
 | |
| 为指定的 dconf 密钥设置的值。值应以 GVariant 格式指定。由于此格式的复杂性,最好查看 dconf 数据库中的现有值。 对于  尽管类型指定为“原始”,但它通常应指定为字符串。但是,特别是布尔值即使指定为布尔值而不是字符串也能正确处理(事实上,正确处理布尔值正是此参数类型为“原始”的原因)。 | 
属性
| 属性 | 支持 | 描述 | 
|---|---|---|
| 支持:完全支持 | 可以在  | |
| 支持:不支持 | 在差异模式下,将返回有关已更改内容(或可能需要在  | 
备注
注意
- 此模块依赖于 - psutilPython 库(版本 4.0.0 及更高版本)、- dconf、- dbus-send和- dbus-run-session二进制文件。根据您使用的发行版,您可能需要安装其他软件包才能使用这些软件包。
- 此模块在可用时使用 - gi.repositoryPython 库来准确比较- dconf中的值与 Ansible 代码中指定的值。- gi.repository可能会出现在大多数具有- dconf的系统上,但并非所有地方都存在。当它不存在时,将使用值之间的简单字符串比较,并且可能存在误报,也就是说,Ansible 可能会认为值正在更改而实际上没有更改。此回退将在此模块的未来版本中删除,届时该模块将停止在没有- gi.repository的主机上工作。
- 由于 D-Bus 守护程序本身的实现细节,检测现有的运行 D-Bus 会话(需要通过 - dconf更改设置)并非 100% 可靠。如果通过 Ansible 和- dbus-run-session更改选项,这可能会导致运行中的应用程序无法即时获取更改。
- 请记住,此模块围绕其进行包装的 - dconfCLI 工具使用不寻常的语法来表示值 (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
返回值
常见的返回值已在 此处 记录,以下是此模块独有的字段
| 键 | 描述 | 
|---|---|
| 与请求键关联的值 返回:成功,状态为“读取” 示例:  | 
