patbec.zsh

zsh console icon

Ansible Rolle: ZSH

Ansible Rolle Ansible Qualitätsbewertung GitHub

Abgelaufen: Diese Rolle wurde in eine Sammlung migriert, hier finden Sie die neue Version.

Dies ist eine einfache Rolle zur Installation und Einrichtung der zsh-Shell auf Linux.

Die folgenden Schritte werden unterstützt:

  • Installieren von zsh mit benutzerdefinierten Paketen
  • Setzen von zsh als Standard-Shell für die angegebenen Benutzer
  • Optionale Verteilung von Konfigurationsdateien

Diese Rolle bleibt einfach, nutzt den Standard-Paketmanager und hat einen minimalen Overhead. Bei Problemen zögern Sie nicht, ein Problem zu erstellen.

Vorbereitung

Installieren Sie diese Rolle mit Ansible Galaxy.

ansible-galaxy install patbec.zsh

Variablen

Standardvariablen in diesem Playbook.

Name Beschreibung Standardwert
zsh_config_mode Standardberechtigungen für verteilte Dateien. 0644
zsh_config_backup Erstellt ein Backup, bevor eine Überschreibung erfolgt. true
zsh_config_overwrite Überschreibt die vorhandene Datei, wenn Unterschiede bestehen. false
zsh_users_config Eine Liste von zsh-Dateien, die für einen Benutzer verteilt werden. []
zsh_system_config Eine Liste von zsh-Dateien, die global verteilt werden. []
zsh_users Eine Liste von Benutzern, die zsh als Standard-Shell erhalten sollen. {{ ansible_user }}
zsh_dependencies Eine Liste von zusätzlichen Paketen, die installiert werden sollen. []
zsh_executable Pfad zur Ausführungsdatei. /usr/bin/zsh

Molecule: Der Unit-Test schlägt fehl, wenn ein symbolischer Link für zsh_executable angegeben wird.

Die zsh_users_config-Eigenschaft ist ein Dictionary:

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

Dieses einfache Beispiel verteilt eine .zshrc für einen Benutzer. Ansible sucht die Datei zshrc.j2 in Ihrem template-Ordner.

Pfade

Hier ist eine Liste möglicher Pfade aus der zsh Dokumentation (5.2 Dateien).

Benutzer

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"

Die Kopieroperation wird im Kontext des jeweiligen Benutzers durchgeführt.

System

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"

Beispiele

Hier sind einige Beispiele, wie diese Rolle verwendet werden kann.

  1. Basis
    Installieren Sie zsh und setzen Sie es als Standard-Shell für den Ansible-Benutzer.
  2. Mehrere Benutzer
    Installieren Sie zsh und setzen Sie es als Standard-Shell für eine Liste von angegebenen Benutzern.
  3. Benutzerdefinierte Konfigurationsdatei
    Verteilen Sie eine benutzerdefinierte .zshrc-Datei für eine Liste von Benutzern.
  4. Benutzerdefinierte Abhängigkeiten
    Verteilen Sie eine benutzerdefinierte .zshrc-Datei mit einer Abhängigkeit.
  5. Zusätzliche Funktionen
    Verteilen Sie eine benutzerdefinierte .zshrc-Datei mit Funktionen für autosuggestions und syntax-highlighting.
  6. Vollständig
    Vollständiges Beispiel einer zsh-Shell.Beispielvorschau

Basis

Installieren Sie zsh und setzen Sie es als Standard-Shell für den ansible_user.

  • Installieren Sie das zsh-Paket.
  • Setzen Sie zsh als Standard-Shell für den ansible_user.
- name: zsh
  hosts: all
  roles:
    - patbec.zsh
  tasks:
    ansible.builtin.debug:
        msg: "ZSH wurde installiert und als Standard für den Benutzer {{ ansible_user }} gesetzt."

Mehrere Benutzer

Installieren Sie zsh und setzen Sie es als Standard-Shell für eine Liste von angegebenen Benutzern.

  • Installieren Sie das zsh-Paket.
  • Setzen Sie zsh als Standard-Shell für die angegebenen Benutzer.
- name: zsh
  hosts: all
  vars:
    zsh_users:
      - lorem
      - ipsum
  roles:
    - patbec.zsh
  tasks:
    ansible.builtin.debug:
        msg: "ZSH wurde installiert und als Standard für 2 Benutzer gesetzt."

Benutzerdefinierte Konfigurationsdatei

Verteilen Sie eine benutzerdefinierte .zshrc-Datei für eine Liste von Benutzern.

  • Installieren Sie das zsh-Paket.
  • Setzen Sie zsh als Standard-Shell für die angegebenen Benutzer.
  • Verteilen Sie eine benutzerdefinierte .zshrc für jeden Benutzer.
- 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 wurde installiert und eine benutzerdefinierte Datei verteilt."

zshrc.j2-Datei in Ihrem Templates-Ordner:

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

# Fügen Sie hier Ihren Inhalt hinzu.

Benutzerdefinierte Abhängigkeiten

Verteilen Sie eine benutzerdefinierte .zshrc-Datei mit einer Abhängigkeit.

  • Installieren Sie das zsh-Paket.
  • Setzen Sie zsh als Standard-Shell für die angegebenen Benutzer.
  • Verteilen Sie eine benutzerdefinierte .zshrc für jeden Benutzer.
  • Installieren Sie eine Abhängigkeit.
- 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 wurde installiert und exa wird zum Auflisten von Dateien verwendet."

zshrc.j2-Datei in Ihrem Templates-Ordner:

{% 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 ist ein verbesserter Datei-Listener mit mehr Funktionen und besseren Standardeinstellungen. Es verwendet Farben, um Dateitypen und Metadaten zu unterscheiden.

Zusätzliche Funktionen

Verteilen Sie eine benutzerdefinierte .zshrc-Datei mit Autosuggestions und Syntax-Highlighting Funktionen.

  • Installieren Sie das zsh-Paket.
  • Setzen Sie zsh als Standard-Shell für die angegebenen Benutzer.
  • Verteilen Sie eine benutzerdefinierte .zshrc für jeden Benutzer.
  • Installieren Sie Autosuggestions und 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 wurde installiert und zusätzliche Funktionen wurden aktiviert."

zshrc.j2-Datei in Ihrem Templates-Ordner:

{% 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

Vollständig

Vollständiges Beispiel einer zsh-Shell.

  • Installieren Sie das zsh-Paket.
  • Setzen Sie zsh als Standard-Shell für die angegebenen Benutzer.
  • Verteilen Sie eine benutzerdefinierte .zshrc für jeden Benutzer.
  • Installieren Sie Autosuggestions, Syntax-Highlighting und exa.
  • Setzen Sie history, color und cd Einstellungen.
- 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 wurde installiert."

zshrc.j2-Datei in Ihrem Templates-Ordner:

Klicken Sie hier, um den Inhalt zu sehen
{% 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 %}
#
# Host spezifische Ergänzungen
#
{{ zsh_additional_lines }}
{% endif %}

Vorschau

Eine Vorschau dieser Konfiguration: zsh console Die verwendeten ANSI-Konsole Farben finden Sie hier.

Lizenz

Dieses Projekt ist unter MIT lizenziert - Siehe die LICENSE Datei für weitere Informationen.


Nach oben springen

Über das Projekt

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

Installieren
ansible-galaxy install patbec.zsh
GitHub Repository
Lizenz
mit
Downloads
116
Besitzer