更全的杂志信息网

基于Saltstack高校自动化运维平台的应用研究

更新时间:2009-03-28

随着高校信息化的不断发展,高校的各种业务应用服务器数量持续增加,运维和管理成本直线上升。传统运维模式下,校园运维人员依靠繁琐的手工配置和各种运维脚本来进行服务器的管理,这种模式在原来校园业务增加不快的情况下能满足要求。但是在校园业务快速增加的情况下,依靠传统模式将无法满足校园业务应用服务器快速批量部署和管理的要求。因此建设自动化运维平台已经成为校园数据中心运维急需完成的任务,通过校园数据中心自动化运维平台的建设,高校能够实现对数据中心服务器的自动化的运维管理,大幅度提高高校数据中心的运维效率和水平[1]

当前主流的开源自动化运维工具有Ansible、saltStack、Puppet。这3种主流的工具都能实现自动化运维管理,Puppet采用Ruby开发,配置脚本复杂,可移植性差,不太适合快速部署和二次开发。Ansible、Saltstack都是采用python开发,具有良好的二次开发接口和可移植性,并且都支持将运维命令写成yaml格式文件进行批量配置管理。但是Ansible对服务器的配置管理是采用SSH协议响应速度慢[2]。而Saltstack采用ZeroMQ消息队列服务来传输对服务器的配置管理信息,响应速度比Ansible快很多。Django是一个基于python的web开发框架,框架本身包含了丰富的中间件组件,能快速使用python开发各种web应用程序,由于Saltstack没有前端web操作界面,将采用Django结合Saltstack开发高校自动化运维平台[3]

1 Saltstack开源运维技术

1.1 Saltstack简介

Saltstack是一款强大的轻量级数据中心基础平台管理工具,基于python开发实现,系统执行效率高,可扩展性强。Saltstack架构主要由Master和Minion构成,通过ZeroMQ轻量级消息队列进行通信,消息通信采用AES安全加密和msgpack来完成,保证了Saltstack系统的安全性和秒级响应时间[4]。通过在数据中心部署Saltstack环境,可以轻松管理上万台的服务器,主要包括配置管理和远程执行两大功能,能根据不同业务特性进行配置管理的集中化、操作系统及软件包管理、文件管理、服务器状态数据采集等。

1.2 Saltstack系统结构

Saltstack的部署节点类型被分为3种类型,包括Master、Syndic和Minion节点。Master节点存储配置管理信息和充当命令远程执行控制中心,该节点用来发送配置和命令到Minion节点上运行,并接受Minion节点的执行反馈信息,一个安装在Master节点的守护进程salt-master负责提供这些功能。Syndic作为代理节点用来充当Minion节点和Master节点之间的代理角色,Syndic节点接收上层Master节点的配置信息和远程执行命令,将这些信息发送给下层的Minion节点,同时接受下层Minion节点执行的反馈结果。Syndic代理了所有Master节点与Minion节点的通信,这样做一方面可以将Master节点的负载分担给多个Syndic。另一方面,在跨数据中心的数据环境下,在分数据中心部署Syndic节点,也可以降低Master通过广域网访问Minion的成本并提高了安全性。Minion节点作为受管理的节点,接收Master节点所发送来的配置管理信息和远程执行命令并执行,同时反馈执行信息和底层主机信息给Master节点[5]。Master、Syndic和Minion节点之间采用ZeroMQ消息中间件进行通信,ZeroMQ消息中间件作为Saltstack的内置库能够在各个节点之间高速传递信息。ZeroMQ采用公钥系统对各个节点之间的通信进行加密,当Minion节点需要和Master节点进行通信时,Minion节点将产生一对密匙对,私钥用来加密自己发送的信息,同时将自己的公钥发送给Master节点来进行信息解密,上述加解密过程快速安全,为Saltstack各节点之间的安全快速通信提供了保障[6]

1.3 Saltstack的功能

Saltstack内置动态高速通信消息总线,为实现配置管理,远程执行功能提供通讯基础,可以利用Saltstack对上万台主机实现高效安全的配置管理,远程命令执行。配置管理包括配置文件的下发、版本更新、依赖关系指定和管理、软件包管理等方面。配置管理采用编写基于YAML的state文件的形式来完成,state文件主体是YAML描述,其中可以包含jinja模板,可以定义变量,而且提供了一个静态变量系统Grains和一个动态的变量系统Pillar来帮助编写state配置,几种特点结合起来能提供强大的state配置文件表述能力。比如要完成指定的多台主机软件包管理,只需要编写软件包管理的state文件,然后将state文件同步到Minion主机节点就可以实现。远程命令执行则是指从Master节点批量下发命令到Minion机器执行,Saltstack包含了100多个种类的命令模块,如cmd(命令行执行)、apt(系统包管理)、进程管理等,当进行远程命令执行时,Master节点可以通过ZeroMQ消息中间件将命令内容并行下发到Minion节点,由各个Minion节点在本节点执行[7]

2 Saltstack自动化运维平台应用研究

2.1 应用研究背景

随着高校信息化的不断深入,高校的各种业务应用系统越来越多,导致高校数据中心服务器数量迅猛增加。原有的基于传统运维的模式下,各个服务器的系统和应用的安装部署,都需要在每一台服务器上手动进行,无法批量针对服务器进行部署,导致服务器部署周期长,运维效率底下。校园数据中心的服务器数量众多,品牌各异,原来一般采用不同的运维工具对服务器进行监控和管理,没有一个统一的运维平台来实现对数据中心的服务器来进行高效管理。面对上述高校数据中心运维过程中存在的问题,建设基于Saltstack校园数据中心自动化运维平台能解决上述问题,大幅度提高高校数据中心的信息化水平。

