diff --git a/environments/just-created/hosts.yml b/environments/just-created/hosts.yml index f6953dc..1d68c6c 100644 --- a/environments/just-created/hosts.yml +++ b/environments/just-created/hosts.yml @@ -28,8 +28,8 @@ lxc: # keys must be unique, i.e. only one 'hosts' per group #prometheus.guaranteedstruggle.host: #pipisa.guaranteedstruggle.host: - - pg-tf.guaranteedstruggle.host: + alertmanager.guaranteedstruggle.host: + #pg-tf.guaranteedstruggle.host: # pg.just-for-me.internal: # grafana.just-for-me.internal: # price-loader.just-for-me.internal: \ No newline at end of file diff --git a/environments/proxmoxes/hosts.yml b/environments/proxmoxes/hosts.yml index 0226c0f..f580b11 100644 --- a/environments/proxmoxes/hosts.yml +++ b/environments/proxmoxes/hosts.yml @@ -67,9 +67,11 @@ lxc: vault.guaranteedstruggle.host: prometheus.guaranteedstruggle.host: + alertmanager.guaranteedstruggle.host: pg-tf.guaranteedstruggle.host: - pg.just-for-me.internal: - grafana.just-for-me.internal: - price-loader.just-for-me.internal: + №№№№ + # # pg.just-for-me.internal: + # # grafana.just-for-me.internal: + # # price-loader.just-for-me.internal: diff --git a/playbooks/software/alertmanager.yml b/playbooks/software/alertmanager.yml new file mode 100644 index 0000000..d79c6c4 --- /dev/null +++ b/playbooks/software/alertmanager.yml @@ -0,0 +1,124 @@ +--- +- 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-{{prom_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'ом ? \ No newline at end of file