djonasson.xdg_bds
Ansible Роль: XDG BDS
Ansible роль для настройки переменных оболочки и директорий согласно Спецификации базового каталога XDG.
Требования
Нет.
Переменные Роли
Переменные роли определены в defaults/main.yml с такими значениями по умолчанию:
xdg_configure_state: present
Состояние, в котором настройки записываются с помощью модуля blockinfile. Значения: [present, absent].
xdg_marker: "# {mark} ANSIBLE MANAGED BLOCK (djonasson.xdg_bds)"
Шаблон маркера строки.
xdg_data_home: "{{ ansible_user_dir }}/.local/share"
$XDG_DATA_HOME определяет базовый каталог, относительно которого должны храниться пользовательские данные. Если
$XDG_DATA_HOME не установлен или пуст, используется значение по умолчанию $HOME/.local/share.
xdg_config_home: "{{ ansible_user_dir }}/.config"
$XDG_CONFIG_HOME определяет базовый каталог для хранения пользовательских конфигурационных файлов. Если
$XDG_CONFIG_HOME не установлен или пуст, используется значение по умолчанию $HOME/.config.
xdg_state_home: "{{ ansible_user_dir }}/.local/state"
$XDG_STATE_HOME задает базовый каталог для хранения пользовательских файлов состояния. Если
$XDG_STATE_HOME не установлен или пуст, используется значение по умолчанию $HOME/.local/state.
$XDG_STATE_HOME содержит данные состояния, которые должны сохраняться между перезапусками приложений, но не столь важны, чтобы хранить их в $XDG_DATA_HOME. Это могут быть:
- история действий ( журналы, история, недавно используемые файлы и т.д.)
- текущее состояние приложения, которое можно восстановить при перезапуске (вид, макет, открытые файлы, история отмены и т.д.)
Пользовательские исполняемые файлы могут храниться в $HOME/.local/bin. Дистрибутивы должны гарантировать, что эта директория занесена в переменную окружения UNIX $PATH в правильном месте.
Поскольку $HOME может быть разделяемым между системами с различной архитектурой, установка скомпилированных бинарных файлов в $HOME/.local/bin может вызвать проблемы при использовании на системах с различной архитектурой. Обычно это не является проблемой, но факт, что $HOME становится частично специфичным для архитектуры, если в него помещаются скомпилированные бинарные файлы, следует иметь в виду.
xdg_data_dirs: "/usr/local/share/:/usr/share"
$XDG_DATA_DIRS определяет упорядоченный по предпочтению список базовых каталогов для поиска файлов данных в дополнение к
базовому каталогу $XDG_DATA_HOME. Директории в $XDG_DATA_DIRS должны быть разделены двоеточием ':'.
Если $XDG_DATA_DIRS не установлен или пуст, используется значение /usr/local/share/:/usr/share/.
xdg_config_dirs: "/etc/xdg"
$XDG_CONFIG_DIRS определяет упорядоченный по предпочтению список базовых каталогов для поиска конфигурационных файлов в дополнение к базовому каталогу $XDG_CONFIG_HOME. Директории в $XDG_CONFIG_DIRS должны быть разделены двоеточием ':'.
Если $XDG_CONFIG_DIRS не установлен или пуст, используется значение /etc/xdg.
Порядок базовых каталогов указывает на их значимость: первый каталог в списке наиболее важен. Когда одна и та же информация определяется в нескольких местах, информация, определенная относительно более важного базового каталога, имеет приоритет. Базовый каталог, определенный переменной $XDG_DATA_HOME, считается более важным, чем любой из базовых каталогов, определенных переменной $XDG_DATA_DIRS. Базовый каталог, определенный переменной $XDG_CONFIG_HOME, считается более важным, чем любой из базовых каталогов, определенных переменной $XDG_CONFIG_DIRS.
xdg_cache_home: "{{ ansible_user_dir }}/.cache"
$XDG_CACHE_HOME определяет базовый каталог для хранения несущественных файлов данных пользователя. Если $XDG_CACHE_HOME не установлен или пуст, используется значение по умолчанию $HOME/.cache.
$XDG_RUNTIME_DIR определяет базовый каталог для хранения несущественных файлов времени выполнения и других
объектов файлов (таких как сокеты, именованные каналы и т.д.). Директория ДОЛЖНА принадлежать пользователю, и только он
ДОЛЖЕН иметь доступ на чтение и запись к ней. Режим доступа Unix ДОЛЖЕН быть 0700.
Срок жизни каталога ДОЛЖЕН быть связан с авторизацией пользователя. Он ДОЛЖЕН создаваться при первом входе пользователя и, если пользователь полностью выходит из системы, каталог ДОЛЖЕН быть удален. Если пользователь заходит несколько раз, он должен попасть в один и тот же каталог, и обязательно, чтобы каталог продолжал существовать с его первой авторизации до последнего выхода из системы, и не удалялся между этим. Файлы в каталоге ДОЛЖНЫ быть удалены при перезагрузке или полном входе/выходе из системы.
Каталог ДОЛЖЕН находиться на локальной файловой системе и не должен быть разделяемым с какой-либо другой системой. Каталог ДОЛЖЕН полностью соответствовать стандартам операционной системы. Более конкретно, в операционных системах, подобных Unix, должны поддерживаться сокеты AF_UNIX, символические ссылки, жесткие ссылки, правильные разрешения, блокировка файлов, разреженные файлы, отображение памяти, уведомления о изменениях файлов, надежный подсчет жестких ссылок, не должно быть наложено никаких ограничений на набор символов имени файла. Файлы в этом каталоге могут подлежать периодической очистке. Чтобы ваши файлы не удалялись, их временная метка доступа должна быть изменена как минимум раз каждые 6 часов монохронного времени, или должен быть установлен 'липкий' бит на файле.
Если $XDG_RUNTIME_DIR не установлен, приложения должны обращаться к замещающему каталогу с аналогичными возможностями и выводить предупреждающее сообщение. Приложения должны использовать этот каталог для целей связи и синхронизации и не должны помещать в него большие файлы, так как он может находиться в памяти во время выполнения и не может быть обязательно выгружен на диск.
Зависимости
Нет
Пример Плейбука
- hosts: localhost
roles:
- role: djonasson.xdg_bds
Лицензия
MIT
Автор
Эта Ansible роль была создана Даниэлем Йонассоном.
Ansible role to configure XDG Base Directory Specification shell variables and directories.
ansible-galaxy install djonasson.xdg_bds