temp:改进配置管理界面。
parent
a98df86d19
commit
750df290c8
|
@ -579,7 +579,7 @@ class InstallerLinux(InstallerBase):
|
||||||
def _start_service(self):
|
def _start_service(self):
|
||||||
cc.v('')
|
cc.v('')
|
||||||
cc.o('start services...')
|
cc.o('start services...')
|
||||||
_ret, _ = utils.sys_exec('service teleport start', direct_output=True)
|
_ret, _ = utils.sys_exec('/etc/init.d/teleport start', direct_output=True)
|
||||||
if _ret != 0:
|
if _ret != 0:
|
||||||
raise RuntimeError('not all services started.')
|
raise RuntimeError('not all services started.')
|
||||||
|
|
||||||
|
@ -612,7 +612,7 @@ class InstallerLinux(InstallerBase):
|
||||||
def _check_service(self):
|
def _check_service(self):
|
||||||
cc.v('')
|
cc.v('')
|
||||||
cc.o('check services status...')
|
cc.o('check services status...')
|
||||||
utils.sys_exec('service teleport status', direct_output=True)
|
utils.sys_exec('/etc/init.d/teleport status', direct_output=True)
|
||||||
|
|
||||||
|
|
||||||
def _main():
|
def _main():
|
||||||
|
|
|
@ -12,89 +12,6 @@ PATH_ROOT=$(cd "$(dirname "$0")"; pwd)
|
||||||
PATH_TARGET=/usr/local/eom
|
PATH_TARGET=/usr/local/eom
|
||||||
|
|
||||||
"${PATH_ROOT}/data/bin/tp_web" --py "${PATH_ROOT}/script/main.py"
|
"${PATH_ROOT}/data/bin/tp_web" --py "${PATH_ROOT}/script/main.py"
|
||||||
exit 0
|
|
||||||
|
|
||||||
|
|
||||||
if [ ! -d "${PATH_TARGET}" ]; then
|
|
||||||
mkdir -p "${PATH_TARGET}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -f /etc/init.d/eom_ts ]; then
|
|
||||||
service eom_ts stop
|
|
||||||
rm -rf /etc/init.d/eom_ts
|
|
||||||
fi
|
|
||||||
rm -rf /etc/rc2.d/S50eom_ts
|
|
||||||
rm -rf /etc/rc3.d/S50eom_ts
|
|
||||||
rm -rf /etc/rc4.d/S50eom_ts
|
|
||||||
rm -rf /etc/rc5.d/S50eom_ts
|
|
||||||
|
|
||||||
|
|
||||||
if [ -f /etc/init.d/teleport ]; then
|
|
||||||
service teleport stop
|
|
||||||
rm -rf /etc/init.d/teleport
|
|
||||||
fi
|
|
||||||
rm -rf /etc/rc2.d/S50teleport
|
|
||||||
rm -rf /etc/rc3.d/S50teleport
|
|
||||||
rm -rf /etc/rc4.d/S50teleport
|
|
||||||
rm -rf /etc/rc5.d/S50teleport
|
|
||||||
|
|
||||||
sleep 1
|
|
||||||
echo ""
|
|
||||||
echo "Installing EOM Teleport Server..."
|
|
||||||
|
|
||||||
cd "${PATH_TARGET}"
|
|
||||||
tar -zxvf "${PATH_ROOT}/data/teleport.tar.gz" >/dev/null
|
|
||||||
cd "${PATH_ROOT}"
|
|
||||||
|
|
||||||
if [ ! -d "${PATH_TARGET}/teleport/etc" ]; then
|
|
||||||
cp -r "${PATH_TARGET}/teleport/tmp/etc" "${PATH_TARGET}/teleport/etc"
|
|
||||||
else
|
|
||||||
if [ ! -f "${PATH_TARGET}/teleport/etc/web.ini" ]; then
|
|
||||||
cp "${PATH_TARGET}/teleport/tmp/etc/web.ini" "${PATH_TARGET}/teleport/etc/web.ini"
|
|
||||||
fi
|
|
||||||
if [ ! -f "${PATH_TARGET}/teleport/etc/core.ini" ]; then
|
|
||||||
cp "${PATH_TARGET}/teleport/tmp/etc/core.ini" "${PATH_TARGET}/teleport/etc/core.ini"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -d "${PATH_TARGET}/teleport/data" ]; then
|
|
||||||
cp -r "${PATH_TARGET}/teleport/tmp/data" "${PATH_TARGET}/teleport/data"
|
|
||||||
fi
|
|
||||||
|
|
||||||
chmod +x "${PATH_TARGET}/teleport/bin/tp_core"
|
|
||||||
chmod +x "${PATH_TARGET}/teleport/bin/tp_web"
|
|
||||||
|
|
||||||
echo "Generate daemon startup script..."
|
|
||||||
|
|
||||||
cp "${PATH_ROOT}/data/start.sh" "${PATH_TARGET}/teleport/."
|
|
||||||
chmod +x "${PATH_TARGET}/teleport/start.sh"
|
|
||||||
cp "${PATH_ROOT}/data/stop.sh" "${PATH_TARGET}/teleport/."
|
|
||||||
chmod +x "${PATH_TARGET}/teleport/stop.sh"
|
|
||||||
cp "${PATH_ROOT}/data/status.sh" "${PATH_TARGET}/teleport/."
|
|
||||||
chmod +x "${PATH_TARGET}/teleport/status.sh"
|
|
||||||
|
|
||||||
cp "${PATH_ROOT}/data/daemon" /etc/init.d/teleport
|
|
||||||
chmod +x /etc/init.d/teleport
|
|
||||||
|
|
||||||
ln -s /etc/init.d/teleport /etc/rc2.d/S50teleport
|
|
||||||
ln -s /etc/init.d/teleport /etc/rc3.d/S50teleport
|
|
||||||
ln -s /etc/init.d/teleport /etc/rc4.d/S50teleport
|
|
||||||
ln -s /etc/init.d/teleport /etc/rc5.d/S50teleport
|
|
||||||
|
|
||||||
# Upgrade database...
|
|
||||||
"${PATH_TARGET}/teleport/bin/tp_web" --py "${PATH_TARGET}/teleport/www/teleport/app/eom_upgrade.py"
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "Start teleport server..."
|
|
||||||
echo ""
|
|
||||||
service teleport start
|
|
||||||
echo ""
|
|
||||||
sleep 1
|
|
||||||
echo "Check teleport server status..."
|
|
||||||
echo ""
|
|
||||||
service teleport status
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo -e "\e[32mInstallation done.\033[0m"
|
echo -e "\e[32mInstallation done.\033[0m"
|
||||||
|
|
|
@ -30,13 +30,13 @@ class ConfigFile(AttrDict):
|
||||||
self['core'] = AttrDict()
|
self['core'] = AttrDict()
|
||||||
self['core']['ssh'] = AttrDict()
|
self['core']['ssh'] = AttrDict()
|
||||||
self['core']['ssh']['enable'] = False
|
self['core']['ssh']['enable'] = False
|
||||||
self['core']['ssh']['port'] = 52189
|
self['core']['ssh']['port'] = 0 # 52189
|
||||||
self['core']['rdp'] = AttrDict()
|
self['core']['rdp'] = AttrDict()
|
||||||
self['core']['rdp']['enable'] = False
|
self['core']['rdp']['enable'] = False
|
||||||
self['core']['rdp']['port'] = 52089
|
self['core']['rdp']['port'] = 0 # 52089
|
||||||
self['core']['telnet'] = AttrDict()
|
self['core']['telnet'] = AttrDict()
|
||||||
self['core']['telnet']['enable'] = False
|
self['core']['telnet']['enable'] = False
|
||||||
self['core']['telnet']['port'] = 52389
|
self['core']['telnet']['port'] = 0 # 52389
|
||||||
|
|
||||||
def load(self, cfg_file):
|
def load(self, cfg_file):
|
||||||
if not os.path.exists(cfg_file):
|
if not os.path.exists(cfg_file):
|
||||||
|
@ -113,6 +113,10 @@ class ConfigFile(AttrDict):
|
||||||
|
|
||||||
self['core']['replay_path'] = conf_data['replay-path']
|
self['core']['replay_path'] = conf_data['replay-path']
|
||||||
|
|
||||||
|
# TODO: ...
|
||||||
|
if 'web_server_rpc' in conf_data:
|
||||||
|
self['core']['web_server_rpc'] = conf_data['web_server_rpc']
|
||||||
|
|
||||||
except IndexError:
|
except IndexError:
|
||||||
log.e('invalid core config.\n')
|
log.e('invalid core config.\n')
|
||||||
return False
|
return False
|
||||||
|
|
|
@ -106,10 +106,12 @@ controllers = [
|
||||||
(r'/host/sys-user/update', host.SysUserUpdate),
|
(r'/host/sys-user/update', host.SysUserUpdate),
|
||||||
(r'/host/sys-user/delete', host.SysUserDelete),
|
(r'/host/sys-user/delete', host.SysUserDelete),
|
||||||
|
|
||||||
(r'/set/update-config', set.UpdateConfig),
|
# (r'/set/update-config', set.UpdateConfig),
|
||||||
# (r'/set/os-operator', set.OsOperator),
|
# (r'/set/os-operator', set.OsOperator),
|
||||||
(r'/set/', set.IndexHandler),
|
(r'/set/info', set.InfoHandler),
|
||||||
(r'/set', set.IndexHandler),
|
(r'/set/db', set.DatabaseHandler),
|
||||||
|
# (r'/set/', set.IndexHandler),
|
||||||
|
# (r'/set', set.IndexHandler),
|
||||||
|
|
||||||
(r'/uidesign', index.UIDesignHandler),
|
(r'/uidesign', index.UIDesignHandler),
|
||||||
(r'/uidesign/without-sidebar', index.UIDesignWithoutSidebarHandler),
|
(r'/uidesign/without-sidebar', index.UIDesignWithoutSidebarHandler),
|
||||||
|
|
|
@ -3,161 +3,128 @@
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
import platform
|
import platform
|
||||||
import re
|
# import re
|
||||||
import socket
|
# import socket
|
||||||
import subprocess
|
# import subprocess
|
||||||
import threading
|
import threading
|
||||||
import time
|
import time
|
||||||
|
|
||||||
from eom_app.app.configs import app_cfg
|
from eom_app.app.configs import app_cfg
|
||||||
from eom_app.module import host
|
# from eom_app.module import host
|
||||||
from eom_app.module import set
|
from eom_app.module import set
|
||||||
from .base import TPBaseAdminAuthHandler, TPBaseAdminAuthJsonHandler
|
from .base import TPBaseAdminAuthHandler, TPBaseAdminAuthJsonHandler
|
||||||
|
|
||||||
cfg = app_cfg()
|
cfg = app_cfg()
|
||||||
|
|
||||||
|
|
||||||
def get_local_ip():
|
# def get_local_ip():
|
||||||
iplist = []
|
# iplist = []
|
||||||
PLATFORM = platform.system().lower()
|
# PLATFORM = platform.system().lower()
|
||||||
try:
|
|
||||||
if PLATFORM == "windows":
|
|
||||||
ip_info = socket.gethostbyname_ex(socket.gethostname())
|
|
||||||
return ip_info[2]
|
|
||||||
else:
|
|
||||||
ipstr = '([0-9]{1,3}\.){3}[0-9]{1,3}'
|
|
||||||
ipconfig_process = subprocess.Popen("ifconfig", stdout=subprocess.PIPE)
|
|
||||||
output = ipconfig_process.stdout.read()
|
|
||||||
ip_pattern = re.compile('(inet addr:%s)' % ipstr)
|
|
||||||
pattern = re.compile(ipstr)
|
|
||||||
|
|
||||||
for ipaddr in re.finditer(ip_pattern, str(output)):
|
|
||||||
ip = pattern.search(ipaddr.group())
|
|
||||||
if ip.group() != "127.0.0.1":
|
|
||||||
iplist.append(ip.group())
|
|
||||||
return iplist
|
|
||||||
except Exception:
|
|
||||||
return iplist
|
|
||||||
|
|
||||||
|
|
||||||
class IndexHandler(TPBaseAdminAuthHandler):
|
|
||||||
def get(self):
|
|
||||||
# static_path = cfg.static_path
|
|
||||||
# var_js = os.path.join(static_path, 'js', 'var.js')
|
|
||||||
|
|
||||||
# f = None
|
|
||||||
|
|
||||||
# try:
|
# try:
|
||||||
# config_list = host.get_config_list()
|
# if PLATFORM == "windows":
|
||||||
# ts_server = dict()
|
# ip_info = socket.gethostbyname_ex(socket.gethostname())
|
||||||
# ts_server['ip'] = config_list['ts_server_ip']
|
# return ip_info[2]
|
||||||
# ts_server['ssh_port'] = config_list['ts_server_ssh_port']
|
# else:
|
||||||
# ts_server['rdp_port'] = config_list['ts_server_rdp_port']
|
# ipstr = '([0-9]{1,3}\.){3}[0-9]{1,3}'
|
||||||
# ts_server['telnet_port'] = config_list['ts_server_telnet_port']
|
# ipconfig_process = subprocess.Popen("ifconfig", stdout=subprocess.PIPE)
|
||||||
# # f = open(var_js, 'w')
|
# output = ipconfig_process.stdout.read()
|
||||||
|
# ip_pattern = re.compile('(inet addr:%s)' % ipstr)
|
||||||
|
# pattern = re.compile(ipstr)
|
||||||
|
#
|
||||||
|
# for ipaddr in re.finditer(ip_pattern, str(output)):
|
||||||
|
# ip = pattern.search(ipaddr.group())
|
||||||
|
# if ip.group() != "127.0.0.1":
|
||||||
|
# iplist.append(ip.group())
|
||||||
|
# return iplist
|
||||||
|
# except Exception:
|
||||||
|
# return iplist
|
||||||
|
|
||||||
|
|
||||||
|
class InfoHandler(TPBaseAdminAuthHandler):
|
||||||
|
def get(self):
|
||||||
|
|
||||||
|
param = {
|
||||||
|
'core': cfg.core,
|
||||||
|
'web': {
|
||||||
|
'core_server_rpc': cfg['core_server_rpc']
|
||||||
|
}
|
||||||
|
}
|
||||||
|
self.render('set/info.mako', page_param=json.dumps(param))
|
||||||
|
|
||||||
|
|
||||||
|
class DatabaseHandler(TPBaseAdminAuthHandler):
|
||||||
|
def get(self):
|
||||||
|
param = {'core_server': cfg.core}
|
||||||
|
self.render('set/database.mako', page_param=json.dumps(param))
|
||||||
|
|
||||||
|
|
||||||
|
# def _restart_func():
|
||||||
|
# time.sleep(1)
|
||||||
|
#
|
||||||
|
# PLATFORM = platform.system().lower()
|
||||||
|
#
|
||||||
|
# if PLATFORM == 'windows':
|
||||||
|
# sf = os.path.join(cfg.app_path, 'tools', 'restart.bat')
|
||||||
|
# os.system('cmd.exe /c "{}"'.format(sf))
|
||||||
|
# else:
|
||||||
|
# # sf = os.path.join(cfg.app_path, 'tools', 'restart.sh')
|
||||||
|
# # os.system(sf)
|
||||||
|
# os.system('service eom_ts restart')
|
||||||
|
#
|
||||||
|
# # os.system(sf)
|
||||||
|
|
||||||
|
|
||||||
|
# def restart_service():
|
||||||
|
# # todo: 使用eom_ts.exe运行脚本的方式(新进程)来重启服务,避免正在运行的本服务未退出的影响
|
||||||
|
#
|
||||||
|
# t = threading.Thread(target=_restart_func)
|
||||||
|
# t.start()
|
||||||
|
#
|
||||||
|
|
||||||
|
# class UpdateConfig(TPBaseAdminAuthJsonHandler):
|
||||||
|
# def post(self):
|
||||||
|
# args = self.get_argument('args', None)
|
||||||
|
# if args is not None:
|
||||||
|
# args = json.loads(args)
|
||||||
|
# else:
|
||||||
|
# self.write_json(-1)
|
||||||
|
# return
|
||||||
|
#
|
||||||
|
# change_list = args['cfg']
|
||||||
|
# reboot = args['reboot']
|
||||||
|
#
|
||||||
|
# try:
|
||||||
|
# ret = set.set_config(change_list)
|
||||||
|
# if ret:
|
||||||
|
# for i in range(len(change_list)):
|
||||||
|
# if change_list[i]['name'] == 'ts_server_ip':
|
||||||
|
# # static_path = cfg.static_path
|
||||||
|
# var_js = os.path.join(cfg.static_path, 'js', 'var.js')
|
||||||
|
# f = None
|
||||||
|
# try:
|
||||||
|
# f = open(var_js, 'w')
|
||||||
|
# # config_list = host.get_config_list()
|
||||||
|
# # ts_server = dict()
|
||||||
|
# # ts_server['ip'] = config_list['ts_server_ip']
|
||||||
|
# # ts_server['ssh_port'] = config_list['ts_server_ssh_port']
|
||||||
|
# # ts_server['rdp_port'] = config_list['ts_server_rdp_port']
|
||||||
# # f.write("\"use strict\";\nvar teleport_ip = \"{}\";\n".format(ts_server['ip']))
|
# # f.write("\"use strict\";\nvar teleport_ip = \"{}\";\n".format(ts_server['ip']))
|
||||||
|
# f.write("\"use strict\";\nvar teleport_ip = \"{}\";\n".format(change_list[i]['value']))
|
||||||
|
# break
|
||||||
# except Exception:
|
# except Exception:
|
||||||
# return self.write(-1)
|
# return self.write(-1)
|
||||||
# finally:
|
# finally:
|
||||||
# # if f is not None:
|
# if f is not None:
|
||||||
# # f.close()
|
# f.close()
|
||||||
# pass
|
|
||||||
|
|
||||||
# config_list = set.get_config_list()
|
|
||||||
# if 'ts_server_ip' in config_list:
|
|
||||||
# ip_list = get_local_ip()
|
|
||||||
# if not isinstance(ip_list, list):
|
|
||||||
# ip_list = [ip_list, ]
|
|
||||||
#
|
#
|
||||||
# # ip_list.append(config_list['ts_server_ip'])
|
# if reboot:
|
||||||
# if config_list['ts_server_ip'] not in ip_list:
|
# restart_service()
|
||||||
# ip_list.append(config_list['ts_server_ip'])
|
|
||||||
#
|
#
|
||||||
# # if isinstance(temp, list):
|
# self.write_json(0)
|
||||||
# # ip_list.extend(temp)
|
# else:
|
||||||
#
|
# self.write_json(-1)
|
||||||
# config_list['_ip_list'] = ip_list
|
# except:
|
||||||
|
# self.write_json(-2)
|
||||||
# cfg_list = dict()
|
|
||||||
# cfg_list['ts_server_ssh_port'] = cfg.core.ssh.port
|
|
||||||
# cfg_list['ts_server_ssh_enabled'] = 1 if cfg.core.ssh.enabled else 0
|
|
||||||
# cfg_list['ts_server_rdp_port'] = cfg.core.rdp.port
|
|
||||||
# cfg_list['ts_server_rdp_enabled'] = 1 if cfg.core.rdp.enabled else 0
|
|
||||||
# cfg_list['ts_server_telnet_port'] = cfg.core.telnet.port
|
|
||||||
# cfg_list['ts_server_telnet_enabled'] = 1 if cfg.core.telnet.enabled else 0
|
|
||||||
# self.render('set/index.mako', config_list=cfg_list)
|
|
||||||
|
|
||||||
param = {'core_server': cfg.core}
|
|
||||||
self.render('set/index.mako', page_param=json.dumps(param))
|
|
||||||
|
|
||||||
|
|
||||||
def _restart_func():
|
|
||||||
time.sleep(1)
|
|
||||||
|
|
||||||
PLATFORM = platform.system().lower()
|
|
||||||
|
|
||||||
if PLATFORM == 'windows':
|
|
||||||
sf = os.path.join(cfg.app_path, 'tools', 'restart.bat')
|
|
||||||
os.system('cmd.exe /c "{}"'.format(sf))
|
|
||||||
else:
|
|
||||||
# sf = os.path.join(cfg.app_path, 'tools', 'restart.sh')
|
|
||||||
# os.system(sf)
|
|
||||||
os.system('service eom_ts restart')
|
|
||||||
|
|
||||||
# os.system(sf)
|
|
||||||
|
|
||||||
|
|
||||||
def restart_service():
|
|
||||||
# todo: 使用eom_ts.exe运行脚本的方式(新进程)来重启服务,避免正在运行的本服务未退出的影响
|
|
||||||
|
|
||||||
t = threading.Thread(target=_restart_func)
|
|
||||||
t.start()
|
|
||||||
|
|
||||||
|
|
||||||
class UpdateConfig(TPBaseAdminAuthJsonHandler):
|
|
||||||
def post(self):
|
|
||||||
args = self.get_argument('args', None)
|
|
||||||
if args is not None:
|
|
||||||
args = json.loads(args)
|
|
||||||
else:
|
|
||||||
self.write_json(-1)
|
|
||||||
return
|
|
||||||
|
|
||||||
change_list = args['cfg']
|
|
||||||
reboot = args['reboot']
|
|
||||||
|
|
||||||
try:
|
|
||||||
ret = set.set_config(change_list)
|
|
||||||
if ret:
|
|
||||||
for i in range(len(change_list)):
|
|
||||||
if change_list[i]['name'] == 'ts_server_ip':
|
|
||||||
# static_path = cfg.static_path
|
|
||||||
var_js = os.path.join(cfg.static_path, 'js', 'var.js')
|
|
||||||
f = None
|
|
||||||
try:
|
|
||||||
f = open(var_js, 'w')
|
|
||||||
# config_list = host.get_config_list()
|
|
||||||
# ts_server = dict()
|
|
||||||
# ts_server['ip'] = config_list['ts_server_ip']
|
|
||||||
# ts_server['ssh_port'] = config_list['ts_server_ssh_port']
|
|
||||||
# ts_server['rdp_port'] = config_list['ts_server_rdp_port']
|
|
||||||
# f.write("\"use strict\";\nvar teleport_ip = \"{}\";\n".format(ts_server['ip']))
|
|
||||||
f.write("\"use strict\";\nvar teleport_ip = \"{}\";\n".format(change_list[i]['value']))
|
|
||||||
break
|
|
||||||
except Exception:
|
|
||||||
return self.write(-1)
|
|
||||||
finally:
|
|
||||||
if f is not None:
|
|
||||||
f.close()
|
|
||||||
|
|
||||||
if reboot:
|
|
||||||
restart_service()
|
|
||||||
|
|
||||||
self.write_json(0)
|
|
||||||
else:
|
|
||||||
self.write_json(-1)
|
|
||||||
except:
|
|
||||||
self.write_json(-2)
|
|
||||||
|
|
||||||
# class OsOperator(TPBaseUserAuthJsonHandler):
|
# class OsOperator(TPBaseUserAuthJsonHandler):
|
||||||
# def post(self):
|
# def post(self):
|
||||||
|
|
|
@ -0,0 +1,43 @@
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
ywl.on_init = function (cb_stack, cb_args) {
|
||||||
|
console.log(ywl.page_options);
|
||||||
|
|
||||||
|
var dom = {
|
||||||
|
info: $('#info-kv')
|
||||||
|
};
|
||||||
|
|
||||||
|
var html = [];
|
||||||
|
html.push(ywl._make_info('核心服务通讯', ywl.page_options.web.core_server_rpc));
|
||||||
|
html.push(ywl._make_info('WEB服务通讯', ywl.page_options.core.web_server_rpc));
|
||||||
|
html.push(ywl._make_protocol_info('RDP 端口', ywl.page_options.core.rdp));
|
||||||
|
html.push(ywl._make_protocol_info('SSH 端口', ywl.page_options.core.ssh));
|
||||||
|
html.push(ywl._make_protocol_info('TELNET 端口', ywl.page_options.core.telnet));
|
||||||
|
html.push(ywl._make_info('录像文件路径', ywl.page_options.core.replay_path));
|
||||||
|
|
||||||
|
dom.info.append(html.join(''));
|
||||||
|
|
||||||
|
// $("#current-rdp-port").val(core.rdp.port);
|
||||||
|
// $("#current-ssh-port").val(core.ssh.port);
|
||||||
|
// $("#current-telnet-port").val(core.telnet.port);
|
||||||
|
|
||||||
|
cb_stack.exec();
|
||||||
|
};
|
||||||
|
|
||||||
|
ywl._make_protocol_info = function (name, p) {
|
||||||
|
if(_.isUndefined(p))
|
||||||
|
return ywl._make_info(name, '未能检测到');
|
||||||
|
// <tr><td class="key">RDP 端口:</td><td class="value">52089</td></tr>
|
||||||
|
var key = name;
|
||||||
|
if (!p.enable) {
|
||||||
|
key += '(未启用)';
|
||||||
|
}
|
||||||
|
|
||||||
|
return ywl._make_info(key, p.port);
|
||||||
|
};
|
||||||
|
|
||||||
|
ywl._make_info = function (key, value) {
|
||||||
|
if(_.isUndefined(value))
|
||||||
|
value = '未能检测到';
|
||||||
|
return '<tr><td class="key">' + key + ':</td><td class="value">' + value + '</td></tr>';
|
||||||
|
};
|
|
@ -1,219 +0,0 @@
|
||||||
/**
|
|
||||||
* Created by mi on 2016/7/4.
|
|
||||||
*/
|
|
||||||
|
|
||||||
var REFRESH_TIMEOUT = 10;
|
|
||||||
|
|
||||||
var g_assist = null;
|
|
||||||
|
|
||||||
ywl.on_init = function (cb_stack, cb_args) {
|
|
||||||
ywl.refresh_timeout = REFRESH_TIMEOUT;
|
|
||||||
|
|
||||||
g_assist = ywl.create_assist();
|
|
||||||
|
|
||||||
var core_server = ywl.page_options.core_server;
|
|
||||||
console.log(ywl.page_options, core_server);
|
|
||||||
|
|
||||||
$("#current-rdp-port").val(core_server.rdp.port);
|
|
||||||
$("#current-ssh-port").val(core_server.ssh.port);
|
|
||||||
$("#current-telnet-port").val(core_server.telnet.port);
|
|
||||||
|
|
||||||
// $('#select-ip li a').click(function () {
|
|
||||||
// $("#current-ts-server-ip").val($(this).text());
|
|
||||||
// });
|
|
||||||
|
|
||||||
$("#btn-check").click(function () {
|
|
||||||
var ts_server_ip = $("#current-ts-server-ip").val();
|
|
||||||
var ts_server_rdp_port = $("#current-rdp-port").val();
|
|
||||||
var ts_server_ssh_port = $("#current-ssh-port").val();
|
|
||||||
var ts_server_telnet_port = $("#current-telnet-port").val();
|
|
||||||
|
|
||||||
var list = [];
|
|
||||||
var item_1 = {name: 'ts_server_ip', value: ts_server_ip};
|
|
||||||
list.push(item_1);
|
|
||||||
|
|
||||||
// var item_2 = {name: 'ts_server_rpc_ip', value: ts_server_rpc_ip};
|
|
||||||
// list.push(item_2);
|
|
||||||
//
|
|
||||||
// var item_3 = {name: 'ts_server_rpc_port', value: ts_server_rpc_port};
|
|
||||||
// list.push(item_3);
|
|
||||||
|
|
||||||
var item_4 = {name: 'ts_server_rdp_port', value: ts_server_rdp_port};
|
|
||||||
list.push(item_4);
|
|
||||||
|
|
||||||
var item_5 = {name: 'ts_server_ssh_port', value: ts_server_ssh_port};
|
|
||||||
list.push(item_5);
|
|
||||||
var rdp_port = parseInt(ts_server_rdp_port);
|
|
||||||
var ssh_port = parseInt(ts_server_ssh_port);
|
|
||||||
var args_ = encodeURIComponent(JSON.stringify({server_ip: ts_server_ip, rdp_port: rdp_port, ssh_port: ssh_port}));
|
|
||||||
$.ajax({
|
|
||||||
type: 'GET',
|
|
||||||
timeout: 60000,
|
|
||||||
url: 'http://127.0.0.1:50022/ts_check/' + args_,
|
|
||||||
jsonp: 'callback',
|
|
||||||
dataType: 'json',
|
|
||||||
success: function (ret) {
|
|
||||||
if (ret.code === 0) {
|
|
||||||
ywl.notify_success("测试通过,可以正常使用 teleport 堡垒机!");
|
|
||||||
} else if (ret.code === 7) {
|
|
||||||
ywl.notify_error("PING测试通过,TCP端口测试未通过,请检查防火墙设置!");
|
|
||||||
} else {
|
|
||||||
console.log('ret', ret);
|
|
||||||
ywl.notify_error("测试失败,请检查 teleport 堡垒机地址是否正确,并检查防火墙设置!");
|
|
||||||
}
|
|
||||||
},
|
|
||||||
error: function () {
|
|
||||||
g_assist.alert_assist_not_found();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
$("#btn-save-config").click(function () {
|
|
||||||
var ts_server_ip = $("#current-ts-server-ip").val();
|
|
||||||
// var ts_server_rpc_ip = $("#current-rpc-ip").val();
|
|
||||||
// var ts_server_rpc_port = $("#current-rpc-port").val();
|
|
||||||
var ts_server_rdp_port = $("#current-rdp-port").val();
|
|
||||||
var ts_server_ssh_port = $("#current-ssh-port").val();
|
|
||||||
var ts_server_telnet_port = $("#current-telnet-port").val();
|
|
||||||
|
|
||||||
var reboot = false;
|
|
||||||
var new_config = [];
|
|
||||||
|
|
||||||
var old_config = ywl.page_options.config_list;
|
|
||||||
if (ts_server_ip != old_config['ts_server_ip']) {
|
|
||||||
new_config.push({name: 'ts_server_ip', value: ts_server_ip});
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ts_server_rdp_port != old_config['ts_server_rdp_port']) {
|
|
||||||
new_config.push({name: 'ts_server_rdp_port', value: ts_server_rdp_port});
|
|
||||||
reboot = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ts_server_ssh_port != old_config['ts_server_ssh_port']) {
|
|
||||||
new_config.push({name: 'ts_server_ssh_port', value: ts_server_ssh_port});
|
|
||||||
reboot = true;
|
|
||||||
}
|
|
||||||
if (ts_server_telnet_port != old_config['ts_server_telnet_port']) {
|
|
||||||
new_config.push({name: 'ts_server_telnet_port', value: ts_server_telnet_port});
|
|
||||||
reboot = true;
|
|
||||||
}
|
|
||||||
if (new_config.length == 0) {
|
|
||||||
// nothing changed.
|
|
||||||
ywl.notify_error('配置未改变,无需保存!');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!reboot) {
|
|
||||||
ywl.ajax_post_json('/set/update-config', {cfg: new_config, reboot: false},
|
|
||||||
function (ret) {
|
|
||||||
if (ret.code == 0) {
|
|
||||||
ywl.notify_success('配置保存成功!');
|
|
||||||
ywl.page_options.config_list['ts_server_ip'] = ts_server_ip;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
ywl.notify_error('配置保存失败!');
|
|
||||||
}
|
|
||||||
},
|
|
||||||
function () {
|
|
||||||
ywl.notify_error('配置保存失败!');
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// if need reboot, let user confirm.
|
|
||||||
|
|
||||||
var _fn_sure = function (cb_stack, cb_args) {
|
|
||||||
|
|
||||||
ywl.ajax_post_json('/set/update-config', {cfg: new_config, reboot: true},
|
|
||||||
function (ret) {
|
|
||||||
if (ret.code == 0) {
|
|
||||||
$('#dlg_restart_service').modal({backdrop: 'static', keyboard: false});
|
|
||||||
|
|
||||||
ywl.refresh_timeout = REFRESH_TIMEOUT;
|
|
||||||
setInterval(ywl.refresh, 1000);
|
|
||||||
|
|
||||||
// 5 秒之后刷新页面,导致重定向到登录页面
|
|
||||||
// setTimeout(function () {
|
|
||||||
// location.reload(true);
|
|
||||||
// }, 5000);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
ywl.notify_error('配置信息保存失败!');
|
|
||||||
}
|
|
||||||
},
|
|
||||||
function () {
|
|
||||||
ywl.notify_error('配置信息保存失败!');
|
|
||||||
}
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
var cb_stack = CALLBACK_STACK.create();
|
|
||||||
ywl.dlg_confirm(cb_stack, {
|
|
||||||
msg: '<p><strong>为使设置生效,需要重启teleport服务!服务重启过程中,WEB后台和跳板连接均会中断!</strong></p><p>您确定要保存设置并重启teleport服务吗?</p>',
|
|
||||||
fn_yes: _fn_sure
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// $("#btn-os-reboot").click(function () {
|
|
||||||
// var _fn_sure = function (cb_stack, cb_args) {
|
|
||||||
// ywl.ajax_post_json('/set/os-operator', {OP: 1},
|
|
||||||
// function (ret) {
|
|
||||||
// if (ret.code == 0) {
|
|
||||||
// ywl.notify_success('正在重新启动系统');
|
|
||||||
// }
|
|
||||||
// else {
|
|
||||||
// ywl.notify_error('重启系统失败');
|
|
||||||
// }
|
|
||||||
// },
|
|
||||||
// function () {
|
|
||||||
// ywl.notify_error('重启系统失败');
|
|
||||||
// }
|
|
||||||
// );
|
|
||||||
// };
|
|
||||||
// var cb_stack = CALLBACK_STACK.create();
|
|
||||||
//
|
|
||||||
// ywl.dlg_confirm(cb_stack, {
|
|
||||||
// msg: '<p>您确定要重启系统吗?!!</p>',
|
|
||||||
// fn_yes: _fn_sure
|
|
||||||
// });
|
|
||||||
//
|
|
||||||
// });
|
|
||||||
|
|
||||||
// $("#btn-os-shut").click(function () {
|
|
||||||
// var _fn_sure = function (cb_stack, cb_args) {
|
|
||||||
// ywl.ajax_post_json('/set/os-operator', {OP: 2},
|
|
||||||
// function (ret) {
|
|
||||||
// if (ret.code == 0) {
|
|
||||||
// ywl.notify_success('正在关闭系统');
|
|
||||||
// }
|
|
||||||
// else {
|
|
||||||
// ywl.notify_error('关闭系统失败');
|
|
||||||
// }
|
|
||||||
// },
|
|
||||||
// function () {
|
|
||||||
// ywl.notify_error('关闭系统失败');
|
|
||||||
// }
|
|
||||||
// );
|
|
||||||
// };
|
|
||||||
// var cb_stack = CALLBACK_STACK.create();
|
|
||||||
//
|
|
||||||
// ywl.dlg_confirm(cb_stack, {
|
|
||||||
// msg: '<p>您确定要关闭系统吗?!!</p>',
|
|
||||||
// fn_yes: _fn_sure
|
|
||||||
// });
|
|
||||||
// });
|
|
||||||
|
|
||||||
cb_stack.exec();
|
|
||||||
};
|
|
||||||
|
|
||||||
ywl.refresh = function () {
|
|
||||||
ywl.refresh_timeout -= 1;
|
|
||||||
if (0 == ywl.refresh_timeout) {
|
|
||||||
location.reload(true);
|
|
||||||
} else {
|
|
||||||
$('#reboot_time').html(ywl.refresh_timeout);
|
|
||||||
}
|
|
||||||
};
|
|
|
@ -41,9 +41,23 @@
|
||||||
{
|
{
|
||||||
'require_type': 100,
|
'require_type': 100,
|
||||||
'id': 'set',
|
'id': 'set',
|
||||||
'link': '/set',
|
'link': '',
|
||||||
'name': '配置管理',
|
'name': '配置管理',
|
||||||
'icon': 'fa-cogs',
|
'icon': 'fa-cogs',
|
||||||
|
'sub': [
|
||||||
|
{
|
||||||
|
'require_type': 100,
|
||||||
|
'id': 'info',
|
||||||
|
'link': '/set/info',
|
||||||
|
'name': '配置信息'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'require_type': 100,
|
||||||
|
'id': 'database',
|
||||||
|
'link': '/set/db',
|
||||||
|
'name': '数据库管理'
|
||||||
|
}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'require_type': 100,
|
'require_type': 100,
|
||||||
|
|
|
@ -1,161 +0,0 @@
|
||||||
<%!
|
|
||||||
page_title_ = '服务器配置'
|
|
||||||
page_menu_ = ['set']
|
|
||||||
page_id_ = 'set'
|
|
||||||
%>
|
|
||||||
<%inherit file="../page_base.mako"/>
|
|
||||||
|
|
||||||
<%block name="extend_js">
|
|
||||||
<script type="text/javascript" src="${ static_url('js/ui/teleport.js') }"></script>
|
|
||||||
<script type="text/javascript" src="${ static_url('js/ui/set.js') }"></script>
|
|
||||||
</%block>
|
|
||||||
|
|
||||||
<%block name="breadcrumb">
|
|
||||||
<ol class="breadcrumb">
|
|
||||||
<li><i class="fa fa-cogs fa-fw"></i> ${self.attr.page_title_}</li>
|
|
||||||
</ol>
|
|
||||||
</%block>
|
|
||||||
|
|
||||||
## Begin Main Body.
|
|
||||||
|
|
||||||
<div class="page-content">
|
|
||||||
## <script language="javascript">
|
|
||||||
## function changeF() {
|
|
||||||
## document.getElementById('txt').value = document.getElementById('sel').options[document.getElementById('sel').selectedIndex].value;
|
|
||||||
## }
|
|
||||||
## </script>
|
|
||||||
|
|
||||||
<!-- begin box -->
|
|
||||||
<div class="box">
|
|
||||||
|
|
||||||
<div style="width:640px">
|
|
||||||
|
|
||||||
<div class="form-horizontal">
|
|
||||||
|
|
||||||
<h4><strong>Teleport服务器配置信息</strong></h4>
|
|
||||||
## <p>设置teleport服务器的访问地址和服务的端口。</p>
|
|
||||||
## <p style="font-weight:bold;color:#ff3333;">请正确设置服务器地址(IP或域名),否则将无法进行跳板连接!!</p>
|
|
||||||
## <p>设置teleport服务器的服务端口。</p>
|
|
||||||
|
|
||||||
## <div class="form-group form-group-sm" style="display:none;">
|
|
||||||
## <label for="current-ts-server-ip" class="col-sm-2 control-label"><strong>堡垒机地址:</strong></label>
|
|
||||||
##
|
|
||||||
## <div class="col-sm-6">
|
|
||||||
## <div class="input-group">
|
|
||||||
## <input type="text" class="form-control" id="current-ts-server-ip">
|
|
||||||
## <div class="input-group-btn">
|
|
||||||
## <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> 选择IP <span class="caret"></span></button>
|
|
||||||
## <ul id='select-ip' class="dropdown-menu dropdown-menu-right">
|
|
||||||
## </ul>
|
|
||||||
## </div>
|
|
||||||
## </div>
|
|
||||||
## </div>
|
|
||||||
## <label for="current-ts-server-ip" class="col-sm-4 control-label" style="text-align:left;color:red;"><strong>首次安装必须修改</strong></label>
|
|
||||||
## </div>
|
|
||||||
|
|
||||||
<div class="form-group form-group-sm">
|
|
||||||
<label for="current-rdp-port" class="col-sm-2 control-label"><strong>RDP 端口:</strong></label>
|
|
||||||
<div class="col-sm-6">
|
|
||||||
<input id="current-rdp-port" type="text" class="form-control" placeholder="默认值 52089" disabled/>
|
|
||||||
</div>
|
|
||||||
## <div class="col-sm-4 control-label" style="text-align: left;">可以用默认值</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="form-group form-group-sm">
|
|
||||||
<label for="current-ssh-port" class="col-sm-2 control-label"><strong>SSH 端口:</strong></label>
|
|
||||||
<div class="col-sm-6">
|
|
||||||
<input id="current-ssh-port" type="text" class="form-control" placeholder="默认值 52189" disabled/>
|
|
||||||
</div>
|
|
||||||
## <div class="col-sm-4 control-label" style="text-align: left;">可以用默认值</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="form-group form-group-sm">
|
|
||||||
<label for="current-telnet-port" class="col-sm-2 control-label"><strong>TELENT 端口:</strong></label>
|
|
||||||
<div class="col-sm-6">
|
|
||||||
<input id="current-telnet-port" type="text" class="form-control" placeholder="默认值 52389" disabled/>
|
|
||||||
</div>
|
|
||||||
## <div class="col-sm-4 control-label" style="text-align: left;">可以用默认值</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="form-group form-group-sm">
|
|
||||||
<div class="col-sm-2"></div>
|
|
||||||
<div class="col-sm-6">
|
|
||||||
注意:要修改端口号,请直接修改配置文件。修改后需要重启服务方能生效!
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
## <hr/>
|
|
||||||
##
|
|
||||||
## <p><strong>Teleport核心服务设置</strong></p>
|
|
||||||
## <p>用于与teleport核心服务进行通讯,需要将WEB后台与核心服务部署在同一台主机上。</p>
|
|
||||||
## <p>如果您需要将核心服务部署在单独的主机上,建议您为RPC访问端口设置防火墙规则,仅允许WEB后台主机访问此RPC端口,以增强安全性。</p>
|
|
||||||
##
|
|
||||||
## <div class="form-group form-group-sm">
|
|
||||||
## <label for="current-rpc-ip" class="col-sm-2 control-label"><strong>IP地址:</strong></label>
|
|
||||||
## <div class="col-sm-6">
|
|
||||||
## <input id="current-rpc-ip" type="text" class="form-control" readonly="readonly" placeholder="默认值 127.0.0.1"/>
|
|
||||||
## </div>
|
|
||||||
## </div>
|
|
||||||
##
|
|
||||||
## <div class="form-group form-group-sm">
|
|
||||||
## <label for="current-rpc-port" class="col-sm-2 control-label"><strong>端口:</strong></label>
|
|
||||||
## <div class="col-sm-6">
|
|
||||||
## <input id="current-rpc-port" type="text" class="form-control" readonly="readonly" placeholder="默认值 52080"/>
|
|
||||||
## </div>
|
|
||||||
## </div>
|
|
||||||
|
|
||||||
<hr/>
|
|
||||||
## <div class="form-group form-group-sm">
|
|
||||||
## <div class="col-sm-2"></div>
|
|
||||||
## <div class="col-sm-2">
|
|
||||||
## <a href="javascript:" id="btn-check" class="btn btn-success"><i class="fa fa-cog fa-fw"></i> 一键测试</a>
|
|
||||||
## </div>
|
|
||||||
## <div class="col-sm-4" style="text-align: right;">
|
|
||||||
## <a href="javascript:" id="btn-save-config" class="btn btn-primary"><i class="fa fa-check fa-fw"></i> 保存配置</a>
|
|
||||||
## </div>
|
|
||||||
## </div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<!-- end of box -->
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<%block name="extend_content">
|
|
||||||
|
|
||||||
## <div class="modal fade" id="dlg_restart_service" tabindex="-1" role="dialog">
|
|
||||||
## <div class="modal-dialog" role="document">
|
|
||||||
## <div class="modal-content">
|
|
||||||
## <div class="modal-header">
|
|
||||||
## <h3 class="modal-title" style="text-align: center;">服务重启中...</h3>
|
|
||||||
## </div>
|
|
||||||
## <div class="modal-body">
|
|
||||||
## <p style="text-align: center; font-size:36px;"><i class="fa fa-cog fa-spin"></i></p>
|
|
||||||
## <p style="text-align: center;">配置已保存,正在重启teleport服务,请稍候...</p>
|
|
||||||
## <p style="text-align: center;"><span id="reboot_time"></span></p>
|
|
||||||
## </div>
|
|
||||||
##
|
|
||||||
## <div class="modal-footer">
|
|
||||||
## </div>
|
|
||||||
## </div>
|
|
||||||
## </div>
|
|
||||||
## </div>
|
|
||||||
|
|
||||||
|
|
||||||
</%block>
|
|
||||||
|
|
||||||
|
|
||||||
<%block name="embed_js">
|
|
||||||
<script type="text/javascript">
|
|
||||||
## ywl.add_page_options({
|
|
||||||
## config_list: ${config_list}
|
|
||||||
## });
|
|
||||||
ywl.add_page_options(${ page_param });
|
|
||||||
</script>
|
|
||||||
</%block>
|
|
|
@ -0,0 +1,158 @@
|
||||||
|
<%!
|
||||||
|
page_title_ = '配置管理'
|
||||||
|
page_menu_ = ['set', 'info']
|
||||||
|
page_id_ = 'set'
|
||||||
|
%>
|
||||||
|
<%inherit file="../page_base.mako"/>
|
||||||
|
|
||||||
|
<%block name="extend_js">
|
||||||
|
## <script type="text/javascript" src="${ static_url('js/ui/teleport.js') }"></script>
|
||||||
|
<script type="text/javascript" src="${ static_url('js/ui/config/info.js') }"></script>
|
||||||
|
</%block>
|
||||||
|
|
||||||
|
<%block name="breadcrumb">
|
||||||
|
<ol class="breadcrumb">
|
||||||
|
<li><i class="fa fa-cogs fa-fw"></i> ${self.attr.page_title_}</li>
|
||||||
|
<li>配置信息</li>
|
||||||
|
</ol>
|
||||||
|
</%block>
|
||||||
|
|
||||||
|
<%block name="extend_css">
|
||||||
|
<style type="text/css">
|
||||||
|
.table .key {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
.table .value {
|
||||||
|
text-align: left;
|
||||||
|
font-weight:bold;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</%block>
|
||||||
|
|
||||||
|
## Begin Main Body.
|
||||||
|
|
||||||
|
<div class="page-content">
|
||||||
|
|
||||||
|
<!-- begin box -->
|
||||||
|
<div class="box">
|
||||||
|
|
||||||
|
<div style="width:640px">
|
||||||
|
|
||||||
|
<div class="form-horizontal">
|
||||||
|
|
||||||
|
<h4><strong>服务器配置信息</strong></h4>
|
||||||
|
|
||||||
|
<table id="info-kv" class="table">
|
||||||
|
## <tr><td class="key">RDP 端口:</td><td class="value">52089</td></tr>
|
||||||
|
## <tr><td class="key">SSH 端口:</td><td class="value">52189</td></tr>
|
||||||
|
## <tr><td class="key">TELNET 端口:</td><td class="value">52389</td></tr>
|
||||||
|
## <tr><td class="key">录像文件路径:</td><td class="value">C:\teleport-server\data\replay</td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
##
|
||||||
|
## <div class="form-group form-group-sm">
|
||||||
|
## <label for="current-rdp-port" class="col-sm-2 control-label"><strong>RDP 端口:</strong></label>
|
||||||
|
## <div class="col-sm-6">
|
||||||
|
## <input id="current-rdp-port" type="text" class="form-control" placeholder="默认值 52089" disabled/>
|
||||||
|
## </div>
|
||||||
|
## ## <div class="col-sm-4 control-label" style="text-align: left;">可以用默认值</div>
|
||||||
|
## </div>
|
||||||
|
##
|
||||||
|
## <div class="form-group form-group-sm">
|
||||||
|
## <label for="current-ssh-port" class="col-sm-2 control-label"><strong>SSH 端口:</strong></label>
|
||||||
|
## <div class="col-sm-6">
|
||||||
|
## <input id="current-ssh-port" type="text" class="form-control" placeholder="默认值 52189" disabled/>
|
||||||
|
## </div>
|
||||||
|
## ## <div class="col-sm-4 control-label" style="text-align: left;">可以用默认值</div>
|
||||||
|
## </div>
|
||||||
|
##
|
||||||
|
##
|
||||||
|
## <div class="form-group form-group-sm">
|
||||||
|
## <label for="current-telnet-port" class="col-sm-2 control-label"><strong>TELENT 端口:</strong></label>
|
||||||
|
## <div class="col-sm-6">
|
||||||
|
## <input id="current-telnet-port" type="text" class="form-control" placeholder="默认值 52389" disabled/>
|
||||||
|
## </div>
|
||||||
|
## ## <div class="col-sm-4 control-label" style="text-align: left;">可以用默认值</div>
|
||||||
|
## </div>
|
||||||
|
##
|
||||||
|
##
|
||||||
|
## <div class="form-group form-group-sm">
|
||||||
|
## <div class="col-sm-2"></div>
|
||||||
|
## <div class="col-sm-6">
|
||||||
|
## 注意:要修改端口号,请直接修改配置文件。修改后需要重启服务方能生效!
|
||||||
|
## </div>
|
||||||
|
## </div>
|
||||||
|
|
||||||
|
|
||||||
|
## <hr/>
|
||||||
|
##
|
||||||
|
## <p><strong>Teleport核心服务设置</strong></p>
|
||||||
|
## <p>用于与teleport核心服务进行通讯,需要将WEB后台与核心服务部署在同一台主机上。</p>
|
||||||
|
## <p>如果您需要将核心服务部署在单独的主机上,建议您为RPC访问端口设置防火墙规则,仅允许WEB后台主机访问此RPC端口,以增强安全性。</p>
|
||||||
|
##
|
||||||
|
## <div class="form-group form-group-sm">
|
||||||
|
## <label for="current-rpc-ip" class="col-sm-2 control-label"><strong>IP地址:</strong></label>
|
||||||
|
## <div class="col-sm-6">
|
||||||
|
## <input id="current-rpc-ip" type="text" class="form-control" readonly="readonly" placeholder="默认值 127.0.0.1"/>
|
||||||
|
## </div>
|
||||||
|
## </div>
|
||||||
|
##
|
||||||
|
## <div class="form-group form-group-sm">
|
||||||
|
## <label for="current-rpc-port" class="col-sm-2 control-label"><strong>端口:</strong></label>
|
||||||
|
## <div class="col-sm-6">
|
||||||
|
## <input id="current-rpc-port" type="text" class="form-control" readonly="readonly" placeholder="默认值 52080"/>
|
||||||
|
## </div>
|
||||||
|
## </div>
|
||||||
|
|
||||||
|
## <hr/>
|
||||||
|
## <div class="form-group form-group-sm">
|
||||||
|
## <div class="col-sm-2"></div>
|
||||||
|
## <div class="col-sm-2">
|
||||||
|
## <a href="javascript:" id="btn-check" class="btn btn-success"><i class="fa fa-cog fa-fw"></i> 一键测试</a>
|
||||||
|
## </div>
|
||||||
|
## <div class="col-sm-4" style="text-align: right;">
|
||||||
|
## <a href="javascript:" id="btn-save-config" class="btn btn-primary"><i class="fa fa-check fa-fw"></i> 保存配置</a>
|
||||||
|
## </div>
|
||||||
|
## </div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<!-- end of box -->
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<%block name="extend_content">
|
||||||
|
|
||||||
|
## <div class="modal fade" id="dlg_restart_service" tabindex="-1" role="dialog">
|
||||||
|
## <div class="modal-dialog" role="document">
|
||||||
|
## <div class="modal-content">
|
||||||
|
## <div class="modal-header">
|
||||||
|
## <h3 class="modal-title" style="text-align: center;">服务重启中...</h3>
|
||||||
|
## </div>
|
||||||
|
## <div class="modal-body">
|
||||||
|
## <p style="text-align: center; font-size:36px;"><i class="fa fa-cog fa-spin"></i></p>
|
||||||
|
## <p style="text-align: center;">配置已保存,正在重启teleport服务,请稍候...</p>
|
||||||
|
## <p style="text-align: center;"><span id="reboot_time"></span></p>
|
||||||
|
## </div>
|
||||||
|
##
|
||||||
|
## <div class="modal-footer">
|
||||||
|
## </div>
|
||||||
|
## </div>
|
||||||
|
## </div>
|
||||||
|
## </div>
|
||||||
|
|
||||||
|
|
||||||
|
</%block>
|
||||||
|
|
||||||
|
|
||||||
|
<%block name="embed_js">
|
||||||
|
<script type="text/javascript">
|
||||||
|
## ywl.add_page_options({
|
||||||
|
## config_list: ${config_list}
|
||||||
|
## });
|
||||||
|
ywl.add_page_options(${ page_param });
|
||||||
|
</script>
|
||||||
|
</%block>
|
Loading…
Reference in New Issue