{% set has_promexporter = salt['pillar.get']( 'chaos-role', default={} ) %} {% set orig_prom_path = '/var/lib/prometheus/node-exporter' %} # This has to be here, otherwise: # https://stackoverflow.com/questions/59268721/saltstack-use-include-twice-in-one-sls-file # {%- if 'prometheus-node_exporter' in has_promexporter %} include: - prometheus - systemd.reload {%- endif %} {%- if 'prometheus-node_exporter' in has_promexporter %} systemd-prometheus-node-exporter-service-override: file.managed: - name: /etc/systemd/system/prometheus-node-exporter.service.d/override.conf - user: node_exporter - group: node_exporter - makedirs: True - contents: | [Service] ExecStartPre=mkdir -p {{ salt['pillar.get']('prometheus:service:node_exporter:args:collector.textfile.directory') }} ExecStartPre=chown prometheus:prometheus {{ salt['pillar.get']('prometheus:service:node_exporter:args:collector.textfile.directory') }} ExecStartPre=chmod 755 {{ salt['pillar.get']('prometheus:service:node_exporter:args:collector.textfile.directory') }} - watch_in: - cmd: reload_systemd_configuration {% if salt['file.directory_exists' ](orig_prom_path) %} delete-orig-prom-path: file.absent: - name: {{ orig_prom_path }} {% endif %} link-orig-prom-path: file.symlink: - name: {{ orig_prom_path }} - target: {{ salt['pillar.get']('prometheus:service:node_exporter:args:collector.textfile.directory') }} - require: - file: delete-orig-prom-path patch-smartmon.sh: file.managed: - name: /usr/share/prometheus-node-exporter/smartmon.sh - source: salt://base/packages/prometheus/files/smartmon.sh - mode: 0755 {%- endif %}