patbec.zsh
Ansibleロール: ZSH
廃止予定: このロールはコレクションに移行されました。 こちらで新しいバージョンをご覧いただけます。
これは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"
例
このロールのいくつかの使用例を示します。
- 基本
zshをインストールし、ansibleユーザーのデフォルトシェルとして設定します。 - 複数のユーザー
zshをインストールし、指定されたユーザーのリストのデフォルトシェルとして設定します。 - ユーザー定義の設定ファイル
ユーザーのリストにカスタム.zshrc
ファイルを配布します。 - カスタム依存関係
依存関係と共にカスタム.zshrc
ファイルを配布します。 - 追加機能
autosuggestions
とsyntax-highlighting
の機能を持つカスタム.zshrc
ファイルを配布します。 - 完全
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は、機能が強化されたファイルリストです。色を使ってファイルの種類やメタデータを区別します。
追加機能
autosuggestionsとsyntax-highlighting機能を持つカスタム.zshrc
ファイルを配布します。
- zshパッケージをインストールします。
- 指定されたユーザーのデフォルトシェルとしてzshを設定します。
- 各ユーザーにカスタム
.zshrc
を配布します。 - autosuggestionsとsyntax-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
を配布します。 - autosuggestions、syntax-highlighting、およびexaをインストールします。
history
、color
、cd
設定を行います。
- 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 %}
プレビュー
この設定のプレビュー:
使用されたANSIコンソールの色はここで見つけられます。
ライセンス
このプロジェクトはMITライセンスの下でライセンスされています - 詳細についてはLICENSEファイルをご覧ください。
↑ トップに戻る