mirror of https://github.com/Aidaho12/haproxy-wi
parent
3ed145aac4
commit
a7ab2ae888
|
@ -318,7 +318,7 @@ def generate_service_inv(json_data: json, install_service: str) -> object:
|
||||||
return inv, server_ips
|
return inv, server_ips
|
||||||
|
|
||||||
|
|
||||||
def run_ansible(inv: object, server_ips: str, ansible_role: str, service: str) -> object:
|
def run_ansible(inv: object, server_ips: str, ansible_role: str) -> object:
|
||||||
inventory_path = '/var/www/haproxy-wi/app/scripts/ansible/inventory'
|
inventory_path = '/var/www/haproxy-wi/app/scripts/ansible/inventory'
|
||||||
inventory = f'{inventory_path}/{ansible_role}.json'
|
inventory = f'{inventory_path}/{ansible_role}.json'
|
||||||
proxy = sql.get_setting('proxy')
|
proxy = sql.get_setting('proxy')
|
||||||
|
@ -380,3 +380,29 @@ def run_ansible(inv: object, server_ips: str, ansible_role: str, service: str) -
|
||||||
|
|
||||||
os.remove(inventory)
|
os.remove(inventory)
|
||||||
return stats
|
return stats
|
||||||
|
|
||||||
|
|
||||||
|
def service_actions_after_install(server_ips: str, service: str, json_data) -> None:
|
||||||
|
is_docker = None
|
||||||
|
json_data = json.loads(json_data)
|
||||||
|
update_functions = {
|
||||||
|
'haproxy': sql.update_haproxy,
|
||||||
|
'nginx': sql.update_nginx,
|
||||||
|
'apache': sql.update_apache,
|
||||||
|
'keepalived': sql.update_keepalived,
|
||||||
|
}
|
||||||
|
|
||||||
|
for server_ip in server_ips:
|
||||||
|
server_id = sql.select_server_id_by_ip(server_ip)
|
||||||
|
try:
|
||||||
|
update_functions[service](server_ip)
|
||||||
|
except Exception as e:
|
||||||
|
raise Exception(f'error: Cannot activate {service} on server {server_ip}: {e}')
|
||||||
|
|
||||||
|
if service != 'keepalived':
|
||||||
|
is_docker = json_data['services'][service]['docker']
|
||||||
|
|
||||||
|
if is_docker == '1' and service != 'keepalived':
|
||||||
|
sql.insert_or_update_service_setting(server_id, service, 'dockerized', '1')
|
||||||
|
|
||||||
|
sql.insert_or_update_service_setting(server_id, service, 'restart', '1')
|
||||||
|
|
|
@ -251,45 +251,3 @@ def ha_vip(service, cluster_id):
|
||||||
return 'ok'
|
return 'ok'
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return f'error: Cannot delete VIP: {e}'
|
return f'error: Cannot delete VIP: {e}'
|
||||||
|
|
||||||
|
|
||||||
@bp.route('/<service>/reconfigure/<install_service>', methods=['PUT'])
|
|
||||||
@check_services
|
|
||||||
def reconfigure_haproxy(service, install_service):
|
|
||||||
json_data = request.form.get('jsonData')
|
|
||||||
update_functions = {
|
|
||||||
'haproxy': sql.update_haproxy,
|
|
||||||
'nginx': sql.update_nginx,
|
|
||||||
'apache': sql.update_apache,
|
|
||||||
}
|
|
||||||
generate_functions = {
|
|
||||||
'haproxy': installation.generate_haproxy_inv,
|
|
||||||
'nginx': installation.generate_service_inv,
|
|
||||||
'apache': installation.generate_service_inv,
|
|
||||||
'keepalived': installation.generate_kp_inv,
|
|
||||||
}
|
|
||||||
inv, server_ips = generate_functions[install_service](json_data, install_service)
|
|
||||||
json_data = json.loads(json_data)
|
|
||||||
is_docker = None
|
|
||||||
|
|
||||||
if install_service == 'keepalived':
|
|
||||||
nice_service_name = 'HA cluster'
|
|
||||||
else:
|
|
||||||
service_desc = sql.select_service(install_service)
|
|
||||||
nice_service_name = service_desc.service
|
|
||||||
is_docker = json_data['services'][install_service]['docker']
|
|
||||||
|
|
||||||
for server_ip in server_ips:
|
|
||||||
if install_service == 'keepalived':
|
|
||||||
continue
|
|
||||||
try:
|
|
||||||
update_functions[install_service](server_ip)
|
|
||||||
except Exception as e:
|
|
||||||
return str(e)
|
|
||||||
|
|
||||||
if is_docker == '1':
|
|
||||||
server_id = sql.select_server_id_by_ip(server_ip)
|
|
||||||
sql.insert_or_update_service_setting(server_id, install_service, 'dockerized', '1')
|
|
||||||
sql.insert_or_update_service_setting(server_id, install_service, 'restart', '1')
|
|
||||||
|
|
||||||
return installation.run_ansible(inv, server_ips, install_service, nice_service_name), 201
|
|
||||||
|
|
|
@ -38,14 +38,17 @@ def install_monitoring():
|
||||||
@bp.post('/<service>')
|
@bp.post('/<service>')
|
||||||
@check_services
|
@check_services
|
||||||
def install_service(service):
|
def install_service(service):
|
||||||
|
json_data = request.form.get('jsonData')
|
||||||
|
generate_functions = {
|
||||||
|
'haproxy': service_mod.generate_haproxy_inv,
|
||||||
|
'nginx': service_mod.generate_service_inv,
|
||||||
|
'apache': service_mod.generate_service_inv,
|
||||||
|
'keepalived': service_mod.generate_kp_inv,
|
||||||
|
}
|
||||||
|
|
||||||
try:
|
try:
|
||||||
json_data = request.form.get('jsonData')
|
|
||||||
generate_functions = {
|
|
||||||
'haproxy': service_mod.generate_haproxy_inv,
|
|
||||||
'nginx': service_mod.generate_service_inv,
|
|
||||||
'apache': service_mod.generate_service_inv,
|
|
||||||
}
|
|
||||||
inv, server_ips = generate_functions[service](json_data, service)
|
inv, server_ips = generate_functions[service](json_data, service)
|
||||||
|
service_mod.service_actions_after_install(server_ips, service, json_data)
|
||||||
return service_mod.run_ansible(inv, server_ips, service, service), 201
|
return service_mod.run_ansible(inv, server_ips, service, service), 201
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return str(e)
|
return str(e)
|
||||||
|
|
|
@ -415,7 +415,7 @@ function installServiceCluster(jsonData, service, progress_step) {
|
||||||
var nice_service_name = {'keepalived': 'HA Custer', 'haproxy': 'HAProxy', 'nginx': 'NGINX', 'apache': 'Apache'};
|
var nice_service_name = {'keepalived': 'HA Custer', 'haproxy': 'HAProxy', 'nginx': 'NGINX', 'apache': 'Apache'};
|
||||||
$('#server_creating_list').append('<li id="' + li_id + servers['cluster_id'] + '" class="server-creating proccessing">' + install_mess + ' ' + nice_service_name[service] + '</li>');
|
$('#server_creating_list').append('<li id="' + li_id + servers['cluster_id'] + '" class="server-creating proccessing">' + install_mess + ' ' + nice_service_name[service] + '</li>');
|
||||||
return $.ajax({
|
return $.ajax({
|
||||||
url: "/app/ha/cluster/reconfigure/" + service,
|
url: "/app/install/" + service,
|
||||||
type: "PUT",
|
type: "PUT",
|
||||||
statusCode: {
|
statusCode: {
|
||||||
500: function () {
|
500: function () {
|
||||||
|
|
Loading…
Reference in New Issue