ctorgalson.oh-my-zsh
Ansible 角色 Oh My ZSH
这是一个基本的 Ansible 角色,用于在 Fedora、Ubuntu 或 MacOS 上启用和配置 Oh My Zsh。它也应该可以在许多其他 *nix 变体上工作。它执行以下任务:
- 安装并最小配置 Zsh:
- 确保它存在,
- 将其设为指定用户的默认 shell。
- 为每个指定用户安装 Oh My Zsh(默认在
~/.oh-my-zsh中)。 - 配置(Oh My)Zsh,选择性地为每个指定用户创建
.zshrc文件。 - 可选择通过向各个用户的
.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,将从模板创建 .zshrc。 |
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 并将其设置为用户的默认 shell。
使用的变量
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 配置
此任务为用户创建一个 .zshrc 文件,包含基于 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: Playbook
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 }}"
