服务器集群管理框架从构思到完成(二)集群部署配置和基本功能操作

来源:互联网 发布:服务器默认端口 编辑:程序博客网 时间:2024/06/06 01:39

http://2012.aliyun.com/works/finalist阿里云开发者大赛43号作品)

资源链接:http://download.csdn.net/detail/w565911788/4702367

特色:

1)支持WindowsLinux平台;

2)支持公网、私网复合网络;

3)本地及远程命令引擎;

4)文件批量发送下载;

5)自动化脚本任务定制;

6)动态插件扩展;

7)工具平台集成;

8)作为自动化框架应用于管理维护和测试等;

9)易用、可扩展。

 

(一)需要环境
.NET Framework4.0或以上(Windows);SSH服务(Linux)

 

(二) 集群部署
1. Windows开启本程序(对等,token校验),Linux开启SSH服务(协议)。

2. 每个Windows服务器和工作机:

  (1) 运行绿色自解压安装包;

  (2) 解压完成会自动启动.net4.0在线安装(如果已安装.net framwork4.0可取消);

  (3)点击桌面快捷方式“服务器集群管理平台”则可启动主程序ECSTOOL.exe.

3. 每个Linux服务器:

  *  开启SSH服务进程。

4. 集群:

   * 通过其中一个Windows服务器或工作机的应用程序,即可实现与其他Windows和Linux服务器互连,进行操作管理。

5. 配置项说明:

(1)安装根目录结构:

\Docs(文档目录)

\Log(日志目录)

\Plugs(插件和工具目录)

\Scripts(脚本目录)

主程序、DLL、配置文件

(2)ECSTOOL.exe.config配置说明(Server端手动配置,被管理)

<?xmlversion="1.0"?>

<!--……-->

<!--服务器端口(默认18888-->

<settingname="ServerPort"serializeAs="String">

<value>18888</value>

</setting>

<!--文件发送端口(默认私网18889,公网19990-->

<settingname="SenderPort"serializeAs="String">

<value>18889</value>

</setting>

<!--windows校验值,匹配才能建立连接-->

<settingname="Token"serializeAs="String">

<value>secure token</value>

</setting>

<!--是否服务器(若为False则默认不开启服务器监听)-->

<settingname="IsServer"serializeAs="String">

<value>True</value>

</setting>

(3)ServerETC.lst服务器配置说明(Client端界面配置命令删除,管理平台)

# 6个字段(分号分隔)

# IP; 分组; 系统类型(0-Linux,1-Windows);[ssh端口](Linux) [Server端口 & Sender端口](Windows); [用户名 &密码 ](Linux加密) [token] (windows);共享根目录

127.0.0.1; TOOL; 1; 18888 & 18889; 188AAEB27BC569F3A3C9B12558DDC90E; C:\

42.121.98.70;TEST;1;18888&18889;188AAEB27BC569F3A3C9B12558DDC90E;C:\Debug

42.121.98.7;TEST;0;22;786BF29CB1F70CEA949DD1C6ABF47304;/home

 

(三)  基本功能列表

1. 服务器列表(Windows&Linux操作相同)
a. 全部连接
b. 全部断开
c. 重载

(以下不选、单选、多选,点击【右键菜单】操作)
d. 连接

e. 断开
f. 发送文件

g. 下载文件
h. 执行命令
i. 新增服务器
j. 删除服务器

2. 文件传输服务(Windows&Linux操作相同)
a. 发送文件到服务器(一对多)

b. 从服务器下载文件(多对多)

c. 导入导出发送和下载任务文件

3. 命令执行引擎
a. 执行linux shell命令

b. 执行windows dos命令

c. 工具内置命令

包括所有主要功能的命令式,参照命令执行引擎帮助手册,截止2012.9.28共计33种命令)
c. Lua脚本执行引擎

(加载打开、保存、解析执行、停止执行,可命令式调用)
4. 插件工具集

a. 动态dll插件开发集成

b. 独立exe工具集成

5. 使用帮助

使用帮助说明(一般使用说明和配置结构说明)
命令执行引擎(所有实现命令帮助手册)

6. HelpAbout
程序版本、作者联系方式、必要说明等信息

 

(四) 操作说明
1. 【服务器集群列表】窗口

a. 全部连接:全部未连接服务器,Windows通过本工具建立网络互连,Linux建立SSH连接。
b. 全部断开:全部已建立连接的服务器断开连接状态。
c. 重载:新增、删除服务器,或修改配置文件ServerETC.lst后重新载入。
(以下不选、单选、多选,点击【右键菜单】操作)
d. 连接选中点击右键显示,未连接有效):所有选中的服务器Windows通过本工具建立网络互连,Linux建立SSH连接。
e. 断开(选中点击右键显示,已连接有效):所有选中的服务器已建立连接的服务器断开连接状态。
f. 发送文件(选中点击右键显示,已连接有效):打开【文件传输服务】窗口,并传入必要发送参数。
g. 下载文件(选中点击右键显示,已连接有效):打开【文件传输服务】窗口,并传入必要下载参数。
h. 执行命令(选中点击右键显示,已连接有效):打开【命令执行引擎】窗口,并传入所有选中的服务器IP作为执行对象。
i. 新增服务器(选中点击右键显示):显示新增服务器选项,添加Windows或Linux服务器配置参数。
j. 删除服务器(选中点击右键显示):本次删除选中服务器(临时删除),重载会显示,通过命令或修改ServerETC.lst彻底删除。

