--- - name: Create Prometheus Directories become: yes become_user: frappe file: path: "{{ item }}" state: directory mode: 0755 with_items: - /home/frappe/prometheus - /home/frappe/prometheus/data - /home/frappe/prometheus/rules - /home/frappe/prometheus/file_sd - name: Set Architecture set_fact: arch: "{{'amd64' if (ansible_architecture == 'x86_64') else 'arm64'}}" - name: Download Prometheus Archive become: yes become_user: frappe unarchive: src: "http://git.jingrow.com/prometheus/prometheus/releases/download/v3.7.3/prometheus-3.7.3.linux-{{ arch }}.tar.gz" dest: /tmp remote_src: yes - name: Copy Prometheus and Promtool Binaries become: yes become_user: frappe copy: src: "/tmp/prometheus-3.7.3.linux-{{ arch }}/{{ item }}" dest: "/home/frappe/prometheus/{{ item }}" mode: 0755 remote_src: yes with_items: - prometheus - promtool - name: Configure Prometheus Service Discovery for Monitor Server become: yes become_user: frappe template: src: self.yml dest: /home/frappe/prometheus/file_sd/self.yml force: true mode: 0600 - name: Configure Prometheus Service Discovery for Press Server become: yes become_user: frappe template: src: press.yml.j2 dest: /home/frappe/prometheus/file_sd/press.yml force: true mode: 0600 - name: Set JSON Variables set_fact: registries: "{{ registries_json | from_json }}" clusters: "{{ clusters_json | from_json }}" log_servers: "{{ log_servers_json | from_json }}" - name: Configure Prometheus Service Discovery for Registries become: yes become_user: frappe template: src: registry.yml dest: /home/frappe/prometheus/file_sd/registry.{{ item.name }}.yml force: true mode: 0600 loop: "{{ registries }}" - name: Configure Prometheus Service Discovery for Log Servers become: yes become_user: frappe template: src: log.yml dest: /home/frappe/prometheus/file_sd/log.{{ item.name }}.yml force: true mode: 0600 loop: "{{ log_servers }}" - name: Configure Prometheus template: src: prometheus.yml dest: /home/frappe/prometheus/prometheus.yml validate: "/home/frappe/prometheus/promtool check config %s" - name: Configure ownership permissions on prometheus.yml file: path: /home/frappe/prometheus/prometheus.yml owner: frappe group: frappe mode: 0600 - name: Create Prometheus Systemd Service File template: src: prometheus.service dest: /etc/systemd/system/prometheus.service owner: root group: root mode: 0644 - name: Restart Prometheus Service systemd: daemon_reload: true name: prometheus enabled: yes state: restarted - name: Setup Agent Based Discovery become: yes become_user: frappe command: "/home/jingrow/agent/env/bin/agent setup monitor --url {{ press_url }} --token {{ monitor_token }}" args: chdir: /home/jingrow/agent - name: Setup Cronjob for Agent Based Discovery become: yes become_user: frappe cron: name: agent discovery job: cd /home/jingrow/agent && /home/jingrow/agent/env/bin/agent discover