2.2 Saltstack校园自动化运维平台

参考文献

在对征兵宣传片进行报道时,西媒也会借助其他个体叙事来引导读者进行特定方式的解读。例如澳大利亚媒体《第九新闻》在其报道中这样写道:

其次,农产品流通环节不畅。目前东营市农产品市场数量明显不足,现有农产品市场设施不健全,信息设备缺乏,市场信息发布方式简单,服务不到位[6]。

  

图1 校园自动化运维平台结构图

从以上基于Saltstack的校园自动化运维平台架构分析可以看出,该平台设计了web运维管理前端、Master节点、Mysql数据库的负载均衡集群,保证了整个平台的高可用性和高性能。后期如果数据中心服务器增加只需要对相关集群进行扩充就可以解决性能瓶颈问题。基于Django前端框架本平台实现了Saltstack的前端web运维管理界面,通过该界面数据中心管理员可以实现数据中心校园应用的批量部署,服务器系统的批量维护,远程命令执行和软件版本管理等功能。通过对SaltStack Returner执行方式的修改,由Master节点集中返回执行结果并存储在Mysql数据库中,改变了Saltstack默认由各个Minion节点分散返回执行结果、效率低下的问题。

3 结 语

在高校信息化不断深入的进程中,高校业务应用高速增长,数据中心的服务器数量急剧增加。校园数据中心面临着业务应用部署效率低、服务器运维管理难等问题。利用开源Saltstack基础平台管理工具和Django前端框架构建的自动化运维平台能解决这些问题,该平台不但能提供统一的运维平台来对数据中心的服务器进行管理,还能对校园应用进行批量部署和版本管理,为高校数据中心的信息化发展提供了良好的底层运维保障。

面对学校数据中心运维存在的问题,利用开源Saltstack基础平台管理工具和Django前端框架构建了学校数据中心的自动化运维平台。Saltstack作为后端提供数据中心服务器运维管理的功能,基于Django前端框架开发了前端web运维管理界面作为提供给管理人员的接口,整个系统的架构图如图1所示。

[3] Colton M. Mastering SaltStack-Second Edition[M].Packt Publishing,2016:8-10.

[2] 陈金窗,沈灿.Ansible自动化运维:技术与最佳实践[M].北京:机械工业出版社,2016:11-12.

[1] 陆春,黄杰,陈云.高校信息系统运维自动化的研究与实践[J].中国教育信息化,2014(05):85-87.

第二,农村环境治理的当期系数与滞后系数均为负数,其取值分别为-0.7152、-0.5286,且均在10%的显著性水平下通过了检验,这说明农村环境治理对我国农业绿色发展具有负向影响,与本文的预期影响一致。原因在于环境污染治理投资总额占财政支出比重越大,表明该地区环境污染较为严重,土壤、气候、水资源等农村环境条件较为恶劣,阻碍了农业绿色发展水平的提升。

前端web运维管理界面采用两台服务器做负载均衡集群,保证运维平台web管理界面的可靠性,运维平台web管理界面基于Django前端框架使用python来开发,由于Saltstack有rest接口的API库,可以用python来调用这些API来实现前后端的连接。后端Saltstack的运维管理部分,为保证整个平台的响应时间和服务可用性,采用Master节点集群方式,来提高Master端的并发能力和可靠性。数据中心需要管理的服务器作为Minion节点,全部安装Saltstack的agent端,对于少数不能安装agent的服务器将使用ssh的方式,来实现对服务器的管理[8]。由于每一次命令执行和配置管理的返回结果,需要集中存储以便日后查看,本平台对SaltStack Returner的执行方式进行了修改,将各个Minion节点通过Returner 返回执行结果分散处理的方式,改为了Master节点集中通过Returner来返回执行结果,同时将执行结果存储在Mysql数据库中,Mysql数据库采用二台服务器集群部署的方式来实现高可用性。

沥青混凝土中的集料是可以称作是它的骨架,集料的质量能够决定混凝土的整体强度,对混凝土的支撑能力有重要的影响,在集料的质量控制中首先应该保证集料的外形上接近立方体,保证其有良好的稳定性,另外由于细集料和粗集料有不同的用处,例如细集料是为了对粗集料中间的空隙进行填充,因此还应该对集料的体积大小进行严格的把控。

[4] 刘天斯.Python自动化运维[M].北京:机械工业出版社,2014:252-253.

[5] 刘英杰.SaltStack运维实战[M].北京:电子工业出版社.2016:3-6.

美国容量市场和备用服务市场均运行多年,在供需平衡的情况下,容量市场的价格等于发电成本减去在能量市场和辅助服务市场中已补偿的成本。目前多数国家的容量市场与美国的设计理念一致,即系统装机容量将平衡在基准峰荷机组成本刚好回收的点上。

[6] 薛鹏飞,胡荣贵,胡劲松.基于ZeroMQ的分布式系统通信方法[J].计算机应用,2015(S2):34-37.

[7] 吴文豪.自动化运维软件设计实战[M].北京:电子工业出版社,2015:77-79.

 
谢超群
《洛阳理工学院学报(自然科学版)》2018年第01期文献

服务严谨可靠 7×14小时在线支持 支持宝特邀商家 不满意退款

本站非杂志社官网,上千家国家级期刊、省级期刊、北大核心、南大核心、专业的职称论文发表网站。
职称论文发表、杂志论文发表、期刊征稿、期刊投稿,论文发表指导正规机构。是您首选最可靠,最快速的期刊论文发表网站。
免责声明:本网站部分资源、信息来源于网络,完全免费共享,仅供学习和研究使用,版权和著作权归原作者所有
如有不愿意被转载的情况,请通知我们删除已转载的信息 粤ICP备2023046998号