ctorgalson.oh-my-zsh
Ansible Rolle Oh My ZSH
Dies ist eine grundlegende Ansible-Rolle, um Oh My Zsh auf Fedora, Ubuntu oder MacOS zu aktivieren und zu konfigurieren. Sie sollte auch auf vielen anderen *nix-Varianten funktionieren. Sie führt folgende Aufgaben aus:
- Installiert und konfiguriert Zsh minimal:
- stellt sicher, dass es existiert,
- setzt es als Standard-Shell für den im Rollenskript angegebenen Benutzer.
- Installiert Oh My Zsh für jeden angegebenen Benutzer (Standardmäßig in
~/.oh-my-zsh). - Konfiguriert (Oh My) Zsh, indem optional eine
.zshrc-Datei für jeden angegebenen Benutzer erstellt wird. - Alternativ wird Zsh konfiguriert, indem eine Blockzeile in die
.zshrc-Dateien der einzelnen Benutzer hinzugefügt wird.
Rollenvariablen
| Variablenname | Standardwert | Beschreibung |
|---|---|---|
omz_install_zsh |
false |
Definiert, ob die Rolle versuchen soll, Zsh zu installieren. |
omz_user |
[] |
Der Benutzer, für den (Oh My) Zsh installiert/konfiguriert werden soll. Weitere Eigenschaften siehe unten. |
omz_user.name |
- |
Der Name des Benutzers. |
omz_user.group |
- |
Die Gruppe des Benutzers. |
omz_user.settings |
- |
Zusätzliche Einstellungen (als mehrzeiliger String), wie Variablenexporte oder Aliase, die in die .zshrc-Datei des Benutzers hinzugefügt werden. Wird nur verwendet, wenn omz_zshrc_create auf true gesetzt ist. |
omz_git_repository |
https://github.com/robbyrussell/oh-my-zsh.git |
Das Git-Repo, von dem Oh My Zsh geklont wird. |
omz_install_directory |
.oh-my-zsh |
Der Name des Verzeichnisses, in das Oh My Zsh geklont wird. |
omz_zshrc_create |
true |
Ob die .zshrc-Datei erstellt werden soll oder nicht. Wenn true, wird .zshrc aus einer Vorlage erstellt. |
omz_zshrc_template |
templates/zshrc.zsh-template.j2 |
Die Vorlage, die verwendet wird, um die .zshrc-Datei des Benutzers zu erstellen, wenn omz_zshrc_create auf true gesetzt ist. |
omz_zshrc_backup |
true |
Ob vorhandene .zshrc-Dateien gesichert werden sollen, wenn die Rolle sie ändert. |
omz_zsh_theme |
robbyrussell |
Siehe templates/zshrc.zsh-template. |
omz_case_sensitive |
false |
Siehe templates/zshrc.zsh-template. |
omz_hyphen_insensitive |
false |
Siehe templates/zshrc.zsh-template. |
omz_disable_auto_update |
false |
Siehe templates/zshrc.zsh-template. |
omz_update_zsh_days |
13 |
Siehe templates/zshrc.zsh-template. |
omz_disable_ls_colors |
false |
Siehe templates/zshrc.zsh-template. |
omz_disable_auto_title |
false |
Siehe templates/zshrc.zsh-template. |
omz_enable_correction |
false |
Siehe templates/zshrc.zsh-template. |
omz_completion_waiting_dots |
false |
Siehe templates/zshrc.zsh-template. |
omz_disable_untracked_files_dirty |
false |
Siehe templates/zshrc.zsh-template. |
omz_hist_stamps |
mm/dd/yyyy |
Siehe templates/zshrc.zsh-template. |
omz_zsh_custom |
$ZSH/custom |
Siehe templates/zshrc.zsh-template. |
omz_plugins |
[] |
Eine Liste von Oh My Zsh-Plugins, die aktiviert werden sollen. |
Rollendateien für Aufgaben
main.yml: Aufgabenkoordination
Diese Datei inkludiert Dateien, die spezifische Teilaufgaben ausführen.
zsh.yml: Zsh-Setup
Diese Aufgabe installiert und setzt Zsh als Standard-Shell für einen Benutzer.
Verwendete Variablen
omz_user
oh-my-zsh-install.yml: Oh My Zsh-Installation
Diese Aufgabe klont das Oh My Zsh-Repository in das Benutzerverzeichnis jedes angegebenen Benutzers und setzt die entsprechenden Berechtigungen für das Verzeichnis.
Verwendete Variablen
omz_useromz_install_directoryomz_git_repositoryomz_install_path
oh-my-zsh-zshrc.yml: Oh My Zsh-Konfiguration
Diese Aufgabe erstellt für den Benutzer eine .zshrc-Datei mit globalen Werten für verschiedene Oh My Zsh-Optionen basierend auf der .zshrc-Vorlage im Oh My Zsh-Repository.
Die Aufgabe kann so konfiguriert werden, dass vorhandene .zshrc-Dateien gesichert werden.
Diese Aufgabe läuft nur, wenn omz_zshrc_create auf true gesetzt ist.
Verwendete Variablen
omz_useromz_zshrc_templateomz_zshrc_backup
zsh-zshrc.yml: finale Zsh-Konfiguration
Diese Aufgabe fügt einzelne Zeilen zur .zshrc-Datei hinzu. Dies ist nützlich, um Zsh-Einstellungen in einer bereits vorhandenen .zshrc-Datei hinzuzufügen, ohne sie von Grund auf neu zu erstellen.
Diese Aufgabe läuft nur, wenn omz_zshrc_create auf false gesetzt ist.
Verwendete Variablen
omz_useromz_zshrc_backup
Beispielplaybook
---
- 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: Führe ansible-role-oh-my-zsh aus.
include_role:
name: "ansible-role-oh-my-zsh"
vars:
omz_user: "{{ item }}"
# Erstelle nur die `.zshrc` für den Benutzer 'lorem'; item.settings wird
# an die `.zshrc` für den Benutzer 'ipsum' angehängt.
omz_zshrc_create: "{{ (item.name == 'lorem') | ternary(true, false) }}"
omz_plugins:
- "autojump"
- "git"
with_items: "{{ users }}"
Installs and configures oh-my-zsh for one or more users on Fedora, macOS, or Ubuntu.
ansible-galaxy install ctorgalson.oh-my-zsh