ansible-repo/playbooks/software/alertmanager.yml
2025-04-15 02:18:12 +10:00

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'ом ?