PeterMosmans.customize-gnome

Rôle Ansible : personnaliser-gnome

Statut de construction pour ce rôle :
Statut de construction

Ce rôle personnalise le bureau GNOME. Il installe des polices et des extensions GNOME à partir de packages ou de fichiers zip, copie des fichiers comme des fonds d'écran et des ajustements de l'interface GNOME sur un hôte, et modifie les paramètres de l'utilisateur. Les paramètres peuvent être fournis au format dconf ou GSettings.

Exigences

La collection community.general, comme spécifié dans requirements.yml. Installez les exigences en utilisant

ansible-galaxy install -r requirements.yml

De plus, le module community.general.dconf nécessite le module Python psutil. Ce module sera installé automatiquement.

Variables du Rôle

Toutes les variables spécifiques à ce rôle commencent par gnome_. Les variables disponibles sont listées ci-dessous :

gnome_user : L'utilisateur dont les paramètres seront modifiés. Exemple :

gnome_user: root

Si aucun gnome_user n'est spécifié, il utilisera la variable ansible_user_id (l'utilisateur sous lequel Ansible se connecte au nœud).

gnome_packages : Une liste de packages à installer. Exemple :

gnome_packages:
  - fonts-roboto

gnome_fonts : Une liste de polices qui seront téléchargées à partir d'une source distante, extraites et installées dans le répertoire local des polices. Chaque élément de la liste se compose d'un url, d'un name, et d'une liste (glob) de polices dans ce fichier zip à installer (fonts). Exemple :

gnome_fonts:
  - url: https://github.com/adobe-fonts/source-code-pro/archive/2.030R-ro/1.050R-it.zip
    name: SourceCodePro
    fonts: "source-code-pro-2.030R-ro-1.050R-it/OTF/*.otf"

gnome_files : Une liste de fichiers, spécifiant la source (src) et la destination (dest) qui seront copiés de l'hôte au client. Exemple :

gnome_files:
  - src: gtk.css
    dest: /home/{{ gnome_user }}/.config/gtk-3.0/gtk.css

gnome_extensions : Une liste d'extensions de shell GNOME qui seront installées (téléchargées à partir d'une source distante et extraites dans les extensions locales des utilisateurs). Les propriétés url et/ou name de chaque élément sont chargées dynamiquement depuis le web lorsque id est présent.

gnome_extensions:
  - id: 545

Si la propriété enable est présente et définie sur une valeur vraie (par exemple, yes), l'extension sera activée automatiquement après l'installation. Exemple :

gnome_extensions:
  - id: 1112
    enable: yes

Au lieu de spécifier l'ID, vous pouvez également imposer les clés url et name. Exemple :

gnome_extensions:
  - url:
    "https://extensions.gnome.org/download-extension/[email protected]?version_tag=6450"
    name: "[email protected]"

Notez qu'une valeur name et/ou url prédéfinie ne sera pas remplacée en spécifiant l'id.

gnome_gsettings : Une liste d'entrées gsettings qui seront définies pour le gnome_user, en utilisant gsettings. Chaque élément de la liste se compose d'un schema, d'une key et d'une value. Notez que les valeurs doivent être contenues dans des quotes simples ET doubles, en raison des paramètres de citation d'Ansible pour les commandes shell. Exemple :

gnome_gsettings:
  - schema: org.gnome.desktop.interface
    key: monospace-font-name
    value: '"Source Code Pro Medium 16"'

gnome_dconf : Une liste d'entrées dconf qui seront définies pour le gnome_user, en utilisant dconf. Chaque élément de la liste se compose d'une key et d'une value. Exemple :

gnome_dconf:
  - key: /org/gnome/desktop/background/show-desktop-icons
    value: "false"

gtk_version : La chaîne de version de GTK. Cela est utilisé pour créer un répertoire de configuration GTK, s'il n'existe pas déjà. Exemple :

gtk_version: "gtk-3.0"

Dépendances

Aucune.

Exemple de Playbook

- hosts: all
  become: yes
  become_method: sudo
  roles:
    - role: petermosmans.customize-gnome
  vars:
    gnome_dconf:
      - key: /org/gnome/desktop/background/show-desktop-icons
        value: "false"
    gnome_extensions:
      - url: https://extensions.gnome.org/download-extension/[email protected]?version_tag=6450
        name: [email protected]
      - id: 15
      - id: 1160
        url: https://example.com/gnome-extension/1160.zip
      - id: 1236
        name: CustomNamedExtension
      - id: 1267
        name: CustomNamedExtension2
        url: https://example.com/gnome-extension/1267.zip
      - id: 1112
        enable: yes
    gnome_files:
      - src: gtk.css
        dest: "/home/{{ gnome_user }}/.config/{{ gtk_version }}/gtk.css"
    gnome_fonts:
      - url: https://github.com/adobe-fonts/source-code-pro/archive/2.030R-ro/1.050R-it.zip
        name: SourceCodePro
        fonts: "source-code-pro-2.030R-ro-1.050R-it/OTF/*.otf"
    gnome_gsettings:
      - schema: org.gnome.desktop.interface
        key: monospace-font-name
        value: '"Source Code Pro Medium 16"'
      - schema: org.gnome.shell.extensions.dash-to-panel
        schemadir: ~/.local/share/gnome-shell/extensions/[email protected]/schemas
        key: panel-position
        value: TOP
    gnome_packages:
      - fonts-roboto
    gnome_user: peter
    gtk_version: 3.0

Cet exemple installera les polices globales Roboto, Source Code Pro, l'extension de shell GNOME hidetopbar et modifiera plusieurs paramètres pour l'utilisateur root.

Licence

GPLv3

Informations sur l'Auteur

Initialement créé par Peter Mosmans. Contributions de nombreuses autres personnes : voir
https://github.com/PeterMosmans/ansible-role-customize-gnome/graphs/contributors

À propos du projet

Customizes settings for a GNOME desktop, including shell extensions and fonts.

Installer
ansible-galaxy install PeterMosmans.customize-gnome
Licence
gpl-3.0
Téléchargements
5.8k
Propriétaire
Lead pentester, security consultant, trainer