From 70e66c97be41f09b0be4b35fd4a86a09ea7df11d Mon Sep 17 00:00:00 2001 From: Alkivi Date: Wed, 24 Apr 2019 11:03:27 +0200 Subject: [PATCH] feat(macro): to use in several state --- sudoers/macros.sls | 22 ++++++++++++++++++++++ sudoers/templates/sudoers.jinja | 7 +++++++ 2 files changed, 29 insertions(+) create mode 100644 sudoers/macros.sls create mode 100644 sudoers/templates/sudoers.jinja diff --git a/sudoers/macros.sls b/sudoers/macros.sls new file mode 100644 index 0000000..4bbef20 --- /dev/null +++ b/sudoers/macros.sls @@ -0,0 +1,22 @@ +{%- macro sudoers(for_user, sudo, config, priority='20', state='present') -%} +{%- set filename = priority ~ '-' ~ for_user|replace('.','-') ~ '-' ~ sudo %} + +{% if state == 'present' %} +/etc/sudoers.d/{{ filename }}: + file.managed: + - user: root + - group: root + - mode: 440 + - template: jinja + - source: salt://sudoers/templates/sudoers.jinja + - context: + for_user: {{ for_user }} + sudo: {{ sudo }} + config: {{ config }} + +{% elif state == 'absent' %} +/etc/sudoers.d/{{ filename }}: + file.absent +{% endif %} + +{%- endmacro %} diff --git a/sudoers/templates/sudoers.jinja b/sudoers/templates/sudoers.jinja new file mode 100644 index 0000000..455b4d8 --- /dev/null +++ b/sudoers/templates/sudoers.jinja @@ -0,0 +1,7 @@ +{%- if config.command is string -%} +{{ for_user }} {{ config.privileges }}: {{ config.command }} +{%- else -%} +{% for command in config.command -%} +{{ for_user }} {{ config.privileges }}: {{ command }} +{% endfor %} +{%- endif -%}