124 lines
3.3 KiB
YAML
124 lines
3.3 KiB
YAML
---
|
|
- name: prom
|
|
hosts:
|
|
- alertmanager.guaranteedstruggle.host
|
|
vars:
|
|
alertmanager_version: '0.28.1'
|
|
gather_facts: yes
|
|
become: yes
|
|
tasks:
|
|
|
|
- name: Ensure group "prometheus" exists
|
|
ansible.builtin.group:
|
|
name: prometheus
|
|
state: present
|
|
- name: Add user "prometheus"
|
|
ansible.builtin.user:
|
|
name: prometheus
|
|
groups: prometheus
|
|
shell: /sbin/nologin
|
|
create_home: no
|
|
append: yes
|
|
comment: "prometheus nologin User"
|
|
state: present
|
|
|
|
- name: Creates directory
|
|
ansible.builtin.file:
|
|
path: /etc/alertmanager
|
|
state: directory
|
|
group: prometheus
|
|
owner: prometheus
|
|
- name: Creates directory
|
|
ansible.builtin.file:
|
|
path: /usr/share/alertmanager
|
|
state: directory
|
|
group: prometheus
|
|
owner: prometheus
|
|
- name: Creates directory
|
|
ansible.builtin.file:
|
|
path: /etc/alertmanager/templates
|
|
state: directory
|
|
group: prometheus
|
|
owner: prometheus
|
|
|
|
- name: Unarchive a file that needs to be downloaded (added in 2.0)
|
|
ansible.builtin.unarchive:
|
|
src: https://github.com/prometheus/alertmanager/releases/download/v{{alertmanager_version}}/alertmanager-{{alertmanager_version}}.linux-amd64.tar.gz
|
|
dest: /usr/share/alertmanager
|
|
creates: /usr/share/alertmanager/alertmanager-{{alertmanager_version}}.linux-amd64
|
|
remote_src: yes
|
|
|
|
|
|
- name: Create a symbolic link
|
|
ansible.builtin.file:
|
|
src: /usr/share/alertmanager/alertmanager-{{alertmanager_version}}.linux-amd64/alertmanager
|
|
dest: /usr/sbin/alertmanager
|
|
owner: prometheus
|
|
group: prometheus
|
|
state: link
|
|
notify:
|
|
- restart alertmanager
|
|
|
|
- name: Create a symbolic link
|
|
ansible.builtin.file:
|
|
src: /usr/share/alertmanager/alertmanager-{{alertmanager_version}}.linux-amd64/amtool
|
|
dest: /usr/sbin/amtool
|
|
owner: prometheus
|
|
group: prometheus
|
|
state: link
|
|
|
|
- name: Copy alertmanager.yaml
|
|
register: alertmanager_config_file
|
|
copy:
|
|
src: ../../files/alertmanager/alertmanager.yaml
|
|
dest: /etc/alertmanager/alertmanager.yaml
|
|
notify:
|
|
- reload alertmanager
|
|
- name: Copy template
|
|
register: template_file
|
|
copy:
|
|
src: ../../files/alertmanager/simple_telegram.tmpl
|
|
dest: /etc/alertmanager/templates/my.tmpl
|
|
notify:
|
|
- reload alertmanager
|
|
- name: Copy prom web-config
|
|
register: web_config_file
|
|
copy:
|
|
src: ../../files/prometheus/web-config.yaml
|
|
dest: /etc/prometheus/web-config.yaml
|
|
notify:
|
|
- reload alertmanager
|
|
|
|
|
|
- name: Copy alertmanager.service
|
|
register: alertmanager_service_file
|
|
copy:
|
|
src: ../../files/alertmanager/alertmanager.service
|
|
dest: /etc/systemd/system/alertmanager.service
|
|
|
|
|
|
- name: ensure service
|
|
ansible.builtin.systemd_service:
|
|
name: alertmanager
|
|
state: started
|
|
enabled: true
|
|
|
|
|
|
- name: Just force systemd to reread configs
|
|
ansible.builtin.systemd_service:
|
|
daemon_reload: true
|
|
when: alertmanager_service_file.changed
|
|
|
|
|
|
|
|
handlers:
|
|
- name: reload alertmanager
|
|
ansible.builtin.systemd_service:
|
|
name: alertmanager
|
|
state: reloaded
|
|
- name: restart alertmanager
|
|
ansible.builtin.systemd_service:
|
|
name: alertmanager
|
|
state: restarted
|
|
|
|
#### TODO как откатывать неудачную проверку promtool'ом ? |