--- - 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: "etc/systemd/system/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 when: "ansible_service_mgr == 'systemd'" - name: install collector timer ansible.builtin.template: src: "etc/systemd/system/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 when: "ansible_service_mgr == 'systemd'" - 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 }}" when: "ansible_service_mgr == 'systemd'" - name: install collector cronjob ansible.builtin.template: src: "etc/cron.d/prometheus-node-exporter.j2" dest: "{{ prometheus_node_crontab }}" owner: root group: root mode: 0644 vars: collectors: "{{ prometheus_textfile_collector }}" when: "ansible_service_mgr != 'systemd'"