Salt - howto simple custom module and jinja
Jump to navigation
Jump to search
Stolen from some stackoverflow post
I have a couple custom execution modules that hold nothing but utility functions for use within state files. So, something along the lines of: /srv/salt/_modules/tplutils.py import re def __virtual__(): return __name__ def rematch(pattern, target): """ (because Jinja makes me want to cut myself) args: regex pattern (str) target text (str) """ return True if re.match(r'{}'.format(pattern), target) else False could then be called like /etc/ntp.conf: file.managed: - source: {% if salt.tplutils.rematch(grains['id'], 'host(1|2)c') %} - salt://ntp/files/ntp.conf.server {% else %} - salt://ntp/files/ntp.conf.{{ grains['fqdn'] }} - salt://ntp/files/ntp.conf.default {% endif %} - user: root - group: root - mode: 644