--- - name: "Include OS-specific variables" ansible.builtin.include_vars: "{{ ansible_os_family | lower }}.yml" - name: "Create prometheus group" become: true ansible.builtin.group: name: "prometheus" system: true - name: "Create prometheus user" become: true ansible.builtin.user: name: "prometheus" group: "prometheus" system: true shell: "/usr/sbin/nologin" create_home: false - name: "Create prometheus directories" become: true ansible.builtin.file: path: "{{ item }}" state: "directory" owner: "prometheus" group: "prometheus" mode: "0755" loop: - "/etc/prometheus" - "/var/lib/prometheus" - name: "Install prometheus packages" become: true ansible.builtin.package: name: - "prometheus" - "prometheus-node-exporter" state: "present" - name: "Create prometheus configuration" become: true ansible.builtin.template: src: "prometheus.yml.j2" dest: "/etc/prometheus/prometheus.yml" owner: "prometheus" group: "prometheus" mode: "0644" notify: "Restart prometheus" # NOTE: show systemd configurations using: systemctl cat prometheus - name: "Configure prometheus host/port via environment file" become: true ansible.builtin.copy: content: | PROMETHEUS_ARGS="--web.listen-address={{ prometheus_host }}:{{ prometheus_port }}" dest: "{{ prometheus_env_file }}" mode: "0644" notify: "Restart prometheus" # NOTE: show systemd configurations using: systemctl cat prometheus-node-exporter - name: "Configure node-exporter host/port via environment file" become: true ansible.builtin.copy: content: | NODE_EXPORTER_ARGS=" --web.listen-address={{ prometheus_host }}:{{ prometheus_node_exporter_port }} --collector.systemd " dest: "{{ prometheus_node_exporter_env_file }}" mode: "0644" notify: "Restart node-exporter" - name: "Start and enable prometheus services" become: true ansible.builtin.systemd_service: name: "{{ item }}" state: "started" enabled: true loop: - "prometheus" - "prometheus-node-exporter"