--- # ------------------------------------------------------------------------------ # FILE: ansible/playbooks/day2_install_node_exporter.yml # DESCRIPTION: Install and configure Prometheus Node Exporter on Linux hosts. # # Targets two groups with different firewall managers: # - proxmox_nodes : Proxmox hypervisors (Debian, firewalld not present, # uses iptables/no firewall — just open the port via UFW # if present, otherwise skip) # - monitored_vms : Ubuntu VMs managed by UFW # # After installing on new hosts, re-runs day1_deploy_monitoring.yml to refresh # the Prometheus scrape config is NOT needed — targets are already statically # defined in prometheus.yaml.j2 for the Proxmox nodes. For new VMs, add the # IP to the prometheus.yaml.j2 proxmox-vms job and re-run day1_deploy_monitoring.yml. # # Usage: # ansible-playbook -i inventory.yml playbooks/day2_install_node_exporter.yml # ansible-playbook -i inventory.yml playbooks/day2_install_node_exporter.yml --limit proxmox_nodes # ansible-playbook -i inventory.yml playbooks/day2_install_node_exporter.yml --limit monitored_vms # ------------------------------------------------------------------------------ # ── Play 1: Proxmox hypervisors ─────────────────────────────────────────────── # Proxmox runs Debian. The prometheus.prometheus.node_exporter role installs # a binary + systemd service without touching apt, which is what we want on # hypervisors (keep the package footprint clean). # Note: Proxmox does not run UFW. Port 9100 is open by default on VLAN 71. - name: Install Node Exporter on Proxmox hypervisors hosts: proxmox_nodes become: true vars: node_exporter_version: "1.9.1" node_exporter_web_listen_address: "0.0.0.0:9100" node_exporter_enabled_collectors: - systemd - processes - filesystem - meminfo - cpu - diskstats - netdev - loadavg - uname roles: - role: prometheus.prometheus.node_exporter # ── Play 2: Ubuntu VMs ──────────────────────────────────────────────────────── # Standard Ubuntu hosts with UFW. Same role, adds UFW allow rule for 9100. - name: Install Node Exporter on monitored VMs hosts: monitored_vms become: true vars: node_exporter_version: "1.9.1" node_exporter_web_listen_address: "0.0.0.0:9100" node_exporter_enabled_collectors: - systemd - processes - filesystem - meminfo - cpu - diskstats - netdev - loadavg - uname pre_tasks: - name: Open Node Exporter port in UFW community.general.ufw: rule: allow port: "9100" proto: tcp comment: "Prometheus Node Exporter" roles: - role: prometheus.prometheus.node_exporter