124 lines
3.1 KiB
YAML
124 lines
3.1 KiB
YAML
---
|
|
- 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
|