patbec.zsh

zsh console icon

Ansibleロール: ZSH

Ansibleロール Ansible品質スコア GitHub

廃止予定: このロールはコレクションに移行されました。 こちらで新しいバージョンをご覧いただけます。

これはLinuxにzshシェルをインストールして設定するためのシンプルなロールです。

以下のステップがサポートされています:

  • カスタムパッケージでzshをインストール
  • 指定されたユーザーのデフォルトシェルとしてzshを設定
  • オプションで設定ファイルの配布

このロールはシンプルに保たれ、標準のパッケージマネージャーを使用し、最小限のオーバーヘッドを含みます。問題がある場合は、自由にイシューを作成してください。

準備

Ansible Galaxyを使ってこのロールをインストールします。

ansible-galaxy install patbec.zsh

変数

このプレイブックのデフォルト変数です。

名前 説明 デフォルト値
zsh_config_mode 配布されるファイルのデフォルトパーミッション。 0644
zsh_config_backup 上書きする前にバックアップを作成します。 true
zsh_config_overwrite 差異がある場合、既存のファイルを上書きします。 false
zsh_users_config ユーザーに配布するzshファイルのリスト。 []
zsh_system_config グローバルに配布するzshファイルのリスト。 []
zsh_users zshをデフォルトシェルとして設定するユーザーのリスト。 {{ ansible_user }}
zsh_dependencies インストールする追加パッケージのリスト。 []
zsh_executable 実行可能ファイルへのパス。 /usr/bin/zsh

Molecule: zsh_executableにシンボリックリンクが指定されると、ユニットテストが失敗します。

zsh_users_configプロパティは辞書です:

zsh_users_config:
  - template: "zshrc.j2"
    filepath: "$HOME/.zshrc"

この基本的な例はユーザーのために.zshrcを配布します。Ansibleはtemplateフォルダ内のzshrc.j2ファイルを探します。

パス

以下はzshのドキュメント (5.2 Files)からの可能なパスのリストです。

ユーザー

zsh_users_config:
  - template: "zshrc.j2"
    filepath: "$HOME/.zshrc"
  - template: "zshenv.j2"
    filepath: "$HOME/.zshenv"
  - template: "zprofile.j2"
    filepath: "$HOME/.zprofile"
  - template: "zlogin.j2"
    filepath: "$HOME/.zlogin"
  - template: "zlogout.j2"
    filepath: "$HOME/.zlogout"

コピー操作は各ユーザーのコンテキストで行われます。

システム

zsh_system_config:
  - template: "zshrc.j2"
    filepath: "/etc/zshrc"
  - template: "zshenv.j2"
    filepath: "/etc/zshenv"
  - template: "zprofile.j2"
    filepath: "/etc/zprofile"
  - template: "zlogin.j2"
    filepath: "/etc/zlogin"
  - template: "zlogout.j2"
    filepath: "/etc/zlogout"

このロールのいくつかの使用例を示します。

  1. 基本
    zshをインストールし、ansibleユーザーのデフォルトシェルとして設定します。
  2. 複数のユーザー
    zshをインストールし、指定されたユーザーのリストのデフォルトシェルとして設定します。
  3. ユーザー定義の設定ファイル
    ユーザーのリストにカスタム.zshrcファイルを配布します。
  4. カスタム依存関係
    依存関係と共にカスタム.zshrcファイルを配布します。
  5. 追加機能
    autosuggestionssyntax-highlightingの機能を持つカスタム.zshrcファイルを配布します。
  6. 完全
    zshシェルの完全な例です。サンプルプレビュー

基本

zshをインストールし、ansible_userのデフォルトシェルとして設定します。

  • zshパッケージをインストールします。
  • ansible_userのデフォルトシェルとしてzshを設定します。
- name: zsh
  hosts: all
  roles:
    - patbec.zsh
  tasks:
    ansible.builtin.debug:
        msg: "ZSHがインストールされ、ユーザー{{ ansible_user }}のデフォルトとして設定されました。"

複数のユーザー

zshをインストールし、指定されたユーザーのリストのデフォルトシェルとして設定します。

  • zshパッケージをインストールします。
  • 指定されたユーザーのデフォルトシェルとしてzshを設定します。
- name: zsh
  hosts: all
  vars:
    zsh_users:
      - lorem
      - ipsum
  roles:
    - patbec.zsh
  tasks:
    ansible.builtin.debug:
        msg: "ZSHがインストールされ、2人のユーザーのデフォルトとして設定されました。"

ユーザー定義の設定ファイル

ユーザーのリストにカスタム.zshrcファイルを配布します。

  • zshパッケージをインストールします。
  • 指定されたユーザーのデフォルトシェルとしてzshを設定します。
  • 各ユーザーにカスタム.zshrcを配布します。
- name: zsh
  hosts: all
  vars:
    zsh_config_backup: false
    zsh_config_overwrite: true

    zsh_users:
      - lorem
      - ipsum

    zsh_users_config:
      - template: "zshrc.j2"
        filepath: "$HOME/.zshrc"

  roles:
    - patbec.zsh
  tasks:
    ansible.builtin.debug:
        msg: "ZSHがインストールされ、カスタムファイルが配布されました。"

