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