如何使用 ansible 更改一组主机 gsettings?

如何使用 ansible 更改一组主机 gsettings?

我想在 gsettings 上禁用 gnome 上的最大化功能。我使用过这个命令外壳:

gsettings set org.gnome.shell.extensions.classic-overrides edge-tiling false 

但这是针对每个用户的设置。

我已经尝试过这个剧本,但这只影响我的用户设置。我如何更改所有用户的 gsettings 以禁用最大化。

我可能以错误的方式处理它,而不是尝试编辑用户 gsettings,有没有办法编辑包含所有用户设置的文件?

- hosts: all
  become: true
  tasks:
    - name: disable auto maximize
      become_user: 'joe'
      shell: gsettings set org.gnome.shell.extensions.classic-overrides edge-tiling false

答案1

现在有(ansible >= 2.4)本机 dconf 模块允许修改 dconf 设置。

- hosts: all
  become: true
  tasks:
    - name: disable auto maximize
      dconf:
        key: "org.gnome.shell.extensions.classic-overrides"
        value: "['edge-tiling', 'false']"

答案2

经过尝试和测试,但它使用的是 dconf。就我而言,创建了一个源模板,然后写入 /etc/dconf 文件夹。您必须随后(或任务运行后)更新 dconf。您可以使用 dconf-editor(已安装 yum)查看变量更改或手动更改它,而无需 gsettings、GUI 界面。

- hosts: all
  become: true
  tasks:
    - name: disable auto maximize
      template: 
        src: edit-dconf-settings
        path: /etc/dconf
    - name: update dconf
      shell: dconf update

模板:edit-dconf-settings

[org/gnome/shell/extensions/classic-overrides]
edge-tiling=false

答案3

有一个社区模块,类似于gconf(已弃用)。

来自项目的自述文件:

- name: do not remember mount password
  gsetting:
    user: jistr
    settings:
      org.gnome.shell.remember-mount-password: false
      org.gnome.desktop.wm.keybindings.panel-main-menu: "@as []"
      org.gnome.nautilus.preferences.default-folder-viewer: "'list-view'"

相关内容