djonasson.xdg_bds

Rola Ansible: XDG BDS

CI Ocena jakości Ansible Galaxy Ansible Galaxy Licencja MIT

Rola Ansible do konfigurowania zmiennych środowiskowych i katalogów w określeniu XDG Base Directory.

Wymagania

Brak.

Zmienne Roli

Zmienna roli jest zdefiniowana w pliku defaults/main.yml z tymi domyślnymi wartościami:

xdg_configure_state: present

Stan, w którym ustawienia są zapisywane za pomocą modułu blockinfile. Wartości: [present, absent].

xdg_marker: "# {mark} ANSIBLE MANAGED BLOCK (djonasson.xdg_bds)"

Szablon linii znaku.

xdg_data_home: "{{ ansible_user_dir }}/.local/share"

$XDG_DATA_HOME definiuje podstawowy katalog, w odniesieniu do którego powinny być przechowywane pliki danych specyficznych dla użytkownika. Jeśli $XDG_DATA_HOME nie jest ustawione lub jest puste, powinno być użyte domyślne równoważne $HOME/.local/share.

xdg_config_home: "{{ ansible_user_dir }}/.config"

$XDG_CONFIG_HOME definiuje podstawowy katalog, w odniesieniu do którego powinny być przechowywane pliki konfiguracyjne specyficzne dla użytkownika. Jeśli $XDG_CONFIG_HOME nie jest ustawione lub jest puste, powinno być użyte domyślne równoważne $HOME/.config.

xdg_state_home: "{{ ansible_user_dir }}/.local/state"

$XDG_STATE_HOME definiuje podstawowy katalog, w odniesieniu do którego powinny być przechowywane pliki stanu specyficzne dla użytkownika. Jeśli $XDG_STATE_HOME nie jest ustawione lub jest puste, powinno być użyte domyślne równoważne $HOME/.local/state.

$XDG_STATE_HOME zawiera dane stanu, które powinny utrzymywać się między (aplikacyjnymi) restartami, ale nie są na tyle istotne lub przenośne, aby były przechowywane w $XDG_DATA_HOME. Może zawierać:

  • historię działań (logi, historia, ostatnio używane pliki, …)
  • aktualny stan aplikacji, który może być użyty po restarcie (widok, układ, otwarte pliki, historia cofania, …)

Pliki wykonywalne specyficzne dla użytkownika mogą być przechowywane w $HOME/.local/bin. Dystrybucje powinny zapewnić, aby ten katalog był obecny w zmiennej środowiskowej UNIX $PATH, w odpowiednim miejscu.

Ponieważ $HOME może być współdzielone między systemami o różnych architekturach, instalacja skompilowanych binarek do $HOME/.local/bin może powodować problemy podczas używania ich w systemach o różnych architekturach. Często nie jest to problem, ale fakt, że $HOME staje się częściowo specyficzne dla architektury, jeśli umieści się w nim skompilowane binaria, należy mieć na uwadze.

xdg_data_dirs: "/usr/local/share/:/usr/share"

$XDG_DATA_DIRS definiuje preferencyjny zestaw katalogów bazowych do przeszukiwania plików danych oprócz podstawowego katalogu $XDG_DATA_HOME. Katalogi w $XDG_DATA_DIRS powinny być oddzielone dwukropkiem ':'.

Jeśli $XDG_DATA_DIRS nie jest ustawione lub jest puste, powinno być użyte domyślne wartość równoważna /usr/local/share/:/usr/share/.

xdg_config_dirs: "/etc/xdg"

$XDG_CONFIG_DIRS definiuje preferencyjny zestaw katalogów bazowych do przeszukiwania plików konfiguracyjnych oprócz podstawowego katalogu $XDG_CONFIG_HOME. Katalogi w $XDG_CONFIG_DIRS powinny być oddzielone dwukropkiem ':'.

Jeśli $XDG_CONFIG_DIRS nie jest ustawione lub jest puste, powinno być użyte domyślne równoważne /etc/xdg.

