---
# Install Prometheus alertmanager.

- name: set internal variables, part 1
  set_fact:
    alertmanager_present: yes
    alertmanager_signature: "alertmanager-{{ alertmanager_version }}.linux-amd64"

- name: set internal variables, part 2
  set_fact:
    alertmanager_daemon_dir: "{{ prometheus_install_path }}/{{ alertmanager_signature }}"

- name: set download url
  set_fact:
    alertmanager_tarball_url: "https://github.com/prometheus/alertmanager/releases/download/v{{ alertmanager_version }}/{{ alertmanager_signature }}.tar.gz"

- name: download and uncompress alertmanager tarball
  unarchive:
    src: "{{ alertmanager_tarball_url }}"
    dest: "{{ prometheus_install_path }}"
    copy: no
    owner: "{{ prometheus_user }}"
    group: "{{ prometheus_group }}"
    mode: "go-w"
    creates: "{{ alertmanager_daemon_dir }}"

- name: create alertmanager /usr/local/bin links
  file:
    src: "{{ alertmanager_daemon_dir }}/{{ item }}"
    dest: "/usr/local/bin/{{ item }}"
    state: link
  loop:
    - "alertmanager"
    - "amtool"

- name: mkdir for alertmanager data (silences.json for now)
  file:
    path: "{{ alertmanager_db_path }}"
    state: directory
    owner: "{{ prometheus_user }}"
    group: "{{ prometheus_group }}"
    mode: "u=rwx,g=rx,o="

- name: mkdir for amtool config
  file:
    path: "/etc/amtool"
    state: directory
    owner: "{{ prometheus_user }}"
    group: "{{ prometheus_group }}"
    mode: "u=rwx,g=rx,o=rx"

- name: copy alertmanager systemd config
  template:
    src: "alertmanager.service.j2"
    dest: "/lib/systemd/system/alertmanager.service"
  notify:
    - reload systemd
    - restart alertmanager

- name: install amtool config file
  copy:
    src: "amtool.yml"
    dest: "/etc/amtool/config.yml"

- name: install alertmanager config file
  copy:
    src: "alertmanager.yml"
    dest: "{{ prometheus_config_path }}/alertmanager.yml"
  notify:
    - restart alertmanager

- name: enable alertmanager service
  service:
    name: alertmanager
    enabled: yes
    state: started