mirror of https://github.com/Aidaho12/haproxy-wi
parent
5b1230e96f
commit
7e3dd0c56c
|
@ -976,7 +976,7 @@ def update_db_v_6_3_4():
|
|||
for i in sql:
|
||||
try:
|
||||
cursor.execute(i)
|
||||
except Exception as e:
|
||||
except Exception:
|
||||
pass
|
||||
else:
|
||||
print('Updating... DB has been updated to version 6.3.4.0')
|
||||
|
|
|
@ -22,7 +22,7 @@ def backup(serv, rpath, time, backup_type, rserver, cred, deljob, update, descri
|
|||
deljob = ''
|
||||
if sql.check_exists_backup(serv):
|
||||
print(f'warning: Backup job for {serv} already exists')
|
||||
sys.exit()
|
||||
return None
|
||||
|
||||
os.system(f"cp scripts/{script} .")
|
||||
|
||||
|
|
|
@ -57,6 +57,8 @@ def get_exp_version(server_ip: str, service_name: str) -> str:
|
|||
commands = ["node_exporter --version 2>&1 |head -1|awk '{print $3}'"]
|
||||
elif service_name == 'apache_exporter':
|
||||
commands = ["/opt/prometheus/exporters/apache_exporter --version 2>&1 |head -1|awk '{print $3}'"]
|
||||
elif service_name == 'keepalived_exporter':
|
||||
commands = ["systemctl list-units --full -all |grep keepalived_exporter"]
|
||||
|
||||
ver = server_mod.ssh_command(server_ip, commands)
|
||||
|
||||
|
|
|
@ -78,11 +78,11 @@ def nginx_apache_exp_installation():
|
|||
os.remove(script)
|
||||
|
||||
|
||||
def node_exp_installation():
|
||||
serv = common.is_ip_or_dns(form.getvalue('node_exp_install'))
|
||||
def node_keepalived_exp_installation(service: str) -> None:
|
||||
serv = common.is_ip_or_dns(form.getvalue(f'{service}_exp_install'))
|
||||
ver = common.checkAjaxInput(form.getvalue('exporter_v'))
|
||||
ext_prom = common.checkAjaxInput(form.getvalue('ext_prom'))
|
||||
script = "install_node_exporter.sh"
|
||||
script = f"install_{service}_exporter.sh"
|
||||
proxy = sql.get_setting('proxy')
|
||||
proxy_serv = ''
|
||||
ssh_settings = return_ssh_keys_path(serv)
|
||||
|
@ -93,7 +93,7 @@ def node_exp_installation():
|
|||
proxy_serv = proxy
|
||||
|
||||
commands = [
|
||||
f"chmod +x {script} && ./{script} PROXY={proxy_serv} SSH_PORT={ssh_settings['port']} VER={ver} EXP_PROM={ext_prom} "
|
||||
f"chmod +x {script} && ./{script} PROXY={proxy_serv} SSH_PORT={ssh_settings['port']} VER={ver} EXP_PROM={ext_prom} "
|
||||
f"HOST={serv} USER={ssh_settings['user']} PASS='{ssh_settings['password']}' KEY={ssh_settings['key']}"
|
||||
]
|
||||
|
||||
|
|
|
@ -419,7 +419,14 @@ if form.getvalue('nginx_exp_install') or form.getvalue('apache_exp_install'):
|
|||
if form.getvalue('node_exp_install'):
|
||||
import modules.service.exporter_installation as exp_installation
|
||||
|
||||
exp_installation.node_exp_installation()
|
||||
service = 'node'
|
||||
exp_installation.node_keepalived_exp_installation(service)
|
||||
|
||||
if form.getvalue('keepalived_exp_install'):
|
||||
import modules.service.exporter_installation as exp_installation
|
||||
|
||||
service = 'keepalived'
|
||||
exp_installation.node_keepalived_exp_installation(service)
|
||||
|
||||
if form.getvalue('backup') or form.getvalue('deljob') or form.getvalue('backupupdate'):
|
||||
import modules.service.backup as backup_mod
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
- hosts: "{{ variable_host }}"
|
||||
become: yes
|
||||
become_method: sudo
|
||||
tasks:
|
||||
- name: Set SSH port
|
||||
set_fact:
|
||||
ansible_port: "{{SSH_PORT}}"
|
||||
|
||||
- name: Open stat port for iptables
|
||||
iptables:
|
||||
chain: INPUT
|
||||
destination_port: "9650"
|
||||
jump: ACCEPT
|
||||
protocol: tcp
|
||||
ignore_errors: yes
|
||||
|
||||
roles:
|
||||
- role: keepalived_exporter
|
||||
environment:
|
||||
http_proxy: "{{PROXY}}"
|
||||
https_proxy: "{{PROXY}}"
|
|
@ -0,0 +1,12 @@
|
|||
---
|
||||
keepalived_exporter_version: 0.3.0
|
||||
keepalived_exporter_binary_local_dir: ""
|
||||
keepalived_exporter_web_listen_address: "0.0.0.0:9650"
|
||||
|
||||
keepalived_exporter_enabled_collectors: []
|
||||
keepalived_exporter_disabled_collectors: []
|
||||
|
||||
keepalived_exporter_binary_install_dir: "/usr/local/bin"
|
||||
keepalived_exporter_system_group: "keepalived-exp"
|
||||
keepalived_exporter_system_user: "{{ keepalived_exporter_system_group }}"
|
||||
keepalived_exporter_create_usergroup: true
|
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
- name: restart keepalived_exporter
|
||||
become: true
|
||||
systemd:
|
||||
daemon_reload: true
|
||||
name: keepalived_exporter
|
||||
state: restarted
|
|
@ -0,0 +1,19 @@
|
|||
---
|
||||
- name: Copy the Keepalived Exporter systemd service file
|
||||
template:
|
||||
src: keepalived_exporter.service.j2
|
||||
dest: /etc/systemd/system/keepalived_exporter.service
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0644
|
||||
notify: restart keepalived_exporter
|
||||
|
||||
- name: Allow Keepalived Exporter port in SELinux on RedHat OS family
|
||||
seport:
|
||||
ports: "{{ keepalived_exporter_web_listen_address.split(':')[-1] }}"
|
||||
proto: tcp
|
||||
setype: http_port_t
|
||||
state: present
|
||||
when:
|
||||
- ansible_version.full is version_compare('2.4', '>=')
|
||||
- ansible_selinux.status == "enabled"
|
|
@ -0,0 +1,69 @@
|
|||
---
|
||||
- name: Create the keepalived_exporter group
|
||||
group:
|
||||
name: "{{ keepalived_exporter_system_group }}"
|
||||
state: present
|
||||
system: true
|
||||
when:
|
||||
- keepalived_exporter_system_group != "root"
|
||||
- keepalived_exporter_create_usergroup
|
||||
|
||||
- name: Create the keepalived_exporter user
|
||||
user:
|
||||
name: "{{ keepalived_exporter_system_user }}"
|
||||
groups: "{{ keepalived_exporter_system_group }}"
|
||||
append: true
|
||||
shell: /usr/sbin/nologin
|
||||
system: true
|
||||
create_home: false
|
||||
home: /
|
||||
when:
|
||||
- keepalived_exporter_system_user != "root"
|
||||
- keepalived_exporter_create_usergroup
|
||||
|
||||
- name: Download keepalived_exporter from localhost
|
||||
block:
|
||||
- name: Download keepalived_exporter binary to local folder
|
||||
become: false
|
||||
get_url:
|
||||
url: "https://github.com/gen2brain/keepalived_exporter/releases/download/{{ keepalived_exporter_version }}/keepalived_exporter-{{ keepalived_exporter_version }}-{{ go_arch }}.tar.gz"
|
||||
dest: "/tmp/keepalived_exporter-{{ keepalived_exporter_version }}-{{ go_arch }}.tar.gz"
|
||||
#checksum: "sha256:{{ keepalived_exporter_checksum }}"
|
||||
register: _download_binary
|
||||
until: _download_binary is succeeded
|
||||
retries: 5
|
||||
delay: 2
|
||||
delegate_to: localhost
|
||||
check_mode: false
|
||||
|
||||
- name: Unpack keepalived_exporter binary
|
||||
become: false
|
||||
unarchive:
|
||||
src: "/tmp/keepalived_exporter-{{ keepalived_exporter_version }}-{{ go_arch }}.tar.gz"
|
||||
dest: "/tmp"
|
||||
creates: "/tmp/keepalived_exporter-{{ keepalived_exporter_version }}-{{ go_arch }}/keepalived_exporter"
|
||||
remote_src: true
|
||||
delegate_to: localhost
|
||||
check_mode: false
|
||||
|
||||
- name: Propagate keepalived_exporter binaries
|
||||
copy:
|
||||
src: "/tmp/keepalived_exporter-{{ keepalived_exporter_version }}-{{ go_arch }}/keepalived_exporter"
|
||||
dest: "{{ keepalived_exporter_binary_install_dir }}/keepalived_exporter"
|
||||
mode: 0755
|
||||
owner: root
|
||||
group: root
|
||||
remote_src: true
|
||||
notify: restart keepalived_exporter
|
||||
when: not ansible_check_mode
|
||||
when: keepalived_exporter_binary_local_dir | length == 0
|
||||
|
||||
- name: propagate locally distributed keepalived_exporter binary
|
||||
copy:
|
||||
src: "{{ keepalived_exporter_binary_local_dir }}/keepalived_exporter"
|
||||
dest: "{{ keepalived_exporter_binary_install_dir }}/keepalived_exporter"
|
||||
mode: 0755
|
||||
owner: root
|
||||
group: root
|
||||
when: keepalived_exporter_binary_local_dir | length > 0
|
||||
notify: restart keepalived_exporter
|
|
@ -0,0 +1,33 @@
|
|||
---
|
||||
- import_tasks: preflight.yml
|
||||
tags:
|
||||
- keepalived_exporter_install
|
||||
- keepalived_exporter_configure
|
||||
- keepalived_exporter_run
|
||||
|
||||
- import_tasks: install.yml
|
||||
become: true
|
||||
when: (not __keepalived_exporter_is_installed.stat.exists) or (__keepalived_exporter_current_version_output.stderr_lines[0].split(" ")[2] != keepalived_exporter_version)
|
||||
tags:
|
||||
- keepalived_exporter_install
|
||||
|
||||
- import_tasks: selinux.yml
|
||||
become: true
|
||||
when: ansible_selinux.status == "enabled"
|
||||
tags:
|
||||
- keepalived_exporter_configure
|
||||
|
||||
- import_tasks: configure.yml
|
||||
become: true
|
||||
tags:
|
||||
- keepalived_exporter_configure
|
||||
|
||||
- name: Ensure Keepalived Exporter is enabled on boot
|
||||
become: true
|
||||
systemd:
|
||||
daemon_reload: true
|
||||
name: keepalived_exporter
|
||||
enabled: true
|
||||
state: started
|
||||
tags:
|
||||
- keepalived_exporter_run
|
|
@ -0,0 +1,88 @@
|
|||
---
|
||||
- name: Assert usage of systemd as an init system
|
||||
assert:
|
||||
that: ansible_service_mgr == 'systemd'
|
||||
msg: "This role only works with systemd"
|
||||
|
||||
- name: Get systemd version
|
||||
command: systemctl --version
|
||||
changed_when: false
|
||||
check_mode: false
|
||||
register: __systemd_version
|
||||
tags:
|
||||
- skip_ansible_lint
|
||||
|
||||
- name: Set systemd version fact
|
||||
set_fact:
|
||||
keepalived_exporter_systemd_version: "{{ __systemd_version.stdout_lines[0] | regex_replace('^systemd\\s(\\d+).*$', '\\1') }}"
|
||||
|
||||
- name: Naive assertion of proper listen address
|
||||
assert:
|
||||
that:
|
||||
- "':' in keepalived_exporter_web_listen_address"
|
||||
|
||||
- name: Assert collectors are not both disabled and enabled at the same time
|
||||
assert:
|
||||
that:
|
||||
- "item not in keepalived_exporter_enabled_collectors"
|
||||
with_items: "{{ keepalived_exporter_disabled_collectors }}"
|
||||
|
||||
- name: Check if keepalived_exporter is installed
|
||||
stat:
|
||||
path: "{{ keepalived_exporter_binary_install_dir }}/keepalived_exporter"
|
||||
register: __keepalived_exporter_is_installed
|
||||
check_mode: false
|
||||
tags:
|
||||
- keepalived_exporter_install
|
||||
|
||||
- name: Gather currently installed keepalived_exporter version (if any)
|
||||
command: "{{ keepalived_exporter_binary_install_dir }}/keepalived_exporter --version"
|
||||
args:
|
||||
warn: false
|
||||
changed_when: false
|
||||
register: __keepalived_exporter_current_version_output
|
||||
check_mode: false
|
||||
when: __keepalived_exporter_is_installed.stat.exists
|
||||
tags:
|
||||
- keepalived_exporter_install
|
||||
- skip_ansible_lint
|
||||
|
||||
- name: Get latest release version
|
||||
block:
|
||||
- name: Get latest release
|
||||
uri:
|
||||
url: "https://api.github.com/repos/gen2brain/keepalived_exporter/releases/latest"
|
||||
method: GET
|
||||
return_content: true
|
||||
status_code: 200
|
||||
body_format: json
|
||||
validate_certs: false
|
||||
user: "{{ lookup('env', 'GH_USER') | default(omit) }}"
|
||||
password: "{{ lookup('env', 'GH_TOKEN') | default(omit) }}"
|
||||
no_log: "{{ not lookup('env', 'MOLECULE_DEBUG') | bool }}"
|
||||
register: _latest_release
|
||||
until: _latest_release.status == 200
|
||||
retries: 5
|
||||
|
||||
- name: "Set keepalived_exporter version to {{ _latest_release.json.tag_name[1:] }}"
|
||||
set_fact:
|
||||
keepalived_exporter_version: "{{ _latest_release.json.tag_name[1:] }}"
|
||||
when:
|
||||
- keepalived_exporter_version == "latest"
|
||||
- keepalived_exporter_binary_local_dir | length == 0
|
||||
delegate_to: localhost
|
||||
run_once: true
|
||||
#- name: Get checksum list from github according to version
|
||||
# block:
|
||||
# - name: Get checksum list from github
|
||||
# set_fact:
|
||||
# _checksums: "{{ lookup('url', 'https://github.com/gen2brain/keepalived_exporter/releases/download/v' + keepalived_exporter_version + '/keepalived_exporter_0.3.0_checksums.txt', wantlist=True) | list }}"
|
||||
# run_once: true
|
||||
#
|
||||
# - name: "Get checksum for {{ go_arch }} architecture"
|
||||
# set_fact:
|
||||
# keepalived_exporter_checksum: "{{ item.split(' ')[0] }}"
|
||||
# with_items: "{{ _checksums }}"
|
||||
# when:
|
||||
# - "('linux-' + go_arch + '.tar.gz') in item"
|
||||
# when: keepalived_exporter_binary_local_dir | length == 0
|
|
@ -0,0 +1,38 @@
|
|||
---
|
||||
- name: Install selinux python packages [RHEL]
|
||||
package:
|
||||
name:
|
||||
- "{{ ( (ansible_facts.distribution_major_version | int) < 8) | ternary('libselinux-python','python3-libselinux') }}"
|
||||
- "{{ ( (ansible_facts.distribution_major_version | int) < 8) | ternary('libselinux-python','python3-policycoreutils') }}"
|
||||
state: present
|
||||
register: _install_selinux_packages
|
||||
until: _install_selinux_packages is success
|
||||
retries: 5
|
||||
delay: 2
|
||||
when:
|
||||
- (ansible_distribution | lower == "redhat") or
|
||||
(ansible_distribution | lower == "centos")
|
||||
|
||||
- name: Install selinux python packages [Fedora]
|
||||
package:
|
||||
name:
|
||||
- "{{ ( (ansible_facts.distribution_major_version | int) < 29) | ternary('libselinux-python','python3-libselinux') }}"
|
||||
- "{{ ( (ansible_facts.distribution_major_version | int) < 29) | ternary('libselinux-python','python3-policycoreutils') }}"
|
||||
state: present
|
||||
register: _install_selinux_packages
|
||||
until: _install_selinux_packages is success
|
||||
retries: 5
|
||||
delay: 2
|
||||
when:
|
||||
- ansible_distribution | lower == "fedora"
|
||||
|
||||
- name: Install selinux python packages [clearlinux]
|
||||
package:
|
||||
name: sysadmin-basic
|
||||
state: present
|
||||
register: _install_selinux_packages
|
||||
until: _install_selinux_packages is success
|
||||
retries: 5
|
||||
delay: 2
|
||||
when:
|
||||
- ansible_distribution | lower == "clearlinux"
|
|
@ -0,0 +1,51 @@
|
|||
{{ ansible_managed | comment }}
|
||||
|
||||
[Unit]
|
||||
Description=Prometheus Keepalived Exporter
|
||||
After=network-online.target
|
||||
#StartLimitInterval=0
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
#User={{ keepalived_exporter_system_user }}
|
||||
#Group={{ keepalived_exporter_system_group }}
|
||||
ExecStart={{ keepalived_exporter_binary_install_dir }}/keepalived_exporter \
|
||||
{% for collector in keepalived_exporter_enabled_collectors -%}
|
||||
{% if not collector is mapping %}
|
||||
--collector.{{ collector }} \
|
||||
{% else -%}
|
||||
{% set name, options = (collector.items()|list)[0] -%}
|
||||
--collector.{{ name }} \
|
||||
{% for k,v in options|dictsort %}
|
||||
--collector.{{ name }}.{{ k }}={{ v }} \
|
||||
{% endfor -%}
|
||||
{% endif -%}
|
||||
{% endfor -%}
|
||||
{% for collector in keepalived_exporter_disabled_collectors %}
|
||||
--no-collector.{{ collector }} \
|
||||
{% endfor %}
|
||||
--web.listen-address={{ keepalived_exporter_web_listen_address }}
|
||||
|
||||
SyslogIdentifier=keepalived_exporter
|
||||
Restart=always
|
||||
RestartSec=1
|
||||
|
||||
#PrivateTmp=yes
|
||||
{% for m in ansible_mounts if m.mount == '/home' %}
|
||||
#ProtectHome=read-only
|
||||
{% else %}
|
||||
#ProtectHome=yes
|
||||
{% endfor %}
|
||||
#NoNewPrivileges=yes
|
||||
|
||||
{% if keepalived_exporter_systemd_version | int >= 232 %}
|
||||
ProtectSystem=strict
|
||||
ProtectControlGroups=true
|
||||
ProtectKernelModules=true
|
||||
ProtectKernelTunables=yes
|
||||
{% else %}
|
||||
ProtectSystem=full
|
||||
{% endif %}
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
go_arch_map:
|
||||
x86_64: "amd64"
|
||||
|
||||
go_arch: "{{ go_arch_map[ansible_architecture] | default(ansible_architecture) }}"
|
|
@ -0,0 +1,49 @@
|
|||
#!/bin/bash
|
||||
for ARGUMENT in "$@"
|
||||
do
|
||||
KEY=$(echo $ARGUMENT | cut -f1 -d=)
|
||||
VALUE=$(echo $ARGUMENT | cut -f2 -d=)
|
||||
|
||||
case "$KEY" in
|
||||
PROXY) PROXY=${VALUE} ;;
|
||||
HOST) HOST=${VALUE} ;;
|
||||
USER) USER=${VALUE} ;;
|
||||
PASS) PASS=${VALUE} ;;
|
||||
KEY) KEY=${VALUE} ;;
|
||||
VER) VER=${VALUE} ;;
|
||||
EXP_PROM) EXP_PROM=${VALUE} ;;
|
||||
SSH_PORT) SSH_PORT=${VALUE} ;;
|
||||
*)
|
||||
esac
|
||||
done
|
||||
|
||||
export ANSIBLE_HOST_KEY_CHECKING=False
|
||||
export ANSIBLE_DISPLAY_SKIPPED_HOSTS=False
|
||||
export ACTION_WARNINGS=False
|
||||
export LOCALHOST_WARNING=False
|
||||
export COMMAND_WARNINGS=False
|
||||
|
||||
PWD=`pwd`
|
||||
PWD=$PWD/scripts/ansible/
|
||||
echo "$HOST ansible_port=$SSH_PORT" > $PWD/$HOST
|
||||
|
||||
if [[ $KEY == "" ]]; then
|
||||
ansible-playbook $PWD/roles/keepalived_exporter.yml -e "ansible_user=$USER ansible_ssh_pass='$PASS' variable_host=$HOST PROXY=$PROXY SSH_PORT=$SSH_PORT keepalived_exporter_version=$VER" -i $PWD/$HOST
|
||||
else
|
||||
ansible-playbook $PWD/roles/keepalived_exporter.yml --key-file $KEY -e "ansible_user=$USER variable_host=$HOST PROXY=$PROXY SSH_PORT=$SSH_PORT keepalived_exporter_version=$VER" -i $PWD/$HOST
|
||||
fi
|
||||
|
||||
if [ $? -gt 0 ]
|
||||
then
|
||||
echo "error: Can't install Keepalived exporter <br /><br />"
|
||||
exit 1
|
||||
fi
|
||||
if [ "$EXP_PROM" == 0 ]
|
||||
then
|
||||
if ! sudo grep -Fxq " - $HOST:9650" /etc/prometheus/prometheus.yml; then
|
||||
sudo echo " - $HOST:9650" | sudo tee -a /etc/prometheus/prometheus.yml > /dev/null
|
||||
sudo systemctl reload prometheus 2>> /dev/null
|
||||
fi
|
||||
fi
|
||||
|
||||
rm -f $PWD/$HOST
|
|
@ -133,6 +133,37 @@
|
|||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table id="keepalived-table">
|
||||
<caption><h3>Install Keepalived Exporter</h3></caption>
|
||||
<tr class="overviewHead">
|
||||
<td class="padding10 first-collumn" style="width: 20%;">Current installation</td>
|
||||
<td class="padding10 first-collumn" style="width: 30%;">Available Versions</td>
|
||||
<td class="padding10 first-collumn" style="width: 30%;">Server</td>
|
||||
<td class="help_cursor" style="width: 20%;" title="This exporter will be used by an external Prometheus. Also use this checkbox if you update the Exporter">External Prometheus</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="cur_keepalived_exp_ver" class="padding10 first-collumn"></td>
|
||||
<td class="padding10 first-collumn" style="width: 20%;">
|
||||
{% set values = dict() %}
|
||||
{% set values = {'0.1.0':'0.1.0', '0.2.0':'0.2.0', '0.3.0':'0.3.0', '0.4.0':'0.4.0', '0.5.0':'0.5.0'} %}
|
||||
{{ select('keepalivedexpver', values=values, selected='0.5.0') }}
|
||||
</td>
|
||||
<td class="padding10 first-collumn">
|
||||
<select autofocus required name="keepalived_exp_addserv" id="keepalived_exp_addserv">
|
||||
<option disabled selected>------</option>
|
||||
{% for select in servers %}
|
||||
<option value="{{ select.2 }}">{{ select.1 }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
<td style="padding-left: 50px;">{{ checkbox('keepalived_ext_prom', title="This exporter will be used by an external Prometheus. Also use this checkbox if you update the Exporter") }}</td>
|
||||
<td>
|
||||
<span class="ui-button ui-widget ui-corner-all" id="keepalived_exp_install" title="Install Keepalived Exporter">Install</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table style="margin-top: 20px" id="node-table">
|
||||
<caption><h3>Install Node Exporter</h3></caption>
|
||||
<tr class="overviewHead">
|
||||
|
|
61
inc/users.js
61
inc/users.js
|
@ -196,6 +196,43 @@ $( function() {
|
|||
}
|
||||
} );
|
||||
});
|
||||
$('#keepalived_exp_install').click(function() {
|
||||
$("#ajaxmon").html('')
|
||||
$("#ajaxmon").html(wait_mess);
|
||||
var ext_prom = 0;
|
||||
if ($('#keepalived_ext_prom').is(':checked')) {
|
||||
ext_prom = '1';
|
||||
}
|
||||
$.ajax( {
|
||||
url: "options.py",
|
||||
data: {
|
||||
keepalived_exp_install: $('#keepalived_exp_addserv').val(),
|
||||
exporter_v: $('#keepalivedexpver').val(),
|
||||
ext_prom: ext_prom,
|
||||
token: $('#token').val()
|
||||
},
|
||||
type: "POST",
|
||||
success: function( data ) {
|
||||
data = data.replace(/\s+/g,' ');
|
||||
$("#ajaxmon").html('');
|
||||
if (data.indexOf('error:') != '-1' || data.indexOf('FAILED') != '-1' || data.indexOf('UNREACHABLE') != '-1') {
|
||||
var p_err = show_pretty_ansible_error(data);
|
||||
toastr.error(p_err);
|
||||
} else if (data.indexOf('success') != '-1' ){
|
||||
toastr.clear();
|
||||
toastr.success(data);
|
||||
$('#cur_keepalived_exp_ver').text('Keepalived exporter is installed');
|
||||
$("#keepalived_exp_addserv").trigger( "selectmenuchange" );
|
||||
} else if (data.indexOf('Info') != '-1' ){
|
||||
toastr.clear();
|
||||
toastr.info(data);
|
||||
} else {
|
||||
toastr.clear();
|
||||
toastr.info(data);
|
||||
}
|
||||
}
|
||||
} );
|
||||
});
|
||||
$('#node_exp_install').click(function() {
|
||||
$("#ajaxmon").html('')
|
||||
$("#ajaxmon").html(wait_mess);
|
||||
|
@ -308,6 +345,30 @@ $( function() {
|
|||
}
|
||||
} );
|
||||
});
|
||||
$( "#keepalived_exp_addserv" ).on('selectmenuchange',function() {
|
||||
$.ajax( {
|
||||
url: "options.py",
|
||||
data: {
|
||||
get_exporter_v: 'keepalived_exporter',
|
||||
serv: $('#keepalived_exp_addserv option:selected').val(),
|
||||
token: $('#token').val()
|
||||
},
|
||||
type: "POST",
|
||||
success: function( data ) {
|
||||
data = data.replace(/^\s+|\s+$/g,'');
|
||||
if (data.indexOf('error:') != '-1') {
|
||||
toastr.clear();
|
||||
toastr.error(data);
|
||||
} else if (data.indexOf('keepalived_exporter.service') != '-1') {
|
||||
$('#cur_keepalived_exp_ver').text('Keepalived exporter has been installed');
|
||||
} else if(data == 'no' || data == '' || data.indexOf('No') != '-1') {
|
||||
$('#cur_keepalived_exp_ver').text('Keepalived exporter has not been installed');
|
||||
} else {
|
||||
$('#cur_keepalived_exp_ver').text(data);
|
||||
}
|
||||
}
|
||||
} );
|
||||
});
|
||||
$( "#node_exp_addserv" ).on('selectmenuchange',function() {
|
||||
$.ajax( {
|
||||
url: "options.py",
|
||||
|
|
Loading…
Reference in New Issue