--- - name: Install node_exporter (Debian) ansible.builtin.apt: name: prometheus-node-exporter state: present when: ansible_facts["os_family"] == "Debian" become: true - name: Install node_exporter (Arch) community.general.pacman: name: prometheus-node-exporter state: present when: ansible_facts["os_family"] == "Archlinux" become: true - name: Configure node_exporter flags (Debian) ansible.builtin.copy: dest: /etc/default/prometheus-node-exporter content: | ARGS="{{ node_exporter_flags }}" owner: root group: root mode: '0644' when: ansible_facts["os_family"] == "Debian" become: true notify: Restart node_exporter - name: Configure node_exporter flags (Arch) ansible.builtin.copy: dest: /etc/conf.d/prometheus-node-exporter content: | NODE_EXPORTER_ARGS="{{ node_exporter_flags }}" owner: root group: root mode: '0644' when: ansible_facts["os_family"] == "Archlinux" become: true notify: Restart node_exporter - name: Enable and start node_exporter service ansible.builtin.systemd: name: prometheus-node-exporter state: started enabled: true become: true - name: Populate service facts ansible.builtin.service_facts: - name: Open port 9100 for prometheus scraping ansible.posix.firewalld: port: 9100/tcp permanent: true state: enabled immediate: true become: true when: > ansible_facts.services['firewalld.service'] is defined and ansible_facts.services['firewalld.service'].state == 'running'