Kolejność katalogów bazowych oznacza ich ważność; pierwszy wymieniony katalog jest najważniejszy. Kiedy ta sama informacja jest zdefiniowana w wielu miejscach, informacja zdefiniowana w bardziej istotnym katalogu bazowym ma pierwszeństwo. Katalog podstawowy zdefiniowany przez $XDG_DATA_HOME jest uważany za ważniejszy niż jakiekolwiek z katalogów bazowych zdefiniowanych przez $XDG_DATA_DIRS. Katalog podstawowy zdefiniowany przez $XDG_CONFIG_HOME jest uważany za ważniejszy niż jakiekolwiek z katalogów bazowych zdefiniowanych przez $XDG_CONFIG_DIRS.

xdg_cache_home: "{{ ansible_user_dir }}/.cache"

$XDG_CACHE_HOME definiuje podstawowy katalog, w odniesieniu do którego powinny być przechowywane pliki danych niezwiązanych z użytkownikiem. Jeśli $XDG_CACHE_HOME nie jest ustawione lub jest puste, powinno być użyte domyślne równoważne $HOME/.cache.

$XDG_RUNTIME_DIR definiuje podstawowy katalog, w odniesieniu do którego powinny być przechowywane pliki czasu wykonania niezwiązane z użytkownikiem oraz inne obiekty plikowe (takie jak gniazda, potok nazwany,...). Katalog MUSI być własnością użytkownika i MUSI być jedynym, który ma dostęp do niego do odczytu i zapisu. Jego tryb dostępu UNIX MUSI być 0700.

Czas życia katalogu MUSI być związany z tym, że użytkownik jest zalogowany. MUSI być utworzony, gdy użytkownik po raz pierwszy loguje się, a jeśli użytkownik całkowicie wyloguje się, katalog MUSI być usunięty. Jeśli użytkownik loguje się więcej niż raz, powinien być wskazany na ten sam katalog, a obowiązkowe jest, aby katalog istniał od jego pierwszego logowania do jego ostatniego wylogowania na systemie, i nie był usuwany w międzyczasie. Pliki w tym katalogu MUSZĄ nie przetrwać restartu ani pełnego cyklu wylogowania/logowania.

Katalog MUSI znajdować się na lokalnym systemie plików i nie być współdzielony z żadnym innym systemem. Katalog MUSI być w pełni zgodny z standardami systemu operacyjnego. Bardziej szczegółowo, na systemach uniksowych gniazda AF_UNIX, symlink, hard link, odpowiednie uprawnienia, blokowanie plików, pliki sparse, mapowanie pamięci, powiadomienia o zmianach plików, niezawodna liczba twardych linków muszą być obsługiwane, a nie powinny być narzucane żadne ograniczenia na zestaw znaków nazw plików. Pliki w tym katalogu MOGĄ być objęte okresowym czyszczeniem. Żeby upewnić się, że pliki nie są usuwane, n nalezy zmieniać swoją datę dostępu co najmniej raz na 6 godzin czasu monotonicznego lub mieć ustawiony bit 'sticky' na pliku.

Jeśli $XDG_RUNTIME_DIR nie jest ustawione, aplikacje powinny przejść do katalogu zamiennego o podobnych możliwościach i wydrukować komunikat ostrzegawczy. Aplikacje powinny używać tego katalogu do celów komunikacji i synchronizacji i nie powinny umieszczać w nim większych plików, ponieważ może znajdować się w pamięci operacyjnej i nie można go koniecznie zamienić na dysk.

Zależności

Brak

Przykładowy playbook

- hosts: localhost
  roles:
    - role: djonasson.xdg_bds

Licencja

MIT

Autor

Ta rola ansible została stworzona przez Daniela Jonassona.

O projekcie

Ansible role to configure XDG Base Directory Specification shell variables and directories.

Zainstaluj
ansible-galaxy install djonasson.xdg_bds
Licencja
mit
Pobrania
134
Właściciel