You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
hetzner-ansible/roles/postgres/tasks/install_postgres_exporter.yml

83 lines
2.5 KiB
YAML

---
- name: "Delete package <prometheus postgres exporter>"
apt:
name: "prometheus-postgres-exporter"
state: absent
- name: "Check if version is already installed"
ansible.builtin.stat:
path: "{{ postgres_exporter_dir }}/{{ postgres_exporter_dist }}/postgres_exporter"
register: check_pg_exp
- name: "Download and extract pg_exporter"
unarchive:
src: "{{ postgres_exporter_download_url }}"
dest: "{{ postgres_exporter_dir }}"
owner: root
group: root
mode: "u=rwx,g=rx,o=rx"
remote_src: true
creates: "{{ postgres_exporter_dir }}/{{ postgres_exporter_dist }}/postgres_exporter"
when:
- not check_pg_exp.stat.exists
- name: "Create systemd service file"
become: true
template:
src: "postgres_exporter.systemd.j2"
dest: "/etc/systemd/system/postgres_exporter.service"
owner: root
group: root
mode: "u=rw,go=r"
notify:
- restart postgres_exporter
- name: "Create Config for postgres_exporter"
template:
src: "postgres_exporter.default.conf.j2"
dest: "/etc/default/postgres_exporter"
owner: root
group: "{{ postgres_exporter_group }}"
mode: "u=rw,g=r,o="
notify: restart postgres_exporter
- name: "Create file for additional queries"
copy:
dest: '{{ postgres_exporter_home }}/queries.yml'
owner: root
group: '{{ postgres_exporter_group }}'
mode: '0644'
content: "{{ lookup('vars','postgres_exporter_additional_queries') | to_nice_yaml }}"
notify: restart postgres_exporter
- name: "Ensure postgres_exporter up and running"
service:
name: postgres_exporter
state: started
enabled: yes
daemon_reload: yes
- name: Check role prometheus exists # noqa command-instead-of-shell no-changed-when
become: yes
become_user: postgres
shell: "/usr/bin/psql -Atc \"SELECT count(rolname) FROM pg_roles where rolname='prometheus'\""
register: role_check
ignore_errors: yes
- name: "Copy prometheus_postgres_exporter init script"
copy:
src: init.sql
dest: /tmp/prometheus_postgres_exporter.sql
mode: '0755'
when: "role_check.stdout == '0' and server_type == 'master'"
- name: "Execute prometheus_postgres_exporter init script" # noqa command-instead-of-shell
become: true
become_user: postgres
shell: "psql -f /tmp/prometheus_postgres_exporter.sql"
when: "role_check.stdout == '0' and server_type == 'master'"
- name: "Delete prometheus_postgres_exporter init script"
file: path="/tmp/prometheus_postgres_exporter.sql" state=absent
when: "role_check.stdout == '0' and server_type == 'master'"