APP下载

web远程升级Solaris及进度跟踪设计

2016-11-29

软件 2016年9期
关键词:脚本消息升级

于 洋

(北京邮电大学 通信与信号处理专业,北京 海淀 100876)

web远程升级Solaris及进度跟踪设计

于洋

(北京邮电大学 通信与信号处理专业,北京 海淀 100876)

现代企业或单位服务器主机众多,如果逐个对各个主机版本升级并进行系统环境的配置将产生庞大的工作量,一种可以实现对主机的集成管理[9]的设计成为必须。当前Solaris操作系统应用于许多企业服务器,相对于windows服务器,其具有稳定性高,网络完善的优点,本文是针对Solaris操作系统的主机提供的一种版本升级解决方案,主要阐述通过web页面远程控制Solaris主机对其进行升级和系统环境的配置过程,并且通过web页面实时跟踪进度的实现原理。

solaris;进度跟踪;集成管理;升级

本文著录格式:于洋. web远程升级Solaris及进度跟踪设计[J]. 软件,2016,37(9):115-117

0 引言

Solaris操作系统属于Unix的一个分支,由之前SUN公司研发,SUN被收购之前的操作系统代码仍为开源。当前Solaris操作系统用于许多Oracle服务器。由于Solaris操作系统集成了SSH(Secure Shell)服务,SSH可以在本地主机和远程主机之间,建立命令和数据的传输通道,服务器端通过web服务器来SSH公钥登录[7-8]到需要升级的Solaris主机,并且传递数据和命令给Solaris主机。而Solaris主机又可以通过http请求的方式将主机的重要进度信息返回给web服务器。

1 系统框架设计

器中,MySQL数据库存放主机的信息,包括主机的硬件类型、域、当前最高版本对应的BE(Boot Enviroment启动环境)名称等;当有新的Solaris主机注册到系统中后,web服务器通过SSH公钥登录的方式首先为该主机安装操作系统升级和系统环境配置所需要的Shell脚本。

图1 系统整体框架

图1 中总体设计主要分为两个部分,web服务

在Solaris主机群中,设计需要的脚本主要包括创建状态文件脚本stat-create、更改主机状态的脚本stat-changer、执行脚本execution、环境配置脚本env-conf和状态监控脚本stat-watch。实现对Solaris系统状态的监控和采集。

2 主机状态跟踪设计

2.1系统升级

由于Solaris的BE(Boot Environment启动环境)对应着不同操作系统的版本,安装的系统包版本不同,每次系统升级都会创建一个新的BE作为最新操作系统版本的启动环境。但是在Solaris文件系统/export目录下的文件在各个BE中的内容是相同的,不会因为启动环境的不同而改变。在升级时最好能在当前主机的最高版本进行升级,从而最大程度避免由于依赖而产生的升级错误,而更换到主机最高版本BE需要重新启动主机,为了实现整个过程的自动化,可以使系统在重新启动后继续完成系统升级等功能,则在/export目录下创建隐藏目录.stat,在.stat目录下创建一个隐藏文件,该文件的文件名用于判断当前主机的状态,而隐藏文件的内容记录主机当前的最高版本的BE名称,设计stat-changer脚本的功能在于更改.stat目录下的隐藏文件的名称,具体名称与主机状态对应为:.upgrade为主机为更新状态、.basic_config为环境配置状态、.finish为升级和配置完成状态、.fail为升级失败状态。

图1中SSH远程安装完成必要脚本后,运行stat-create脚本添加注册时该主机的最高版本的BE名称作为参数,在/export目录下创建隐藏目录.stat,在.stat目录下创建.finish文件,在文件中写入作为参数传递来的主机最高版本的BE名称。设置系统启动后自动运行execution和stat-watch脚本。

当用户通过web网页为主机进行升级后,web服务器SSH公钥登录到主机并运行stat-changer脚本,stat-changer通过读取.stat目录下文件的内容获得主机最高版本的BE名称,并且判断最高版本的BE是否为当前运行的BE,如果不是则激活主机最高版本的BE,如果是最高版本则不做任何操作,修改.stat目录下的文件名为.upgrade,需要升级主机操作系统重新启动后,运行execution脚本,该脚本程序流程如图2所示。

图2中如果检测文件名为.finish则不对主机做任何操作,如果是.upgrade则对主机执行升级命令,升级完成后返回0则说明升级成功,修改文件名为.basic_config,并且修改文件内容中的主机最高版本BE名称为当前升级到的BE的名称,重启主机;如果升级失败,则把文件名称改为.fail重启主机。重启后主机会在最新版本的BE上启动,检测文件名为.basic_config则运行env-conf脚本对主机进行系统环境的配置,具体配置包括log session、创建用户等基本内容,本文不对该脚本内容进行详细介绍。如果文件名为.fail则向web服务器报告升级失败状态,此时主机仍可以正常运行,只是在升级之前的版本上运行。

图2 execution

2.2状态跟踪

stat-watch脚本运行进程开启FIFO管道,实现与stat-changer、execution和env-conf脚本运行进程间的通信,由stat-watch进程对主机的运行状态了进度进行监控,对于不同脚本运行的进程,通过不同的协议与stat-watch进程进行通信,具体协议设置如下表,以stat-changer为例。

