Added feature to allow syncing arbitrary sets of files per user.
This commit is contained in:
parent
9629cfe348
commit
cdb862e968
|
@ -46,3 +46,8 @@ True in pillar per user. Defaults to False
|
|||
Ensures the vimrc file exists in the users home directory. Set manage_vimrc:
|
||||
True in pillar per user. Defaults to False
|
||||
This depends on the vim-formula to be installed
|
||||
|
||||
``users.user_files``
|
||||
---------------
|
||||
|
||||
Permits the abitrary management of files. See pillar.example for configuration details.
|
||||
|
|
|
@ -84,6 +84,13 @@ users:
|
|||
44444444
|
||||
55555555
|
||||
|
||||
user_files:
|
||||
enabled: True
|
||||
# 'source' allows you to define an arbitrary directory to sync, useful to use for default files.
|
||||
# should be a salt fileserver path either with or without 'salt://'
|
||||
# if not present, it defaults to 'salt://users/files/user/<username>
|
||||
source: users/files/default
|
||||
|
||||
## Absent user
|
||||
cuser:
|
||||
absent: True
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
{% from "users/map.jinja" import users with context %}
|
||||
{% set used_sudo = [] %}
|
||||
{% set used_googleauth = [] %}
|
||||
{% set used_user_files = [] %}
|
||||
|
||||
{%- for name, user in pillar.get('users', {}).items()
|
||||
if user.absent is not defined or not user.absent %}
|
||||
|
@ -14,9 +15,12 @@
|
|||
{%- if 'google_auth' in user %}
|
||||
{%- do used_googleauth.append(1) %}
|
||||
{%- endif %}
|
||||
{%- if pillar.get('users:' + name + ':user_files:enabled', False) %}
|
||||
{%- do used_user_files.append(1) %}
|
||||
{%- endif %}
|
||||
{%- endfor %}
|
||||
|
||||
{%- if used_sudo or used_googleauth %}
|
||||
{%- if used_sudo or used_googleauth or used_user_files %}
|
||||
include:
|
||||
{%- if used_sudo %}
|
||||
- users.sudo
|
||||
|
@ -24,6 +28,9 @@ include:
|
|||
{%- if used_googleauth %}
|
||||
- users.googleauth
|
||||
{%- endif %}
|
||||
{%- if used_user_files %}
|
||||
- users.user_files
|
||||
{%- endif %}
|
||||
{%- endif %}
|
||||
|
||||
{% for name, user in pillar.get('users', {}).items()
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
{% from "users/map.jinja" import users with context -%}
|
||||
|
||||
include:
|
||||
- users
|
||||
|
||||
{%- for username, user in pillar.get('users', {}).items() if (user.absent is not defined or not user.absent) -%}
|
||||
{%- set user_files = pillar.get('users:' + username + ':user_files', {'enabled': False}) -%}
|
||||
|
||||
{%- if user_files.enabled -%}
|
||||
{%- set user_group = pillar.get(('users:' + username + ':prime_group:name'), username) -%}
|
||||
|
||||
{%- if user_files.source is defined -%}
|
||||
{%- if user_files.source.startswith('salt://') -%}
|
||||
{%- set file_source = user_files.source -%}
|
||||
{%- else -%}
|
||||
{%- set file_source = ('salt://' + user.user_files.source) -%}
|
||||
{%- endif -%}
|
||||
{%- else -%}
|
||||
{%- set file_source = ('salt://users/files/user/' + username) -%}
|
||||
{%- endif -%}
|
||||
|
||||
users_userfiles_{{ username }}_recursive:
|
||||
file.recurse:
|
||||
- name: {{ user.home }}
|
||||
- source: {{ file_source }}
|
||||
- user: {{ username }}
|
||||
- group: {{ user_group }}
|
||||
- clean: False
|
||||
- include_empty: True
|
||||
- keep_symlinks: True
|
||||
- require:
|
||||
- user: users_{{ username }}_user
|
||||
- file: users_{{ username }}_user
|
||||
|
||||
{% endif -%}
|
||||
{% endfor -%}
|
Loading…
Reference in New Issue