2.【文件传输服务】窗口
a. 本地和服务器之间文件传输,一个文件可同时从本地分发到多个IP多个路径,一个文件可从远程IP同时下载到本地多个路径下,添加后提交执行。
b. 一次只能针对“一个文件”执行“分发或下载之一”任务,执行完毕后方可执行下一次批量任务。
c. 可保存导出任务列表(分发IP和目录,下载目录),下一次直接导入任务提交执行(文件自选或输入)。
d. 文件或目录路径可从下拉框选择(加载的默认深度为2层),也可自行输入路径。

3.【命令执行引擎】窗口
a. ECSTOOL.exe.config文件配置项IsServer为True会输出显示信息和所有收到待处理信息,为False仅输出显示信息。(客户端工具建议配置IsServer为False非服务器)
b. 可指定多个连接状态的远程服务器执行linux shell命令(保持管道执行)、执行windows dos命令(每条初始化管道执行)、工具内置命令(包括所有主要功能的命令式)。
c. Lua脚本执行引擎(加载打开、保存、解析执行、停止执行,可命令式调用)
所有主要功能操作组合 + 脚本逻辑 = 自动化任务脚本。
Lua虚拟机注册内置接口函数ExecCommand(string)、内置主窗体对象MyForm,执行时脚本内入口出口函数EnterBegin(),实例如:
--内置ExecCommand(string)函数示例:执行dos和shell命令
ExecCommand("localhost,127.0.0.1:win_cmd{@cd .. &&
dir@}{@c: && dir@}")
ExecCommand("42.121.98.7:linux_shell{@cd .. && ls
-al@}{@netstat -ant|grep 22@}")
--内置主窗体对象MyForm
str = MyForm.scriptText
--脚本入口和出口函数EnterBegin()
function EnterBegin()
  local i = 0
  local sum=0
  while (i <= 100) do
    --coroutine.yield( i )
    sum = sum + i
    i = i + 1
  end
  if str ~= "" then
    return "{\n"..str.."\n}\nresult:"..sum
  else
    return "WuGang: Hello World!",54321,"END"
  end
end
return "WuGang: Hello World!",54321,"END"

4. 【插件工具集】窗口
a. 引用PlugsRoot.dll,动态dll插件开发,放到Plugs目录下即可加载,双击打开嵌入的功能窗口。
using PlugsRoot;
[PluginInfo("动态插件名", "1.0.0.1", "作者", "分组", false)]
public partial class PlugForm : PlugRoot

b. 独立exe工具放置到Plugs目录下即可加载,双击独立运行启动。