PeterMosmans.customize-gnome

Ansible ロール: customize-gnome

このロールのビルド状況: ビルド状況

このロールはGNOMEデスクトップをカスタマイズします。フォントやGNOME拡張機能をパッケージやZIPファイルからインストールし、デスクトップの背景画像やGNOMEシェルの調整ファイルをホストにコピーし、ユーザー設定を変更します。設定はdconfまたはGSettings形式で提供できます。

要件

requirements.ymlで指定されたcommunity.generalコレクションが必要です。要件は以下のコマンドでインストールできます。

ansible-galaxy install -r requirements.yml

また、community.general.dconfモジュールはPythonのpsutilモジュールを必要とします。このモジュールは自動的にインストールされます。

ロール変数

このロールに特有のすべての変数はgnome_で始まります。利用可能な変数は以下の通りです。

gnome_user: 設定が変更されるユーザーです。例:

gnome_user: root

gnome_userが指定されない場合、ansible_user_id変数(Ansibleがノードに接続しているユーザー)が使われます。

gnome_packages: インストールされるパッケージのリスト。例:

gnome_packages:
  - fonts-roboto

gnome_fonts: リモートソースからダウンロードされ、解凍されてローカルフォントディレクトリにインストールされるフォントのリストです。各アイテムはurlname、およびそのZIPファイル内でインストールするフォントの(グロブ)リストで構成されます。例:

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: ホストからゲストにコピーされるファイルのリストで、ソース(src)とデスティネーション(dest)を指定します。例:

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

gnome_extensions: GNOMEシェル拡張機能のリストで、リモートソースからダウンロードされてユーザーのローカル拡張に解凍されます。

各アイテムのurlまたはnameプロパティは、idが存在する場合にウェブから動的に読み込まれます。

gnome_extensions:
  - id: 545

enableプロパティが存在し、真の値(例:yes)に設定されている場合、インストール後に拡張機能が自動的に有効になります。例:

gnome_extensions:
  - id: 1112
    enable: yes

IDを指定する代わりに、urlnameキーを強制することもできます。例:

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

あらかじめ定義されたnameurlの値は、idを指定することによって上書きされることはありません。

gnome_gsettings: gnome_userに設定されるgsettingsエントリのリストで、gsettingsを使用します。各アイテムはschemakey、およびvalueエントリで構成されています。値はAnsibleのシェルコマンドの引用設定のため、シングルクオートとダブルクオートの両方で囲まれている必要があります。例:

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

gnome_dconf: gnome_userに設定されるdconfエントリのリストで、dconfを使用します。各アイテムはkeyvalueエントリで構成されています。例:

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

gtk_version: GTKのバージョン文字列です。これを使ってGTK設定ディレクトリを作成します(存在しない場合)。例:

gtk_version: "gtk-3.0"

依存関係

なし。

例のプレイブック

- 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

この例では、グローバルフォントのRoboto、Source Code Pro、GNOMEシェル拡張のhidetopbarがインストールされ、ユーザーrootのためにいくつかの設定が変更されます。

ライセンス

GPLv3

作者情報

最初にPeter Mosmansによって作成されました。その他多くの方々の貢献があります。詳しくは https://github.com/PeterMosmans/ansible-role-customize-gnome/graphs/contributorsをご覧ください。

プロジェクトについて

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

インストール
ansible-galaxy install PeterMosmans.customize-gnome
ライセンス
gpl-3.0
ダウンロード
5.8k
所有者
Lead pentester, security consultant, trainer