djonasson.xdg_bds
Rola Ansible: XDG BDS
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.
Ansible role to configure XDG Base Directory Specification shell variables and directories.
ansible-galaxy install djonasson.xdg_bds