patbec.zsh

ikona konsoli zsh

Rola Ansible: ZSH

Rola Ansible Ocena Jakości Ansible GitHub

Nieaktualne: Ta rola została przeniesiona do kolekcji, tutaj można znaleźć nową wersję.

To prosta rola do zainstalowania i skonfigurowania powłoki zsh na systemie Linux.

Obsługiwane są następujące kroki:

  • Zainstalowanie zsh z niestandardowymi pakietami
  • Ustawienie zsh jako domyślnej powłoki dla określonych użytkowników
  • Opcjonalna dystrybucja plików konfiguracyjnych

Ta rola jest prosta, wykorzystuje standardowy menedżer pakietów i zawiera minimalne dodatkowe elementy. Jeśli napotkasz jakiekolwiek problemy, nie wahaj się zgłosić problemu.

Przygotowanie

Zainstaluj tę rolę za pomocą Ansible Galaxy.

ansible-galaxy install patbec.zsh

Zmienne

Domyślne zmienne w tej grze Ansible.

Nazwa Opis Wartość domyślna
zsh_config_mode Domyślne uprawnienia dla dystrybuowanych plików. 0644
zsh_config_backup Tworzy kopię zapasową przed nadpisaniem. true
zsh_config_overwrite Nadpisuje istniejący plik, jeśli są różnice. false
zsh_users_config Lista plików zsh do dystrybucji dla użytkownika. []
zsh_system_config Lista plików zsh do dystrybucji globalnej. []
zsh_users Lista użytkowników, którzy powinni mieć zsh jako domyślną powłokę. {{ ansible_user }}
zsh_dependencies Lista dodatkowych pakietów do zainstalowania. []
zsh_executable Ścieżka do pliku wykonywalnego. /usr/bin/zsh

Molecule: Test jednostkowy nie powiedzie się, jeśli dla zsh_executable określono dowiązanie symboliczne.

Właściwość zsh_users_config jest słownikiem:

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

Ten podstawowy przykład dystrybuuje plik .zshrc dla użytkownika. Ansible szuka pliku zshrc.j2 w twoim folderze template.

Ścieżki

Oto lista możliwych ścieżek z dokumentacji zsh (5.2 Pliki).

Użytkownicy

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"

Operacja kopiowania jest wykonywana w kontekście odpowiedniego użytkownika.

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"

Przykłady

Oto kilka przykładów użycia tej roli.

  1. Podstawowy
    Zainstaluj zsh i ustaw go jako domyślną powłokę dla użytkownika ansible.
  2. Wielu użytkowników
    Zainstaluj zsh i ustaw go jako domyślną powłokę dla listy określonych użytkowników.
  3. Plik konfiguracyjny zdefiniowany przez użytkownika
    Rozdystrybuj niestandardowy plik .zshrc dla listy użytkowników.
  4. Niestandardowe zależności
    Rozdystrybuj niestandardowy plik .zshrc z zależnością.
  5. Dodatkowe funkcje
    Rozdystrybuj niestandardowy plik .zshrc z funkcjami autosuggestions i syntax-highlighting.
  6. Pełne
    Pełny przykład powłoki zsh.Podgląd przykładu

Podstawowy

Zainstaluj zsh i ustaw go jako domyślną powłokę dla ansible_user.

  • Zainstaluj pakiet zsh.
  • Ustaw zsh jako domyślną powłokę dla ansible_user.
- name: zsh
  hosts: all
  roles:
    - patbec.zsh
  tasks:
    ansible.builtin.debug:
        msg: "ZSH został zainstalowany i ustawiony jako domyślny dla użytkownika {{ ansible_user }}."

Wielu użytkowników

Zainstaluj zsh i ustaw go jako domyślną powłokę dla listy określonych użytkowników.

  • Zainstaluj pakiet zsh.
  • Ustaw zsh jako domyślną powłokę dla określonych użytkowników.
- name: zsh
  hosts: all
  vars:
    zsh_users:
      - lorem
      - ipsum
  roles:
    - patbec.zsh
  tasks:
    ansible.builtin.debug:
        msg: "ZSH został zainstalowany i ustawiony jako domyślny dla 2 użytkowników."

Plik konfiguracyjny zdefiniowany przez użytkownika

Rozdystrybuj niestandardowy plik .zshrc dla listy użytkowników.

  • Zainstaluj pakiet zsh.
  • Ustaw zsh jako domyślną powłokę dla określonych użytkowników.
  • Rozdystrybuj niestandardowy plik .zshrc dla każdego użytkownika.
- 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 został zainstalowany, a niestandardowy plik został rozdystrybuowany."

Plik zshrc.j2 w twoim folderze templates:

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

# Dodaj swoją zawartość tutaj.

Niestandardowe zależności

Rozdystrybuj niestandardowy plik .zshrc z zależnością.

  • Zainstaluj pakiet zsh.
  • Ustaw zsh jako domyślną powłokę dla określonych użytkowników.
  • Rozdystrybuj niestandardowy plik .zshrc dla każdego użytkownika.
  • Zainstaluj zależność.
- 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 został zainstalowany, a exa jest używane do listowania plików."

Plik zshrc.j2 w twoim folderze templates:

{% 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 to ulepszony program do listowania plików, który ma więcej funkcji i lepsze domyślne ustawienia. Używa kolorów do rozróżnienia typów plików i metadanych.

Dodatkowe funkcje

Rozdystrybuj niestandardowy plik .zshrc z funkcjami autosuggestions i syntax-highlighting.

  • Zainstaluj pakiet zsh.
  • Ustaw zsh jako domyślną powłokę dla określonych użytkowników.
  • Rozdystrybuj niestandardowy plik .zshrc dla każdego użytkownika.
  • Zainstaluj autosuggestions i 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 został zainstalowany, a dodatkowe funkcje zostały włączone."

Plik zshrc.j2 w twoim folderze templates:

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

Pełne

Pełny przykład powłoki zsh.

  • Zainstaluj pakiet zsh.
  • Ustaw zsh jako domyślną powłokę dla określonych użytkowników.
  • Rozdystrybuj niestandardowy plik .zshrc dla każdego użytkownika.
  • Zainstaluj autosuggestions, syntax-highlighting i exa.
  • Ustaw ustawienia dla history, color i 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 został zainstalowany."

Plik zshrc.j2 w twoim folderze templates:

Kliknij tutaj, aby zobaczyć zawartość
{% 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 %}
#
# Dodatki specyficzne dla hosta
#
{{ zsh_additional_lines }}
{% endif %}

Podgląd

Podgląd tej konfiguracji: konsola zsh Możesz znaleźć używane kolory konsoli ANSI tutaj.

Licencja

Ten projekt jest licencjonowany na zasadach MIT - Zobacz plik LICENSE po więcej informacji.


Powrót do góry

O projekcie

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

Zainstaluj
ansible-galaxy install patbec.zsh
Licencja
mit
Pobrania
116
Właściciel