diff --git a/app/funct.py b/app/funct.py
index 9bd77860..48ce471d 100644
--- a/app/funct.py
+++ b/app/funct.py
@@ -383,6 +383,12 @@ def get_sections(config, **kwargs):
line = line.split(';')[0]
line = line.strip()
return_config.append(line)
+ elif kwargs.get('service') == 'keepalived':
+ import re
+ ip_pattern = re.compile('\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}')
+ find_ip = re.findall(ip_pattern,line)
+ if find_ip:
+ return_config.append(find_ip[0])
else:
if (
line.startswith('listen') or
@@ -915,7 +921,7 @@ def show_haproxy_log(serv, rows=10, waf='0', grep=None, hour='00', minut='00', h
else:
local_path_logs = sql.get_setting('local_path_logs')
commands = ["sudo cat %s| awk '$3>\"%s:00\" && $3<\"%s:00\"' |tail -%s %s %s" % (local_path_logs, date, date1, rows, grep_act, exgrep_act)]
- syslog_server = serv
+ syslog_server = serv
else:
commands = ["sudo cat /var/log/%s/syslog.log | sed '/ %s:00/,/ %s:00/! d' |tail -%s %s %s %s" % (serv, date, date1, rows, grep_act, grep, exgrep_act)]
syslog_server = sql.get_setting('syslog_server')
@@ -1261,22 +1267,22 @@ def check_service(serv, service_name):
def get_services_status():
services = []
- services_name = {'checker_haproxy': 'Checker backends master service',
- 'keep_alive': 'Auto start service',
- 'metrics_haproxy': 'Metrics master service',
- 'portscanner': 'Port scanner service',
- 'smon': 'Simple monitoring network ports',
+ services_name = {'roxy-wi-checker': 'Checker backends master service',
+ 'roxy-wi-keep_alive': 'Auto start service',
+ 'roxy-wi-metrics': 'Metrics master service',
+ 'roxy-wi-portscanner': 'Port scanner service',
+ 'roxy-wi-smon': 'Simple monitoring network ports',
'prometheus': 'Prometheus service',
'grafana-server': 'Grafana service',
'fail2ban': 'Fail2ban service'}
for s, v in services_name.items():
cmd = "systemctl is-active %s" % s
status, stderr = subprocess_execute(cmd)
- if s != 'keep_alive':
+ if s != 'roxy-wi-keep_alive':
service_name = s.split('_')[0]
else:
service_name = s
- cmd = "rpm --query haproxy-wi-" + service_name + "-* |awk -F\"" + service_name + "\" '{print $2}' |awk -F\".noa\" '{print $1}' |sed 's/-//1' |sed 's/-/./'"
+ cmd = "rpm --query " + service_name + "-* |awk -F\"" + service_name + "\" '{print $2}' |awk -F\".noa\" '{print $1}' |sed 's/-//1' |sed 's/-/./'"
service_ver, stderr = subprocess_execute(cmd)
try:
@@ -1285,3 +1291,17 @@ def get_services_status():
services.append([s, status, v, ''])
return services
+
+
+def is_file_exists(serv: str, file: str):
+ cmd = ['[ -f ' + file + ' ] && echo yes || echo no']
+
+ out = ssh_command(serv, cmd)
+ return True if 'yes' in out else False
+
+
+def is_service_active(serv: str, service_name: str):
+ cmd = ['systemctl is-active ' + service_name]
+
+ out = ssh_command(serv, cmd)
+ return True if 'active' in out else False
diff --git a/app/options.py b/app/options.py
index ada15f05..d82ddd35 100644
--- a/app/options.py
+++ b/app/options.py
@@ -392,8 +392,8 @@ if form.getvalue('action_hap') is not None and serv is not None:
commands = ["sudo systemctl %s %s" % (action, haproxy_service_name)]
funct.ssh_command(serv, commands)
- funct.logging(serv, 'HAProxy was ' + action + 'ed', haproxywi=1, login=1)
- print("success: HAProxy was %s" % action)
+ funct.logging(serv, 'HAProxy has been ' + action + 'ed', haproxywi=1, login=1)
+ print("success: HAProxy has been %s" % action)
else:
print("error: Bad config, check please")
@@ -402,8 +402,16 @@ if form.getvalue('action_nginx') is not None and serv is not None:
commands = ["sudo systemctl %s nginx" % action]
funct.ssh_command(serv, commands)
- funct.logging(serv, 'Nginx was ' + action + 'ed', haproxywi=1, login=1)
- print("success: Nginx was %s" % action)
+ funct.logging(serv, 'Nginx has been ' + action + 'ed', haproxywi=1, login=1)
+ print("success: Nginx has been %s" % action)
+
+if form.getvalue('action_keepalived') is not None and serv is not None:
+ action = form.getvalue('action_keepalived')
+
+ commands = ["sudo systemctl %s keepalived" % action]
+ funct.ssh_command(serv, commands)
+ funct.logging(serv, 'Keepalived has been ' + action + 'ed', haproxywi=1, login=1)
+ print("success: Keepalived has been %s" % action)
if form.getvalue('action_waf') is not None and serv is not None:
serv = form.getvalue('serv')
@@ -429,16 +437,22 @@ if act == "overviewHapserverBackends":
env = Environment(loader=FileSystemLoader('templates/ajax'), autoescape=True)
template = env.get_template('haproxyservers_backends.html')
service = form.getvalue('service')
+
if service == 'haproxy':
configs_dir = funct.get_config_var('configs', 'haproxy_save_configs_dir')
format_file = 'cfg'
elif service == 'nginx':
configs_dir = funct.get_config_var('configs', 'nginx_save_configs_dir')
format_file = 'conf'
+ elif service == 'keepalived':
+ configs_dir = funct.get_config_var('configs', 'kp_save_configs_dir')
+ format_file = 'conf'
+
try:
sections = funct.get_sections(configs_dir + funct.get_files(dir=configs_dir, format=format_file)[0], service=service)
except Exception as e:
funct.logging('localhost', str(e), haproxywi=1)
+
try:
cfg = configs_dir + serv + "-" + funct.get_data('config') + '.' + format_file
except Exception as e:
@@ -446,6 +460,8 @@ if act == "overviewHapserverBackends":
try:
if service == 'nginx':
error = funct.get_config(serv, cfg, nginx=1)
+ elif service == 'keepalived':
+ error = funct.get_config(serv, cfg, keepalived=1)
else:
error = funct.get_config(serv, cfg)
except Exception as e:
@@ -891,6 +907,8 @@ if act == "showCompareConfigs":
if form.getvalue('service') == 'nginx':
return_files = funct.get_files(funct.get_config_var('configs', 'nginx_save_configs_dir'), 'conf')
+ elif form.getvalue('service') == 'keepalived':
+ return_files = funct.get_files(funct.get_config_var('configs', 'kp_save_configs_dir'), 'conf')
else:
return_files = funct.get_files()
@@ -904,6 +922,8 @@ if serv is not None and form.getvalue('right') is not None:
right = form.getvalue('right')
if form.getvalue('service') == 'nginx':
configs_dir = funct.get_config_var('configs', 'nginx_save_configs_dir')
+ elif form.getvalue('service') == 'keepalived':
+ configs_dir = funct.get_config_var('configs', 'kp_save_configs_dir')
else:
configs_dir = funct.get_config_var('configs', 'haproxy_save_configs_dir')
cmd = 'diff -pub %s%s %s%s' % (configs_dir, left, configs_dir, right)
@@ -923,11 +943,12 @@ if serv is not None and act == "configShow":
cookie = http.cookies.SimpleCookie(os.environ.get("HTTP_COOKIE"))
user_uuid = cookie.get('uuid')
role_id = sql.get_user_role_by_uuid(user_uuid.value)
+ service = form.getvalue('service')
- if form.getvalue('service') == 'keepalived':
+ if service == 'keepalived':
configs_dir = funct.get_config_var('configs', 'kp_save_configs_dir')
cfg = '.conf'
- elif form.getvalue('service') == 'nginx':
+ elif service == 'nginx':
configs_dir = funct.get_config_var('configs', 'nginx_save_configs_dir')
cfg = '.conf'
else:
@@ -936,8 +957,10 @@ if serv is not None and act == "configShow":
if form.getvalue('configver') is None:
cfg = configs_dir + serv + "-" + funct.get_data('config') + cfg
- if form.getvalue('service') == 'nginx':
+ if service == 'nginx':
funct.get_config(serv, cfg, nginx=1)
+ elif service == 'keepalived':
+ funct.get_config(serv, cfg, keepalived=1)
else:
funct.get_config(serv, cfg)
else:
@@ -959,7 +982,7 @@ if serv is not None and act == "configShow":
serv=serv,
configver=form.getvalue('configver'),
role=role_id,
- service=form.getvalue('service'),
+ service=service,
is_serv_protected=is_serv_protected)
print(template)
@@ -1351,7 +1374,7 @@ if form.getvalue('installwaf'):
if form.getvalue('update_haproxy_wi'):
service = form.getvalue('service')
- services = ['checker_haproxy', 'haproxy-wi', 'keep_alive', 'smon', 'metrics_haproxy']
+ services = ['roxy-wi-checker', 'haproxy-wi', 'roxy-wi-keep_alive', 'roxy-wi-smon', 'roxy-wi-metrics']
if service not in services:
print('error: ' + service + ' is not part of Roxy-WI')
sys.exit()
diff --git a/app/overview.py b/app/overview.py
index b260e21d..f627e6b7 100644
--- a/app/overview.py
+++ b/app/overview.py
@@ -72,15 +72,15 @@ try:
prometheus, stderr = funct.subprocess_execute(cmd)
host = os.environ.get('HTTP_HOST', '')
- cmd = "systemctl is-active metrics_haproxy"
+ cmd = "systemctl is-active roxy-wi-metrics"
metrics_master, stderr = funct.subprocess_execute(cmd)
- cmd = "systemctl is-active checker_haproxy"
+ cmd = "systemctl is-active roxy-wi-checker"
checker_master, stderr = funct.subprocess_execute(cmd)
- cmd = "systemctl is-active keep_alive"
+ cmd = "systemctl is-active roxy-wi-keep_alive"
keep_alive, stderr = funct.subprocess_execute(cmd)
- cmd = "systemctl is-active smon"
+ cmd = "systemctl is-active roxy-wi-smon"
smon, stderr = funct.subprocess_execute(cmd)
- cmd = "systemctl is-active portscanner"
+ cmd = "systemctl is-active roxy-wi-portscanner"
port_scanner, stderr = funct.subprocess_execute(cmd)
except Exception as e:
diff --git a/app/templates/ajax/load_updatehapwi.html b/app/templates/ajax/load_updatehapwi.html
index 499d2f2f..7760f742 100644
--- a/app/templates/ajax/load_updatehapwi.html
+++ b/app/templates/ajax/load_updatehapwi.html
@@ -22,38 +22,38 @@
{% for s in services %}
- {% if s.0 == 'smon' or s.0 == 'checker_haproxy' or s.0 == 'keep_alive' or s.0 == 'metrics_haproxy' or s.0 == 'portscanner' %}
+ {% if s.0 == 'roxy-wi-smon' or s.0 == 'roxy-wi-checker' or s.0 == 'roxy-wi-keep_alive' or s.0 == 'roxy-wi-metrics' or s.0 == 'roxy-wi-portscanner' %}
{% set is_need_update = 0 %}
- {% if s.0 == 'smon' %}
+ {% if s.0 == 'roxy-wi-smon' %}
{% set service_name = 'SMON' %}
{% set service_link = 'smon' %}
{% set desc_link = 'https://haproxy-wi.org/services.py?service=smon' %}
{% if s.3|float < smon_ver|float %}
{% set is_need_update = 1 %}
{% endif %}
-{% elif s.0 == 'checker_haproxy' %}
+{% elif s.0 == 'roxy-wi-checker' %}
{% set service_name = 'Checker' %}
{% set service_link = 'checker' %}
{% set desc_link = 'https://haproxy-wi.org/services.py?service=checker' %}
{% if s.3|float < checker_ver|float %}
{% set is_need_update = 1 %}
{% endif %}
-{% elif s.0 == 'keep_alive' %}
+{% elif s.0 == 'roxy-wi-keep_alive' %}
{% set service_name = 'Auto start' %}
{% set service_link = 'auto_start' %}
{% set desc_link = 'https://haproxy-wi.org/services.py?service=auto_start' %}
{% if s.3|float < keep_ver|float %}
{% set is_need_update = 1 %}
{% endif %}
-{% elif s.0 == 'metrics_haproxy' %}
+{% elif s.0 == 'roxy-wi-metrics' %}
{% set service_name = 'Metrics' %}
{% set service_link = 'metrics' %}
{% set desc_link = 'https://haproxy-wi.org/services.py?service=metrics' %}
{% if s.3|float < metrics_ver|float %}
{% set is_need_update = 1 %}
{% endif %}
-{% elif s.0 == 'portscanner' %}
+{% elif s.0 == 'roxy-wi-portscanner' %}
{% set service_name = 'Port scanner' %}
{% set service_link = 'portscanner' %}
{% set desc_link = 'https://haproxy-wi.org/services.py?service={{service_link}}' %}
@@ -71,15 +71,15 @@
- {% if s.0 == 'smon' %}
+ {% if s.0 == 'roxy-wi-smon' %}
{{smon_ver}}
- {% elif s.0 == 'checker_haproxy' %}
+ {% elif s.0 == 'roxy-wi-checker' %}
{{checker_ver}}
- {% elif s.0 == 'keep_alive' %}
+ {% elif s.0 == 'roxy-wi-keep_alive' %}
{{keep_ver}}
- {% elif s.0 == 'metrics_haproxy' %}
+ {% elif s.0 == 'roxy-wi-metrics' %}
{{metrics_ver}}
- {% elif s.0 == 'portscanner' %}
+ {% elif s.0 == 'roxy-wi-portscanner' %}
{{portscanner_ver}}
{% endif %}
diff --git a/app/templates/include/add_servers.html b/app/templates/include/add_servers.html
index f6afd23b..c5f3f2a1 100644
--- a/app/templates/include/add_servers.html
+++ b/app/templates/include/add_servers.html
@@ -7,16 +7,16 @@
:
-
+
- :
+ :
- :
+ :
diff --git a/app/templates/include/admin_servers.html b/app/templates/include/admin_servers.html
index 5e206fec..f68a7d58 100644
--- a/app/templates/include/admin_servers.html
+++ b/app/templates/include/admin_servers.html
@@ -5,23 +5,23 @@
|
Hostname |
IP |
- Port |
+ Port |
{% if page != "servers.py" %}
Group |
{% endif %}
Enabled |
-
+ |
Virt
|
HAProxy |
Nginx |
-
+ |
Firewalld
|
-
+ |
Protected
|
-
+ |
Slave for
|
Credentials |
diff --git a/app/templates/include/admin_ssh.html b/app/templates/include/admin_ssh.html
index 9ed86416..2e87b81c 100644
--- a/app/templates/include/admin_ssh.html
+++ b/app/templates/include/admin_ssh.html
@@ -1,15 +1,15 @@
-
+ |
Name
|
-
+ |
SSH key
|
{% if page != "servers.py" %}
Group |
{% endif %}
-
+ |
Credentials
|
|
@@ -63,7 +63,7 @@