djonasson.xdg_bds

Ansible 角色:XDG BDS

CI Ansible Galaxy 质量评分 Ansible Galaxy MIT 许可证

这是一个用于配置 XDG 基目录规范 的 Ansible 角色,主要用于设置 shell 变量和目录。

需求

无。

角色变量

角色变量在 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 角色由 Daniel Jonasson 创建。

关于项目

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

安装
ansible-galaxy install djonasson.xdg_bds
许可证
mit
下载
134
拥有者