--- - name: install collector script ansible.builtin.template: src: "{{ basename }}.j2" dest: "/usr/local/bin/{{ basename }}" owner: root group: prometheus mode: 0750 vars: basename: "{{ item.value.template_base_name | default('prometheus-node-exporter-' + item.key + '.sh') }}" loop: "{{ prometheus_textfile_collectors | dict2items }}" - name: install collector config ansible.builtin.copy: content: "{{ item.value.config.content }}" dest: "{{ item.value.config.filename }}" owner: root group: prometheus mode: 0640 when: "'config' in item.value" loop: "{{ prometheus_textfile_collectors | dict2items }}" - name: install collector service ansible.builtin.template: src: "prometheus-collector.service.j2" dest: "/etc/systemd/system/prometheus-node-exporter-{{ item.key }}.service" owner: root group: root mode: 0644 vars: basename: "{{ item.value.template_base_name | default('prometheus-node-exporter-' + item.key + '.sh') }}" loop: "{{ prometheus_textfile_collectors | dict2items }}" notify: - systemctl daemon-reload - name: install collector timer ansible.builtin.template: src: "prometheus-collector.timer.j2" dest: "/etc/systemd/system/prometheus-node-exporter-{{ item.key }}.timer" owner: root group: root mode: 0644 loop: "{{ prometheus_textfile_collectors | dict2items }}" notify: - systemctl daemon-reload - name: start and enable collector timer ansible.builtin.systemd: name: "prometheus-node-exporter-{{ item.key }}.timer" state: started enabled: yes loop: "{{ prometheus_textfile_collectors | dict2items }}"