图3 进度跟踪框架

stat-changer、execution和env-conf脚本进程在脚本开始运行或结束运行时向有名管道中写入表1中表示开始或结束的协议,退出协议的M值为退出状态码。在重要的进度状态向管道中写入表1中表示关键描述的协议,协议中的msg即为关键描述部分。当操作系统升级成功后,向管道写入带有最新的系统版本号的消息协议。

表1 stat-changer进度跟踪消息协议

stat-watch脚本进程在发现有名管道中有数据时,读取管道中的数据,根据消息协议,解析消息的内容来源,通过对协议的解析,了解消息内容作用,在原有消息前加入“主机名”(注:同域中主机名一般不会出现重复,可以作为唯一识别)。对于需要web服务器更新数据库的消息如带有最新版本号的消息,在原有消息前加入“主机名|UPDATE|”协议头。stat-watch脚本通过http协议POST请求web服务器用来接收消息的API,把消息内容作为请求的内容返回给web服务器。

web服务器接收到消息内容,web服务器的消息处理API对消息内容进行解析,同样采用表1中的消息协议,对于不需要更新数据库信息的消息,根据主机名在web服务器本地文件系统创建日志文件,根据SC、EXE、ENV来判断出当前执行的脚本和正在进行的操作。把返回的重要进度分块存入日志文件。用于监控的web页面实时刷新,从日志文件中读取处于升级状态的主机的最新进度。由于进度信息存在了本地文件系统,所有即使退出了用于监控web页面,之后再次打开数据依然保留。对于带有UPDATE|的消息,web服务器根据其主机名更新主机在数据库中的信息。如果消息中显示的退出码不是正常退出,则说明主机在升级过程中出现了异常,判断是升级异常还是环境配置异常,如果是系统环境配置异常,用户根据状态信息可以查看是哪些环境在配置过程中出现了错误。如果是升级异常,则表示升级没有成功,用户同样可以查看具体出现异常的位置了,用户可以对出错主机的操作系统进行检测后再进行升级,或选择手动升级。

3 总结

本文主要介绍了针对Solaris操作系统的主机通过web页面对其进行升级和系统环境的配置过程,并且通过web页面实时跟踪进度的实现原理。本文涉及了Solaris操作系统、Shell脚本、SSH公钥登录、进程间通信、http协议、文件I/O、数据库应用等多种技术,该设计理论得到了实践的验证。该实现原理不仅仅可以用在系统的升级,同时还可以用于系统的安装和测试等方面,根据需要可以将更多的需求按照该原理集成到管理系统中,可拓展性强。由于Solaris操作系统是Unix-like的操作系统,而本文介绍的设计理论几乎没涉及Solaris特殊功能,所以该理论设计同样可以用于Linux或Unix等操作系统,实现跨平台运行。

[1] 喻刚, 王国生, 张磊“基于Solaris的综合信息系统设计与实现”10.3969/j.issn.1006-6675-B.2012.01.029.

[2] 曹江华, 李岩丽“Solaris10系统管理”, 电子工业出版社978-7-121-09895-6, 2010.

[3] 李向群“solaris操作系统原理”, 机械出版社, 978-7-111-22641-3, 2008.

[4] SHEN yang “Webmin管理Sun Solaris 10 x86 Unix系统”10.3969/j.issn.1007-5348.2008.12.003.

[5] Janice Winsor著“SOLARIS系统管理员指南”机械工业出版社.

[6] Arnold Robbins/Nelson H. F. Beebe “SHELL脚本学习指南”机械工业出版社.

[7] 黄洋, 宋俊德, 宋美娜, 等. 基于本体与SSH架构的异构数据集成框架的研究[J]. 软件, 2014, 35(11): 36-41.

[8] 王雪梅, 郭丽娜. 基于SSH的在线考试系统的设计与实现[J]. 软件, 2015, 36(12): 132-136.

[9] 李可, 李昕. 基于Hadoop生态集群管理系统Ambari的研究与分析[J]. 软件, 2016, 37(02): 93-97.

Remote Upgrade of Solaris and Progress Tracking Design

YU Yang (College of Communication and Signal Processing, Beijing University of Posts and Telecommunications, Haidian District, Beijing)

Modern enterprises has many unit server hosts , upgrading and configuring the operating system one by one will produce huge workload, one design which can achieve the integrated management of the host[9]becomes necessary. The current Solaris operating system which used in many enterprise servers, compared to windows server, has the advantages of high stability, perfect network, this article host provides a version upgrade solution for the Solaris operating system, mainly through web pages remote control Solaris host to upgrade its system environment and the configuration process, and through the web page to track the progress of real-time principle.

Solaris; Progress tracking; Integrated management; Upgrade

TP 311

A

10.3969/j.issn.1003-6970.2016.09.027

于洋,北京邮电大学研究生(1991-)

通讯联系人: 于洋(1991-)

猜你喜欢

脚本消息升级
酒驾
小投入,大升级 Polk Audio Monitor XT系列
安奇奇与小cool 龙(第二回)
幸福,在“家门口”升级
一张图看5G消息
数据库系统shell脚本应用
回暖与升级
快乐假期
消息
消息