diff --git a/pillar.example b/pillar.example index cbb2315..c5b2191 100644 --- a/pillar.example +++ b/pillar.example @@ -1,10 +1,10 @@ sudoers: users: - johndoe: + johndoe: - 'ALL=(ALL) ALL' - 'ALL=(root) NOPASSWD: /etc/init.d/httpd' groups: - sudo: + sudo: - 'ALL=(ALL) ALL' - 'ALL=(nodejs) NOPASSWD: ALL' defaults: @@ -43,8 +43,8 @@ sudoers: included_files: /etc/sudoers.d/extra-file: users: - foo: + foo: - 'ALL=(ALL) ALL' groups: - bargroup: + bargroup: - 'ALL=(ALL) NOPASSWD: ALL' diff --git a/sudoers/included.sls b/sudoers/included.sls index ee3c1e1..1577730 100644 --- a/sudoers/included.sls +++ b/sudoers/included.sls @@ -1,3 +1,5 @@ +{% from "sudoers/package-map.jinja" import pkgs with context %} + include: - sudoers @@ -15,5 +17,5 @@ include: included: True sudoers: {{ spec }} - require: - - file: /etc/sudoers + - file: {{ pkgs.get('config-path', '/etc') }}/sudoers {% endfor %} diff --git a/sudoers/init.sls b/sudoers/init.sls index 34fa7e8..8f73c12 100644 --- a/sudoers/init.sls +++ b/sudoers/init.sls @@ -4,7 +4,7 @@ sudo: pkg.installed: - name: {{ pkgs.sudo }} -/etc/sudoers: +{{ pkgs.get('config-path', '/etc') }}/sudoers: file.managed: - user: root - group: root diff --git a/sudoers/package-map.jinja b/sudoers/package-map.jinja index abe2269..bdbfd12 100644 --- a/sudoers/package-map.jinja +++ b/sudoers/package-map.jinja @@ -1,12 +1,14 @@ {% set package_table = { - 'Debian': {'sudo': 'sudo'}, - 'Ubuntu': {'sudo': 'sudo'}, - 'CentOS': {'sudo': 'sudo'}, - 'Fedora': {'sudo': 'sudo'}, - 'RedHat': {'sudo': 'sudo'}, - 'Amazon': {'sudo': 'sudo'}, - 'Gentoo': {'sudo': 'app-admin/sudo'}, - 'Mint': {'sudo': 'sudo'} + 'Debian': {'sudo': 'sudo'}, + 'Ubuntu': {'sudo': 'sudo'}, + 'CentOS': {'sudo': 'sudo'}, + 'Fedora': {'sudo': 'sudo'}, + 'RedHat': {'sudo': 'sudo'}, + 'Amazon': {'sudo': 'sudo'}, + 'Gentoo': {'sudo': 'app-admin/sudo'}, + 'Mint': {'sudo': 'sudo'}, + 'FreeBSD': {'sudo': 'sudo', + 'config-path': '/usr/local/etc/'} } %} {% if 'package_table' in pillar %}