djonasson.xdg_bds
Rol de Ansible: XDG BDS
Rol de Ansible para configurar las variables de shell y los directorios de la Especificación del Directorio Base XDG.
Requisitos
Ninguno.
Variables del Rol
Las variables del rol se definen en defaults/main.yml con estos valores por defecto:
xdg_configure_state: presente
El estado en el que se escriben los ajustes a través del módulo blockinfile. Los valores pueden ser: [presente, ausente].
xdg_marker: "# {mark} BLOQUE ADMINISTRADO POR ANSIBLE (djonasson.xdg_bds)"
La plantilla de línea del marcador.
xdg_data_home: "{{ ansible_user_dir }}/.local/share"
$XDG_DATA_HOME define el directorio base relativo donde deben almacenarse los archivos de datos específicos del usuario. Si
$XDG_DATA_HOME no está establecido o está vacío, se debe usar un valor por defecto igual a $HOME/.local/share.
xdg_config_home: "{{ ansible_user_dir }}/.config"
$XDG_CONFIG_HOME define el directorio base relativo donde deben almacenarse los archivos de configuración específicos del usuario. Si
$XDG_CONFIG_HOME no está establecido o está vacío, se debe usar un valor por defecto igual a $HOME/.config.
xdg_state_home: "{{ ansible_user_dir }}/.local/state"
$XDG_STATE_HOME define el directorio base relativo donde deben almacenarse los archivos de estado específicos del usuario. Si
$XDG_STATE_HOME no está establecido o está vacío, se debe usar un valor por defecto igual a $HOME/.local/state.
El $XDG_STATE_HOME contiene datos de estado que deben persistir entre reinicios de la aplicación, pero que no son lo suficientemente importantes
o portátiles para que se almacenen en el $XDG_DATA_HOME. Puede contener:
- historial de acciones (registros, historial, archivos utilizados recientemente, …)
 - estado actual de la aplicación que puede reutilizarse en un reinicio (vista, diseño, archivos abiertos, historial de deshacer, …)
 
Los archivos ejecutables específicos del usuario pueden almacenarse en $HOME/.local/bin. Las distribuciones deben asegurar que este directorio aparezca en la variable de entorno UNIX $PATH, en un lugar apropiado.
Dado que $HOME puede compartirse entre sistemas con diferentes arquitecturas, instalar binarios compilados en $HOME/.local/bin podría causar problemas al usarse en sistemas con arquitecturas diferentes. Esto a menudo no es un problema, pero el hecho de que $HOME se vuelva parcialmente específico de la arquitectura si se colocan binarios compilados en él debe tenerse en cuenta.
xdg_data_dirs: "/usr/local/share/:/usr/share"
$XDG_DATA_DIRS define el conjunto de directorios base en orden de preferencia para buscar archivos de datos, además del
directorio base $XDG_DATA_HOME. Los directorios en $XDG_DATA_DIRS deben separarse con dos puntos ':'.
Si $XDG_DATA_DIRS no está establecido o está vacío, se debe usar un valor igual a /usr/local/share/:/usr/share/.
xdg_config_dirs: "/etc/xdg"
$XDG_CONFIG_DIRS define el conjunto de directorios base en orden de preferencia para buscar archivos de configuración, además del
directorio base $XDG_CONFIG_HOME. Los directorios en $XDG_CONFIG_DIRS deben separarse con dos puntos ':'.
Si $XDG_CONFIG_DIRS no está establecido o está vacío, se debe usar un valor igual a /etc/xdg.
El orden de los directorios base denota su importancia; el primer directorio enumerado es el más importante. Cuando la
misma información se define en múltiples lugares, la información definida en relación con el directorio base más importante
tiene prioridad. El directorio base definido por $XDG_DATA_HOME se considera más importante que cualquiera de los directorios base
definidos por $XDG_DATA_DIRS. El directorio base definido por $XDG_CONFIG_HOME se considera más importante
que cualquiera de los directorios base definidos por $XDG_CONFIG_DIRS.
xdg_cache_home: "{{ ansible_user_dir }}/.cache"
$XDG_CACHE_HOME define el directorio base relativo donde deben almacenarse los archivos de datos no esenciales específicos del usuario.
Si $XDG_CACHE_HOME no está establecido o está vacío, se debe usar un valor por defecto igual a $HOME/.cache.
$XDG_RUNTIME_DIR define el directorio base relativo donde deben almacenarse los archivos de tiempo de ejecución no esenciales específicos del usuario y otros
objetos de archivo (como sockets, tuberías con nombre, ...). El directorio DEBE ser propiedad del usuario y él
DEBE ser el único que tenga acceso de lectura y escritura. Su modo de acceso Unix DEBE ser 0700.
La vida útil del directorio DEBE estar vinculada a que el usuario esté conectado. DEBE crearse cuando el usuario inicie sesión por primera vez y si el usuario cierra sesión completamente, el directorio DEBE eliminarse. Si el usuario inicia sesión más de una vez, debe ser dirigido al mismo directorio, y es obligatorio que el directorio continúe existiendo desde su primer inicio de sesión hasta su último cierre de sesión en el sistema, y que no se elimine entre medio. Los archivos en el directorio NO deben sobrevivir a un reinicio o a un ciclo completo de cierre de sesión/inicio de sesión.
El directorio DEBE estar en un sistema de archivos local y no compartirse con ningún otro sistema. El directorio DEBE ser totalmente compatible con los estándares del sistema operativo. Más específicamente, en sistemas operativos similares a Unix, DEBEN admitirse sockets AF_UNIX, enlaces simbólicos, enlaces duros, permisos adecuados, bloqueo de archivos, archivos dispersos, mapeo de memoria, notificaciones de cambio de archivos, se debe admitir un conteo confiable de enlaces duros y no deben imponerse restricciones en el conjunto de caracteres de nombres de archivos. Los archivos en este directorio PUEDEN estar sujetos a limpieza periódica. Para asegurarse de que sus archivos no sean eliminados, deben tener su marca de tiempo de acceso modificada al menos una vez cada 6 horas de tiempo monótono o debe establecerse el bit 'sticky' en el archivo.
Si $XDG_RUNTIME_DIR no está establecido, las aplicaciones deben volver a un directorio de reemplazo con capacidades similares y
imprimir un mensaje de advertencia. Las aplicaciones deben usar este directorio para fines de comunicación y sincronización y
no deben colocar archivos más grandes en él, ya que podría residir en memoria de ejecución y no necesariamente puede ser intercambiado con el disco.
Dependencias
Ninguna
Ejemplo de Playbook
- hosts: localhost
  roles:
    - role: djonasson.xdg_bds
Licencia
MIT
Autor
Este rol de ansible fue creado por Daniel Jonasson.
Ansible role to configure XDG Base Directory Specification shell variables and directories.
ansible-galaxy install djonasson.xdg_bds