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 설치됨)를 사용하여 변수 변경 사항을 보거나 GUI 인터페이스인 gsettings 없이 수동으로 변경할 수 있습니다.

- 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'"

관련 정보