templatesフォルダ内のzshrc.j2ファイル:

{% if zsh_config_overwrite is true %}
#
# {{ ansible_managed }}
#
{% endif %}

# ここに内容を追加してください。

カスタム依存関係

依存関係と共にカスタム.zshrcファイルを配布します。

  • zshパッケージをインストールします。
  • 指定されたユーザーのデフォルトシェルとしてzshを設定します。
  • 各ユーザーにカスタム.zshrcを配布します。
  • 依存関係をインストールします。
- name: zsh
  hosts: all
  vars:
    zsh_config_backup: false
    zsh_config_overwrite: true

    zsh_users:
      - lorem
      - ipsum

    zsh_users_config:
      - template: "zshrc.j2"
        filepath: "$HOME/.zshrc"

    zsh_dependencies:
      - exa
  roles:
    - patbec.zsh
  tasks:
    ansible.builtin.debug:
        msg: "ZSHがインストールされ、exaがファイルをリストするために使用されます。"

templatesフォルダ内のzshrc.j2ファイル:

{% if zsh_config_overwrite is true %}
#
# {{ ansible_managed }}
#
{% endif %}

alias ls='exa --group-directories-first'
alias ll='exa --group-directories-first --all --long --binary --group --classify --grid'
alias la='exa --group-directories-first --all --long --binary --group --header --links --inode --modified --blocks --time-style=long-iso --color-scale'
alias lx='exa --group-directories-first --all --long --binary --group --header --links --inode --modified --blocks --time-style=long-iso --color-scale --extended'

exaは、機能が強化されたファイルリストです。色を使ってファイルの種類やメタデータを区別します。

追加機能

autosuggestionssyntax-highlighting機能を持つカスタム.zshrcファイルを配布します。

  • zshパッケージをインストールします。
  • 指定されたユーザーのデフォルトシェルとしてzshを設定します。
  • 各ユーザーにカスタム.zshrcを配布します。
  • autosuggestionssyntax-highlightingをインストールします。
- name: zsh
  hosts: all
  vars:
    zsh_config_backup: false
    zsh_config_overwrite: true

    zsh_users:
      - lorem
      - ipsum

    zsh_users_config:
      - template: "zshrc.j2"
        filepath: "$HOME/.zshrc"

    zsh_dependencies:
      - zsh-autosuggestions
      - zsh-syntax-highlighting
  roles:
    - patbec.zsh
  tasks:
    ansible.builtin.debug:
        msg: "ZSHがインストールされ、追加機能が有効になりました。"

templatesフォルダ内のzshrc.j2ファイル:

{% if zsh_config_overwrite is true %}
#
# {{ ansible_managed }}
#
{% endif %}

autoload colors && colors

source  /usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh
source  /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

完全

zshシェルの完全な例です。

  • zshパッケージをインストールします。
  • 指定されたユーザーのデフォルトシェルとしてzshを設定します。
  • 各ユーザーにカスタム.zshrcを配布します。
  • autosuggestionssyntax-highlighting、およびexaをインストールします。
  • historycolorcd設定を行います。
- name: zsh
  hosts: all
  vars:
    zsh_config_backup: false
    zsh_config_overwrite: true

    zsh_users:
      - lorem
      - ipsum

    zsh_users_config:
      - template: "zshrc.j2"
        filepath: "$HOME/.zshrc"

    zsh_dependencies:
      - exa
      - zsh-autosuggestions
      - zsh-syntax-highlighting

    zsh_additional_lines: ""
  roles:
    - patbec.zsh
  tasks:
    ansible.builtin.debug:
        msg: "ZSHがインストールされました。"

templatesフォルダ内のzshrc.j2ファイル:

ここをクリックして内容を表示
{% if zsh_config_overwrite is true %}
#
# {{ ansible_managed }}
#
{% endif %}

autoload colors && colors

PROMPT="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ )"
PROMPT+=" %{$fg[cyan]%}%c%{$reset_color%} "

source  /usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh
source  /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

alias ls='exa --group-directories-first'
alias ll='exa --group-directories-first --all --long --binary --group --classify --grid'
alias la='exa --group-directories-first --all --long --binary --group --header --links --inode --modified --blocks --time-style=long-iso --color-scale'
alias lx='exa --group-directories-first --all --long --binary --group --header --links --inode --modified --blocks --time-style=long-iso --color-scale --extended'

HISTFILE="$HOME/.zsh_history"
HISTSIZE=50000
SAVEHIST=50000

setopt INC_APPEND_HISTORY
setopt AUTOCD

{% if zsh_additional_lines is defined %}
#
# 特定ホストの追加
#
{{ zsh_additional_lines }}
{% endif %}

プレビュー

この設定のプレビュー: zshコンソール 使用されたANSIコンソールの色はここで見つけられます。

ライセンス

このプロジェクトはMITライセンスの下でライセンスされています - 詳細についてはLICENSEファイルをご覧ください。


トップに戻る

プロジェクトについて

Installs and configures zsh for one or more users on Linux.

インストール
ansible-galaxy install patbec.zsh
ライセンス
mit
ダウンロード
116
所有者