Linux

如何使用 ansible 更改主機 gsettings 數組?

  • November 21, 2021

我想在 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

嘗試和測試,但它正在使用 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

現在(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']"

引用自:https://unix.stackexchange.com/questions/557516