ctorgalson.oh-my-zsh
Ansibleロール Oh My ZSH
これは、Fedora、Ubuntu、またはMacOS上でOh My Zshを有効にし、設定するための基本的なAnsibleロールです。多くの他の* nixバリアントでも動作するはずです。以下のタスクを実行します:
- Zshをインストールし、最小限の設定を行います:
- Zshが存在することを確認する。
- ロールで指定されたユーザーのデフォルトシェルとして設定する。
- 指定された各ユーザーのためにOh My Zshをインストールします(デフォルトでは
~/.oh-my-zsh)。 - 各指定されたユーザーのために
.zshrcファイルを作成して、(Oh My)Zshを設定します(オプション)。 - または、個々のユーザーの
.zshrcファイルに行のブロックを追加してZshを設定します。
ロール変数
| 変数名 | デフォルト値 | 説明 |
|---|---|---|
omz_install_zsh |
false |
ロールがZshのインストールを試みるかどうかを定義します。 |
omz_user |
[] |
(Oh My)Zshをインストール/設定するユーザー。詳細は下記。 |
omz_user.name |
- |
ユーザーの名前。 |
omz_user.group |
- |
ユーザーのグループ。 |
omz_user.settings |
- |
ユーザーの.zshrcファイルに追加する変数エクスポートやエイリアスなどの設定(マルチライン文字列)。omz_zshrc_createがtrueの場合のみ使用されます。 |
omz_git_repository |
https://github.com/robbyrussell/oh-my-zsh.git |
Oh My ZshをクローンするためのGitリポジトリ。 |
omz_install_directory |
.oh-my-zsh |
Oh My Zshをクローンするディレクトリの名前。 |
omz_zshrc_create |
true |
.zshrcを作成するかどうか。trueの場合はテンプレートから作成します。 |
omz_zshrc_template |
templates/zshrc.zsh-template.j2 |
omz_zshrc_createがtrueのときにユーザーの.zshrcファイルを作成するために使用するテンプレート。 |
omz_zshrc_backup |
true |
ロールが既存の.zshrcファイルを変更する際にバックアップを作成するかどうか。 |
omz_zsh_theme |
robbyrussell |
templates/zshrc.zsh-templateを参照。 |
omz_case_sensitive |
false |
templates/zshrc.zsh-templateを参照。 |
omz_hyphen_insensitive |
false |
templates/zshrc.zsh-templateを参照。 |
omz_disable_auto_update |
false |
templates/zshrc.zsh-templateを参照。 |
omz_update_zsh_days |
13 |
templates/zshrc.zsh-templateを参照。 |
omz_disable_ls_colors |
false |
templates/zshrc.zsh-templateを参照。 |
omz_disable_auto_title |
false |
templates/zshrc.zsh-templateを参照。 |
omz_enable_correction |
false |
templates/zshrc.zsh-templateを参照。 |
omz_completion_waiting_dots |
false |
templates/zshrc.zsh-templateを参照。 |
omz_disable_untracked_files_dirty |
false |
templates/zshrc.zsh-templateを参照。 |
omz_hist_stamps |
mm/dd/yyyy |
templates/zshrc.zsh-templateを参照。 |
omz_zsh_custom |
$ZSH/custom |
templates/zshrc.zsh-templateを参照。 |
omz_plugins |
[] |
有効にするOh My Zshプラグインのリスト。 |
ロールタスクファイル
main.yml: タスクの調整
このファイルは、特定のタスクのサブセットを実行するファイルを含みます。
zsh.yml: Zshの設定
このタスクは、Zshをインストールし、ユーザーのデフォルトシェルに設定します。
使用される変数
omz_user
oh-my-zsh-install.yml: Oh My Zshのインストール
このタスクは、指定された各ユーザーのユーザーディレクトリにOh My Zshリポジトリをクローンし、そのディレクトリに適切なアクセス権を設定します。
使用される変数
omz_useromz_install_directoryomz_git_repositoryomz_install_path
oh-my-zsh-zshrc.yml: Oh My Zshの設定
このタスクは、指定されたユーザーのために、Oh My Zshのさまざまなオプションのグローバル値を含む.zshrcファイルを作成します。タスクは、既存の.zshrcファイルをバックアップするように設定できます。
このタスクは、omz_zshrc_createがtrueに設定されているときのみ実行されます。
使用される変数
omz_useromz_zshrc_templateomz_zshrc_backup
zsh-zshrc.yml: 最終的なZsh設定
このタスクは、.zshrcファイルに個々の行を追加します。これは、すでに存在する.zshrcファイルにZshの設定を追加するのに便利です。
このタスクは、omz_zshrc_createがfalseに設定されているときのみ実行されます。
使用される変数
omz_useromz_zshrc_backup
サンプルプレイブック
---
- name: プレイブック
hosts: all
become: true
vars:
omz_install_zsh: true
users:
- name: "lorem"
group: "lorem"
settings: ""
- name: "ipsum"
group: "ipsum"
settings: |
export PATH="/usr/local/sbin:$path"
alias l="ls -AF"
tasks:
- name: ansible-role-oh-my-zshを実行する。
include_role:
name: "ansible-role-oh-my-zsh"
vars:
omz_user: "{{ item }}"
# ユーザー 'lorem' のためだけに`.zshrc`を作成します; item.settingsは
# ユーザー 'ipsum' の`.zshrc`に追加されます。
omz_zshrc_create: "{{ (item.name == 'lorem') | ternary(true, false) }}"
omz_plugins:
- "autojump"
- "git"
with_items: "{{ users }}"
