{%- from "linux/map.jinja" import system with context %} {%- if system.enabled %} {%- macro set_p(paramname, dictvar) -%} {%- if paramname in dictvar -%} - {{ paramname }}: {{ dictvar[paramname] }} {%- endif -%} {%- endmacro -%} {%- for group_name, group in system.group.items() %} {%- if group.enabled %} {%- set requires = [] %} {%- for user in group.get('addusers', []) %} {%- if user in system.get('user', {}).keys() %} {%- do requires.append({'user': 'system_user_'+user}) %} {%- endif %} {%- endfor %} system_group_{{ group_name }}: group.present: - name: {{ group.get('name', group_name) }} {%- if group.system is defined and group.system %} - system: True {%- endif %} {%- if group.gid is defined and group.gid %} - gid: {{ group.gid }} {%- endif %} - require: {{ requires|yaml }} {{ set_p('addusers', group)|indent(2, True) }} {{ set_p('delusers', group)|indent(2, True) }} {%- else %} system_group_{{ group_name }}: group.absent: - name: {{ group.name }} {%- endif %} {%- endfor %} {%- endif %}