From 78b558282c3d2593708071332975dd9baa1eb9b1 Mon Sep 17 00:00:00 2001 From: Pavel Loginov Date: Tue, 18 Oct 2022 19:26:20 +0300 Subject: [PATCH] v6.2.2.0 Changelog: https://roxy-wi.org/changelog#6_2_2 --- .../roles/apache_exporter/defaults/main.yml | 3 + .../roles/apache_exporter/tasks/main.yml | 71 ++++++++++++------- .../roles/haproxy_exporter/tasks/main.yml | 4 ++ .../roles/nginx_exporter/tasks/main.yml | 22 +++--- inc/users.js | 6 +- 5 files changed, 62 insertions(+), 44 deletions(-) diff --git a/app/scripts/ansible/roles/apache_exporter/defaults/main.yml b/app/scripts/ansible/roles/apache_exporter/defaults/main.yml index 15aac73f..3dc2bc66 100644 --- a/app/scripts/ansible/roles/apache_exporter/defaults/main.yml +++ b/app/scripts/ansible/roles/apache_exporter/defaults/main.yml @@ -5,4 +5,7 @@ apache_exporter_telemetry_endpoint: "/metrics" apache_exporter_incecure: "false" stats_page: "stats" apache_exporter_scrape_uri: "http://{{host}}/{{stats_page}}?auto" +apache_exporter_signature: "apache_exporter-{{ apache_exporter_version }}.linux-{{ go_arch_map[ansible_architecture] | default(ansible_architecture) }}" prometheus_exporter_dir: "/opt/prometheus/exporters" +prometheus_exporter_dist_dir: "{{ prometheus_exporter_dir }}/dist" +apache_exporter_dist_dir: "{{ prometheus_exporter_dist_dir }}/{{ apache_exporter_signature }}" diff --git a/app/scripts/ansible/roles/apache_exporter/tasks/main.yml b/app/scripts/ansible/roles/apache_exporter/tasks/main.yml index c5176e0e..99a64872 100644 --- a/app/scripts/ansible/roles/apache_exporter/tasks/main.yml +++ b/app/scripts/ansible/roles/apache_exporter/tasks/main.yml @@ -29,37 +29,54 @@ mode: "u=rwx,go=rx" state: directory -- name: Download apache_exporter binary to local folder +- name: download tarball + become: true + become_user: root + ignore_errors: yes get_url: url: "https://github.com/Lusitaniae/apache_exporter/releases/download/v{{ apache_exporter_version }}/apache_exporter-{{ apache_exporter_version }}.linux-{{ go_arch_map[ansible_architecture] | default(ansible_architecture) }}.tar.gz" - dest: "/tmp/apache_exporter-{{ apache_exporter_version }}.linux-{{ go_arch_map[ansible_architecture] | default(ansible_architecture) }}.tar.gz" - checksum: "sha256:{{ __apache_exporter_checksum }}" - register: _download_binary - until: _download_binary is succeeded - retries: 5 - delay: 2 - delegate_to: localhost - check_mode: false - -- name: Unpack apache_exporter binary - unarchive: - src: "/tmp/apache_exporter-{{ apache_exporter_version }}.linux-{{ go_arch_map[ansible_architecture] | default(ansible_architecture) }}.tar.gz" - dest: "/tmp" - creates: "/tmp/apache_exporter-{{ apache_exporter_version }}.linux-{{ go_arch_map[ansible_architecture] | default(ansible_architecture) }}/apache_exporter" - delegate_to: localhost - check_mode: false - -- name: Propagate apache_exporter binaries - become: true - copy: - src: "/tmp/apache_exporter-{{ apache_exporter_version }}.linux-{{ go_arch_map[ansible_architecture] | default(ansible_architecture) }}/apache_exporter" - dest: "{{prometheus_exporter_dir}}/apache_exporter" - mode: 0755 + dest: "{{ prometheus_exporter_dist_dir }}/{{ apache_exporter_signature }}.tar.gz" owner: root group: root - notify: - - restart apache exporter - when: not ansible_check_mode + register: _download_binary + until: _download_binary is succeeded + retries: 5 + delay: 2 + mode: "u=rwx,go=rx" + +- name: make distribution directory + become: true + become_user: root + file: + path: "{{ apache_exporter_dist_dir }}" + owner: root + group: root + mode: "u=rwx,go=rx" + state: directory + +- name: untar tarball + become: true + become_user: root + unarchive: + src: "{{ prometheus_exporter_dist_dir }}/{{ apache_exporter_signature }}.tar.gz" + dest: "{{ prometheus_exporter_dist_dir }}" + remote_src: true + owner: root + group: root + mode: "u=rwx,go=rx" + creates: "{{ apache_exporter_dist_dir }}/apache-prometheus-exporter" + +- name: symlink + become: true + become_user: root + file: + src: "{{ apache_exporter_dist_dir }}/apache_exporter" + path: "{{ prometheus_exporter_dir }}/apache_exporter" + owner: root + group: root + force: true + state: link + notify: restart apache exporter - name: Copy the apache_exporter systemd service file become: true diff --git a/app/scripts/ansible/roles/haproxy_exporter/tasks/main.yml b/app/scripts/ansible/roles/haproxy_exporter/tasks/main.yml index a04cc68c..02ad3d9b 100644 --- a/app/scripts/ansible/roles/haproxy_exporter/tasks/main.yml +++ b/app/scripts/ansible/roles/haproxy_exporter/tasks/main.yml @@ -51,6 +51,10 @@ dest: "{{ prometheus_exporter_dist_dir }}/{{ haproxy_exporter_signature }}.tar.gz" owner: root group: root + register: _download_binary + until: _download_binary is succeeded + retries: 5 + delay: 2 mode: "u=rw,go=r" - name: untar tarball diff --git a/app/scripts/ansible/roles/nginx_exporter/tasks/main.yml b/app/scripts/ansible/roles/nginx_exporter/tasks/main.yml index 37115a59..ab2b421b 100644 --- a/app/scripts/ansible/roles/nginx_exporter/tasks/main.yml +++ b/app/scripts/ansible/roles/nginx_exporter/tasks/main.yml @@ -52,6 +52,10 @@ dest: "{{ prometheus_exporter_dist_dir }}/{{ nginx_exporter_signature }}.tar.gz" owner: root group: root + register: _download_binary + until: _download_binary is succeeded + retries: 5 + delay: 2 mode: "u=rwx,go=rx" when: nginx_exporter_version is version('0.9.0', '>=') @@ -64,6 +68,10 @@ dest: "{{ prometheus_exporter_dist_dir }}/{{ nginx_exporter_signature }}.tar.gz" owner: root group: root + register: _download_binary + until: _download_binary is succeeded + retries: 5 + delay: 2 mode: "u=rwx,go=rx" when: nginx_exporter_version is version('0.8.0', '<=') @@ -100,20 +108,6 @@ group: root mode: "u=rwx,go=rx" creates: "{{ nginx_exporter_dist_dir }}/nginx-prometheus-exporter" -# when: nginx_exporter_version is version('0.9.0', '>=') -# -#- name: untar tarball alt -# become: true -# become_user: root -# unarchive: -# src: "{{ prometheus_exporter_dist_dir }}/{{ nginx_exporter_signature_alt }}.tar.gz" -# dest: "{{ nginx_exporter_dist_dir }}" -# remote_src: true -# owner: root -# group: root -# mode: "u=rwx,go=rx" -# creates: "{{ nginx_exporter_dist_dir }}/nginx-prometheus-exporter" -# when: nginx_exporter_version is version('0.8.0', '<=') - name: symlink become: true diff --git a/inc/users.js b/inc/users.js index bef63ed5..cb43b4fa 100644 --- a/inc/users.js +++ b/inc/users.js @@ -329,7 +329,7 @@ $( function() { if (data.indexOf('error:') != '-1') { toastr.clear(); toastr.error(data); - } else if(data == 'no' || data == '' || data.indexOf('No') != '-1' || data.indexOf('No such file or directory') != '-1') { + } else if(data == 'no' || data == '' || data.indexOf('No') != '-1') { $('#cur_haproxy_exp_ver').text('HAProxy exporter has been not installed'); } else { $('#cur_haproxy_exp_ver').text(data); @@ -352,7 +352,7 @@ $( function() { if (data.indexOf('error:') != '-1') { toastr.clear(); toastr.error(data); - } else if(data == 'no' || data == '' || data.indexOf('No such file or directory') != '-1') { + } else if(data == 'no' || data == '' || data.indexOf('No') != '-1') { $('#cur_nginx_exp_ver').text('NGINX exporter has not been installed'); } else { $('#cur_nginx_exp_ver').text(data); @@ -375,7 +375,7 @@ $( function() { if (data.indexOf('error:') != '-1') { toastr.clear(); toastr.error(data); - } else if(data == 'no' || data == '' || data.indexOf('No such file or directory') != '-1') { + } else if(data == 'no' || data == '' || data.indexOf('No') != '-1') { $('#cur_apache_exp_ver').text('Apache exporter has not been installed'); } else { $('#cur_apache_exp_ver').text(data);