--- - 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: Creates directory ansible.builtin.file: path: /alertmanager-data 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/alertmanager/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'ом ?