mirror of https://github.com/Aidaho12/haproxy-wi
181 lines
10 KiB
HTML
181 lines
10 KiB
HTML
{% extends "base.html" %}
|
|
{% block title %}{{ lang.menu_links.ha.title }} {% endblock %}
|
|
{% block h2 %}{{ lang.menu_links.ha.title }} {% endblock %}
|
|
{% block content %}
|
|
{% from 'include/input_macros.html' import input, checkbox %}
|
|
<script src="/inc/users.js"></script>
|
|
<script src="/inc/ha.js"></script>
|
|
<link href="/inc/css/ha.css" rel="stylesheet">
|
|
<style>
|
|
p {margin: 0;}
|
|
</style>
|
|
{% if user_status == 0 or user_plan == 'user' %}
|
|
{% include 'include/no_sub.html' %}
|
|
{% elif not is_needed_tool %}
|
|
<div style="text-align: center;">
|
|
<h3>You have not installed Ansible</h3>.
|
|
<img src="{{ url_for('static', filename='images/no_servers.png')}}" alt="There is no server">
|
|
<h4>
|
|
Read <a href="https://roxy-wi.org/installation#ansible" title="{{lang.words.installing|title()}} Ansible" target="_blank">here</a> how to install Ansible.
|
|
</h4>
|
|
</div>
|
|
{% else %}
|
|
<table class="overview" style="margin-bottom: 20px;">
|
|
<caption><h3>{{lang.words.create|title()}} {{lang.words.w_a}} {{lang.words.new}} HA {{lang.words.cluster}}</h3></caption>
|
|
<tr class="overviewHead">
|
|
<td class="padding10 first-collumn">{{lang.words.current2|title()}} {{lang.words.installation}}</td>
|
|
<td class="padding10 first-collumn">{{lang.words.current2|title()}}</td>
|
|
<td class="padding10 first-collumn">{{lang.words.current2|title()}} {{lang.words.installation}}</td>
|
|
<td>{{lang.words.slave|title()}}</td>
|
|
<td><span title="{{lang.phrases.int_vrrp}}">{{lang.words.master|title()}} {{lang.words.interface|title()}}</span></td>
|
|
<td><span title="{{lang.phrases.int_vrrp}}">{{lang.words.slave|title()}} {{lang.words.interface|title()}}</span></td>
|
|
<td>VRRP IP</td>
|
|
<td></td>
|
|
</tr>
|
|
<tr>
|
|
<td class="padding10 first-collumn" id="cur_master_ver"></td>
|
|
<td class="padding10 first-collumn">
|
|
<select id="master">
|
|
<option disabled selected>------</option>
|
|
{% for select in selects %}
|
|
<option value="{{ select.2 }}">{{ select.1 }}</option>
|
|
{% endfor %}
|
|
</select>
|
|
</td>
|
|
<td class="padding10 first-collumn" id="cur_slave_ver"></td>
|
|
<td>
|
|
<select id="slave">
|
|
<option disabled selected>------</option>
|
|
{% for select in selects %}
|
|
<option value="{{ select.2 }}">{{ select.1 }}</option>
|
|
{% endfor %}
|
|
</select>
|
|
</td>
|
|
<td>{{ input('interface', size='7', title=lang.phrases.int_vrrp) }}</td>
|
|
<td>{{ input('slave_interface', size='7', title=lang.phrases.int_vrrp) }}</td>
|
|
<td>{{ input('vrrp-ip', size='14') }}</td>
|
|
</tr>
|
|
<tr class="overviewHead">
|
|
<td class="padding10 first-collumn"></td>
|
|
<td class="help_cursor"><span title="Roxy-WI will add VRRP address as a separated server">{{lang.words.add|title()}} VIRT</span></td>
|
|
<td class="checkbox-head help_cursor" style="padding-left: 20px;" title="If checked, the Keepalived master will not release VRRP if the service is down">{{lang.words.stay|title()}} {{lang.words.as}} {{lang.words.master|title()}}</td>
|
|
<td class="checkbox-head">SYN-flood {{lang.words.protection}}</td>
|
|
<td class="checkbox-head help_cursor" style="padding: 10px 10px 10px 5px;"><span title="Roxy-WI will try to install HAProxy">HAProxy</span></td>
|
|
<td class="checkbox-head help_cursor" style="display: none" id="haproxy_docker_td_header"><span title="Roxy-WI will install HAProxy as Docker container">Docker</span></td>
|
|
<td class="help_cursor" style="padding-left: 5px;"><span title="Roxy-WI will try to install NGINX">NGINX</span></td>
|
|
<td class="checkbox-head help_cursor" style="display: none" id="nginx_docker_td_header"><span title="Roxy-WI will install NGINX as Docker container">Docker</span></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
<tr>
|
|
<td class="padding10 first-collumn"></td>
|
|
<td class="checkbox help_cursor">{{ checkbox('virt_server', title='Roxy-WI will add VRRP address as a separated server', checked='checked') }}</td>
|
|
<td class="syn-flood-protection-field help_cursor">{{ checkbox('return_to_master', title='If checked, the Keepalived master will not release VRRP if the service is down') }}</td>
|
|
<td class="syn-flood-protection-field">{{ checkbox('syn_flood') }}</td>
|
|
<td class="checkbox help_cursor" style="padding: 10px 10px 10px 15px;">{{ checkbox('hap', title='Roxy-WI will try to install HAProxy') }}</td>
|
|
<td class="checkbox help_cursor" style="display: none" id="haproxy_docker_td">{{ checkbox('hap_docker', title='Roxy-WI will install HAProxy as a Docker container') }}</td>
|
|
<td class="checkbox help_cursor">{{ checkbox('nginx', title='Roxy-WI will try to install NGINX') }}</td>
|
|
<td class="checkbox help_cursor" style="display: none" id="nginx_docker_td">{{ checkbox('nginx_docker', title='Roxy-WI will install NGINX as a Docker container') }}</td>
|
|
<td>
|
|
<button id="create" title="Create HA cluster">{{lang.words.create|title()}}</button>
|
|
</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
|
|
<table class="overview">
|
|
<caption><h3>{{lang.words.add|title()}} VRRP {{lang.words.to}} {{lang.words.an}} {{lang.words.existing2}} {{lang.words.cluster}}</h3></caption>
|
|
<tr class="overviewHead">
|
|
<td class="padding10 first-collumn">{{lang.words.current2|title()}} {{lang.words.installation}}</td>
|
|
<td class="padding10 first-collumn">{{lang.words.master|title()}}</td>
|
|
<td class="padding10 first-collumn">{{lang.words.current2|title()}} {{lang.words.installation}}</td>
|
|
<td>{{lang.words.slave|title()}}</td>
|
|
<td><span title="{{lang.phrases.int_vrrp}}">{{lang.words.master|title()}} {{lang.words.interface|title()}}</span></td>
|
|
<td><span title="{{lang.phrases.int_vrrp}}">{{lang.words.slave|title()}} {{lang.words.interface|title()}}</span></td>
|
|
<td>VRRP IP</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="padding10 first-collumn" id="cur_master_ver-add"></td>
|
|
<td class="padding10 first-collumn">
|
|
<select id="master-add">
|
|
<option disabled selected>------</option>
|
|
{% for select in selects %}
|
|
<option value="{{ select.2 }}">{{ select.1 }}</option>
|
|
{% endfor %}
|
|
</select>
|
|
</td>
|
|
<td class="padding10 first-collumn" id="cur_slave_ver-add"></td>
|
|
<td>
|
|
<select id="slave-add">
|
|
<option disabled selected>------</option>
|
|
{% for select in selects %}
|
|
<option value="{{ select.2 }}">{{ select.1 }}</option>
|
|
{% endfor %}
|
|
</select>
|
|
</td>
|
|
<td>{{ input('interface-add', size='7', title=lang.phrases.int_vrrp) }}</td>
|
|
<td>{{ input('slave_interface-add', size='7', title=lang.phrases.int_vrrp) }}</td>
|
|
<td>{{ input('vrrp-ip-add', size='14') }}</td>
|
|
</tr>
|
|
<tr class="overviewHead">
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td class="padding10 first-collumn" style="padding-left: 10px;"><span title="If checked Roxy-WI will restart Keepalived">{{lang.words.restart|title()}}</span></td>
|
|
<td class="help_cursor" title="If checked, Keepalived master will reclaim VRRP after recovered">{{lang.words.return|title()}} {{lang.words.to}} {{lang.words.master|title()}} state</td>
|
|
<td></td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
<td class="padding10 first-collumn checkbox help_cursor">{{ checkbox('kp', title='If checked Roxy-WI will restart Keepalived') }}</td>
|
|
<td class="syn-flood-protection-field">{{ checkbox('add_return_to_master', checked='checked') }}</td>
|
|
<td>
|
|
<button id="add-vrrp" title="Add a HA configuration" style="width: 70px;">{{lang.words.add|title()}}</button>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<div id="ajax"></div>
|
|
<div class="add-note alert addName alert-info" style="width: inherit; margin-right: 15px;">
|
|
{{lang.words.read|title()}} <a href="https://roxy-wi.org/howto.py/ha_cluster" title="How to create high available cluster" target="_blank">{{lang.phrases.howto_ha}}</a>
|
|
</div>
|
|
<div id="server_creating" style="display: none;" title="{{lang.phrases.creating_ha}}">
|
|
<ul style="padding: 20px 20px 0px 20px;font-size: 15px;">
|
|
<li id="creating-master" class="server-creating proccessing">{{lang.words.installing|title()}} {{lang.words.master|title()}} Keepalived...</li>
|
|
<li id="creating-slave" class="server-creating proccessing">{{lang.words.installing|title()}} {{lang.words.slave|title()}} Keepalived...</li>
|
|
<div id="haproxy_installing_div" style="display: none">
|
|
<li id="creating-haproxy-master" class="server-creating">{{lang.words.installing|title()}} {{lang.words.master|title()}} Haproxy...</li>
|
|
<li id="creating-haproxy-slave" class="server-creating">{{lang.words.installing|title()}} {{lang.words.slave|title()}} Haproxy...</li>
|
|
</div>
|
|
<div id="nginx_installing_div" style="display: none">
|
|
<li id="creating-nginx-master" class="server-creating">{{lang.words.installing|title()}} {{lang.words.master|title()}} NGINX...</li>
|
|
<li id="creating-nginx-slave" class="server-creating">{{lang.words.installing|title()}} {{lang.words.slave|title()}} NGINX...</li>
|
|
</div>
|
|
</ul>
|
|
<div id="wait-mess"></div>
|
|
<div id="created-mess" class="alert alert-success" style="display:none;"></div>
|
|
<div id="creating-error" class="alert alert-danger" style="display:none;"></div>
|
|
<div id="creating-warning" class="alert alert-warning" style="display:none;"></div>
|
|
<div class="progress-bar-striped">
|
|
<div id="creating-progress" style="width: 0%;"></div>
|
|
</div>
|
|
</div>
|
|
<div id="address_creating" style="display: none;" title="{{lang.phrases.adding_vrrp}}">
|
|
<ul style="padding: 20px 20px 0px 20px;font-size: 15px;">
|
|
<li id="creating-master-add" class="server-creating proccessing">{{lang.words.creating|title()}} {{lang.words.a}} {{lang.words.new}} {{lang.words.address}} {{lang.words.on}} {{lang.words.master|title()}} Keepalived...</li>
|
|
<li id="creating-slave-add" class="server-creating proccessing">{{lang.words.creating|title()}} {{lang.words.a}} {{lang.words.new}} {{lang.words.address}} {{lang.words.on}} {{lang.words.slave|title()}} Keepalived...</li>
|
|
</ul>
|
|
<div id="wait-mess-add"></div>
|
|
<div id="created-mess-add" class="alert alert-success" style="display:none;"></div>
|
|
<div id="creating-error-add" class="alert alert-danger" style="display:none;"></div>
|
|
<div id="creating-warning-add" class="alert alert-warning" style="display:none;"></div>
|
|
<div class="progress-bar-striped">
|
|
<div id="creating-progress-add" style="width: 0%;"></div>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
{% endblock %}
|