CN109522029A - 一种部署云平台技术组件的方法及装置 - Google Patents
一种部署云平台技术组件的方法及装置 Download PDFInfo
- Publication number
- CN109522029A CN109522029A CN201811398246.3A CN201811398246A CN109522029A CN 109522029 A CN109522029 A CN 109522029A CN 201811398246 A CN201811398246 A CN 201811398246A CN 109522029 A CN109522029 A CN 109522029A
- Authority
- CN
- China
- Prior art keywords
- script
- cloud platform
- deployment
- platform technology
- technology component
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种部署云平台技术组件的方法及装置,该方法包括:定义变量脚本,其中的各公共变量均唯一对应一待执行安装部署命令;针对待部署的若干云平台技术组件,确定各云平台技术组件的自动化部署脚本;确定针对该若干云平台技术组件的调度编排脚本;设置可修改配置文件,其中定义有各待配置服务器节点的角色及各角色的预设部署构架定义;经外部触发通过运行初始化脚本,根据配置文件中服务器节点角色的部署构架定义,通过运行调度编排脚本,从而基于变量脚本分别运行各自动化部署脚本,以分别将各云平台技术组件安装部署至服务器节点。本方案能够降低云平台技术组件部署过程的人为参与度,以提高云平台的现场交付效率。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种部署云平台技术组件的方法及装置。
背景技术
Web容器、数据库、消息队列和缓存是云计算时代最为常用的几类中间件,而云平台作为云计算架构中非常重要的一层,往往需要这些中间件协同工作,所以在云平台交付过程中往往面临技术组件数量繁多、难以集成、交付困难的问题。
目前,云平台技术组件部署过程的人为参与度较高,使得云平台的现场交付效率较低。
发明内容
本发明提供了一种部署云平台技术组件的方法及装置,能够降低云平台技术组件部署过程的人为参与度,以提高云平台的现场交付效率。
为了达到上述目的,本发明是通过如下技术方案实现的:
第一方面,本发明提供了一种部署云平台技术组件的方法,定义变量脚本,其中,所述变量脚本中的每一个公共变量均唯一对应有一待执行的安装部署命令;
针对待部署的至少一个云平台技术组件,确定每一个所述云平台技术组件的自动化部署脚本;
确定针对所述至少一个云平台技术组件的调度编排脚本;
设置可修改的配置文件,所述配置文件中定义有每一个待配置的服务器节点的角色,以及定义有每一个所述角色的预设部署构架定义;
还包括:
在接收到外部针对预设的初始化脚本的开始执行命令时,通过运行所述初始化脚本,分别针对每一个所述服务器节点均执行:根据所述配置文件中定义的当前服务器节点的角色的预设部署构架定义,通过运行所述调度编排脚本,从而基于所述变量脚本,分别运行每一个所述云平台技术组件的自动化部署脚本,以分别将每一个所述云平台技术组件安装部署至所述当前服务器节点。
进一步地,所述至少一个云平台技术组件包括:MariaDB数据库管理系统、Redis、RabbitMQ和Tomcat服务器中的至少一个;
其中,所述MariaDB数据库管理系统的自动化部署脚本包括:为MariaDB挂载专用磁盘、自动化安装、检查安装结果、配置修改、数据库授权、启动数据库服务、集群配置中的任意一个或多个脚本内容;
其中,所述Redis的自动化部署脚本包括:Redis自动化安装部署、哨兵节点配置修改、主节点配置修改、从节点配置修改、启动缓存服务中的任意一个或多个脚本内容;
其中,所述RabbitMQ的自动化部署脚本包括:为RabbitMQ挂载专用磁盘、自动化安装、初始化配置、配置修改、启动消息队列服务中的任意一个或多个脚本内容;
其中,所述Tomcat服务器的自动化部署脚本包括:为Tomcat挂载专用磁盘、把应用程序设置为系统服务、应用配置修改、注入sql(Structured Query Language,结构化查询语言)文件、JDK(Java Development Kit)和Tomcat及应用系统自动化安装、启动应用容器服务中的任意一个或多个脚本内容。
进一步地,所述定义变量脚本包括:利用Python定义所述变量脚本;
其中,所述公共变量为key-value,且value的取值为一所述安装部署命令。
进一步地,所述配置文件中定义有每一个待配置的服务器节点的角色,包括:所述配置文件中定义有每一个所述服务器节点的角色和IP地址的对应关系;
在所述根据所述配置文件中定义的当前服务器节点的角色的预设部署构架定义之前,进一步包括:确定所述当前服务器节点的目标IP地址;根据所述配置文件,确定所述目标IP地址对应的目标角色;确定所述当前服务器节点的角色为所述目标角色。
第二方面,本发明提供了一种部署云平台技术组件的装置,包括:
变量脚本定义单元,用于定义变量脚本,其中,所述变量脚本中的每一个公共变量均唯一对应有一待执行的安装部署命令;
自动化部署脚本确定单元,用于针对待部署的至少一个云平台技术组件,确定每一个所述云平台技术组件的自动化部署脚本;
调度编排脚本确定单元,用于确定针对所述至少一个云平台技术组件的调度编排脚本;
配置文件设置单元,用于设置可修改的配置文件,所述配置文件中定义有每一个待配置的服务器节点的角色,以及定义有每一个所述角色的预设部署构架定义;
安装部署节点,用于在接收到外部针对预设的初始化脚本的开始执行命令时,通过运行所述初始化脚本,分别针对每一个所述服务器节点均执行:根据所述配置文件中定义的当前服务器节点的角色的预设部署构架定义,通过运行所述调度编排脚本,从而基于所述变量脚本,分别运行每一个所述云平台技术组件的自动化部署脚本,以分别将每一个所述云平台技术组件安装部署至所述当前服务器节点。
进一步地,所述至少一个云平台技术组件包括:MariaDB数据库管理系统、Redis、RabbitMQ和Tomcat服务器中的至少一个;
其中,所述MariaDB数据库管理系统的自动化部署脚本包括:为MariaDB挂载专用磁盘、自动化安装、检查安装结果、配置修改、数据库授权、启动数据库服务、集群配置中的任意一个或多个脚本内容;
其中,所述Redis的自动化部署脚本包括:Redis自动化安装部署、哨兵节点配置修改、主节点配置修改、从节点配置修改、启动缓存服务中的任意一个或多个脚本内容;
其中,所述RabbitMQ的自动化部署脚本包括:为RabbitMQ挂载专用磁盘、自动化安装、初始化配置、配置修改、启动消息队列服务中的任意一个或多个脚本内容;
其中,所述Tomcat服务器的自动化部署脚本包括:为Tomcat挂载专用磁盘、把应用程序设置为系统服务、应用配置修改、注入sql文件、JDK和Tomcat及应用系统自动化安装、启动应用容器服务中的任意一个或多个脚本内容。
进一步地,所述变量脚本定义单元,用于利用Python定义所述变量脚本;
其中,所述公共变量为key-value,且value的取值为一所述安装部署命令。
进一步地,所述配置文件中定义有每一个待配置的服务器节点的角色,包括:所述配置文件中定义有每一个所述服务器节点的角色和IP地址的对应关系;
所述安装部署节点,还用于确定所述当前服务器节点的目标IP地址;根据所述配置文件,确定所述目标IP地址对应的目标角色;确定所述当前服务器节点的角色为所述目标角色。
第三方面,本发明提供了一种可读介质,包括执行指令,当存储控制器的处理器执行所述执行指令时,所述存储控制器执行如权利要求1至4中任一所述的部署云平台技术组件的方法。
第四方面,本发明提供了一种存储控制器,包括:处理器、存储器和总线;
所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述存储控制器执行如权利要求1至4中任一所述的部署云平台技术组件的方法。
本发明提供了一种部署云平台技术组件的方法及装置,该方法包括:定义变量脚本,其中的各公共变量均唯一对应一待执行安装部署命令;针对待部署的若干云平台技术组件,确定各云平台技术组件的自动化部署脚本;确定针对该若干云平台技术组件的调度编排脚本;设置可修改配置文件,其中定义有各待配置服务器节点的角色及各角色的预设部署构架定义;经外部触发通过运行初始化脚本,根据配置文件中服务器节点角色的部署构架定义,通过运行调度编排脚本,从而基于变量脚本分别运行各自动化部署脚本,以分别将各云平台技术组件安装部署至服务器节点。本发明能够降低云平台技术组件部署过程的人为参与度,以提高云平台的现场交付效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种部署云平台技术组件的方法的流程图;
图2是本发明一实施例提供的另一种部署云平台技术组件的方法的流程图;
图3是本发明一实施例提供的一种部署云平台技术组件的装置的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种部署云平台技术组件的方法,可以包括以下步骤:
步骤101:定义变量脚本,其中,所述变量脚本中的每一个公共变量均唯一对应有一待执行的安装部署命令。
步骤102:针对待部署的至少一个云平台技术组件,确定每一个所述云平台技术组件的自动化部署脚本。
步骤103:确定针对所述至少一个云平台技术组件的调度编排脚本。
步骤104:设置可修改的配置文件,所述配置文件中定义有每一个待配置的服务器节点的角色,以及定义有每一个所述角色的预设部署构架定义。
步骤105:在接收到外部针对预设的初始化脚本的开始执行命令时,通过运行所述初始化脚本,分别针对每一个所述服务器节点均执行:根据所述配置文件中定义的当前服务器节点的角色的预设部署构架定义,通过运行所述调度编排脚本,从而基于所述变量脚本,分别运行每一个所述云平台技术组件的自动化部署脚本,以分别将每一个所述云平台技术组件安装部署至所述当前服务器节点。
本发明实施例提供了一种部署云平台技术组件的方法,该方法包括:定义变量脚本,其中的各公共变量均唯一对应一待执行安装部署命令;针对待部署的若干云平台技术组件,确定各云平台技术组件的自动化部署脚本;确定针对该若干云平台技术组件的调度编排脚本;设置可修改配置文件,其中定义有各待配置服务器节点的角色及各角色的预设部署构架定义;经外部触发通过运行初始化脚本,根据配置文件中服务器节点角色的部署构架定义,通过运行调度编排脚本,从而基于变量脚本分别运行各自动化部署脚本,以分别将各云平台技术组件安装部署至服务器节点。本发明实施例能够降低云平台技术组件部署过程的人为参与度,以提高云平台的现场交付效率。
详细地,可以预先编写好变量脚本,且变量脚本中可以关联有各个待执行命令。由于这些待执行命令通常是安装部署各个云平台组件所必需且共用的,故该变量脚本可以是运行各个云平台技术组件的自动化部署脚本的基础,或称,各个云平台技术组件的自动化部署脚本的运行可依赖于该变量脚本。基于变量脚本以执行自动化部署脚本,即可实现相应云平台技术组件的部署安装。
详细地,为安装部署各个云平台技术组件,可以预先编写好相应的自动化部署脚本,这一自动化部署脚本中通常可定义有部署、配置和初始化的方法。
详细地,为安装部署各个云平台技术组件,可以预先编写好用于安装部署这些云平台技术组件的调度编排脚本,以定义部署流程。
详细地,待配置的服务器节点通常有多个,但不同服务器节点所起的角色可以是不同的,比如这两个服务器节点的角色都是[date],另两个服务器节点的角色都是[monitor],故可以将各个服务器节点的角色记入可修改的配置文件中。此外,角色不同,各个云平台技术组件各自的安装部署所需的配置参数通常不同,如此,配置文件中可记录有各角色的部署构架定义。基于此,运行调度编排脚本时,可通过确定好的角色,对应部署各个云平台技术组件。
由于配置文件可修改,当更改角色或安装部署其他服务器节点时,只需对应修改配置文件即可,如此,所有服务器节点的安装部署均可共用同一配置文件。可见,通过修改配置文件可确定部署构架。
本发明实施例中,节点配置抽象为部署节点的角色,利用角色把部署架构的定义集中到一个可修改的配置文件中,达到在不同环境中部署时只需要修改一个文件即可通用的目的。
详细地,可以预先编写好初始化脚本以作为统一入口,用户控制初始化脚本运行后,初始化脚本可以从配置文件中获知各个服务器节点的角色,进而根据角色,通过运行调度编排脚本,在变量脚本的基础之上,调度各个自动化部署脚本的运行,即完成服务器节点上各云平台技术组件的安装部署。
本发明实施例中,预先编写好初始化脚本,通过初始化脚本对配置文件、调度编排脚本、自动化部署脚本和变量脚本进行统一调度,进而实现一次执行完成所有动作。
综上可知,后续安装部署其他服务器节点时,只需简单修改配置文件的相应内容,并触发初始化脚本开始运行,即可实现各个服务器节点的自动化安装部署。由于人为参与度少,人为操作简单,自动化程度高,故可以很好的解决在云平台交付过程中涉及技术组件数量繁多、难以集成、交付困难的问题,大大降低了云平台交付的门槛,在不熟悉以上技术组件的情况下也可以轻松实现云平台的交付。
在本发明一个实施例中,可以通过Python编程脚本语言编排实现常用云平台技术组件的分布式集群快速部署。具体地,使用Python集中定义安装过程中需要执行的Shell命令。
详细地,Python是一种广泛使用的高级编程语言,属于通用型编程语言,作为一种解释型语言,Python的设计哲学强调代码的可读性和简洁的语法,尤其是使用空格缩进划分代码块,而非使用大括号或者关键词。相比于C++或Java,Python让开发者能够用更少的代码表达想法。不管是小型还是大型程序,该语言都试图让程序的结构清晰明了,因此非常适合用来开发系统管理员需要的脚本任务等。
基于此,在本发明的一个实施例中,所述定义变量脚本包括:利用Python定义所述变量脚本;其中,所述公共变量为key-value,且value的取值为一所述安装部署命令。
详细地,利用Python定义变量脚本,主要是定义安装部署过程中需要执行的命令。变量脚本的各公共变量中,key可以为变量名,可理解为待执行命令的内部识别标识,value可以为变量值,可理解为该待执行命令。
对于常用的云平台技术组件来说,通常情况下,MariaDB数据库管理系统、Redis、RabbitMQ、Tomcat服务器均较为常用。
详细地,MariaDB是MySQL这一关系型数据库管理系统的一个分支,可以为用户提供数据库的服务,主要由开源社区在维护。MariaDB可以完全兼容MySQL,包括API(Application Programming Interface,应用程序编程接口)和命令行。考虑到MySQL被收购后,有将MySQL闭源的潜在风险,因此可采用分支的方式来避开这个风险。MariaDB是目前最受关注的MySQL数据库衍生版,也被视为开源数据库MySQL的替代品。MySQL开源、对于分布式部署架构的良好支撑能力、简便易用等属性使其在云计算时代保有了强大的竞争力,而MariaDB作为目前来看MySQL的替代品不仅保持了MYSQL原有的这些优点,更在存储引擎的支持、线程池、运行速度等方面进行了增强,在云计算领域得到越来越多的青睐。
详细地,Redis是一个Key-Value存储系统。和Memcached这一高性能的分布式内存对象缓存系统类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,Redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。大型互联网平台以及各种云平台都在追求保证系统在海量数据环境下的高性能、高可靠性、高扩展性、高可用性、低成本,Redis可以为这个问题提供很好的解决方案。
详细地,RabbitMQ是一个由Erlang语言开发的AMQP(Advanced Message QueuingProtocol,高级消息队列协议)的开源实现,AMQP高级消息队列协议。它是应用层协议的一个开放标准,为面向消息的中间件设计,基于此协议的客户端与消息中间件可传递消息,并不受产品、开发语言等条件的限制。RabbitMQ最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。在异步处理、应用解耦、流量削峰、日志处理等方面RabbitMQ都可以有很大的发挥空间,而这些场景恰恰是云计算和大数据时代我们必须要解决的问题,当然,RabbitMQ对于分布式架构也有非常好的支持。
详细地,Tomcat服务器是一个免费的开放源代码的Web应用服务器,技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可。其运行时占用的系统资源小,扩展性好,且支持负载平衡与邮件服务等开发应用系统常用的功能。作为一个小型的轻量级应用服务器,Tomcat在中小型系统和并发访问用户不是很多的场合下被普遍使用,成为目前比较流行的Web应用服务器。在推崇微服务化,整个业界都在对传统巨石应用进行改造的背景下,Tomcat的这些属性都使它获得了越来越多的拥趸者。
基于上述内容,在本发明的一个实施例中,所述至少一个云平台技术组件包括:MariaDB数据库管理系统、Redis、RabbitMQ和Tomcat服务器中的至少一个;
其中,所述MariaDB数据库管理系统的自动化部署脚本包括:为MariaDB挂载专用磁盘、自动化安装、检查安装结果、配置修改、数据库授权、启动数据库服务、集群配置中的任意一个或多个脚本内容;
其中,所述Redis的自动化部署脚本包括:Redis自动化安装部署、哨兵节点配置修改、主节点配置修改、从节点配置修改、启动缓存服务中的任意一个或多个脚本内容;
其中,所述RabbitMQ的自动化部署脚本包括:为RabbitMQ挂载专用磁盘、自动化安装、初始化配置、配置修改、启动消息队列服务中的任意一个或多个脚本内容;
其中,所述Tomcat服务器的自动化部署脚本包括:为Tomcat挂载专用磁盘、把应用程序设置为系统服务、应用配置修改、注入sql文件、JDK和Tomcat及应用系统自动化安装、启动应用容器服务中的任意一个或多个脚本内容。
详细地,JDK是Java语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。
通常情况下,自动化部署脚本中可涉及到部署、配置及初始化的方法,通过运行自动化部署脚本,可以实现相应云平台技术组件的自动化安装部署。
基于上述内容,在本发明一个实施例中,MariaDB数据库管理系统的自动化部署脚本,可以主要包括下述7项方法内容:
mount(ip=None):为MariaDB挂载专用磁盘
common_install(ip):自动化安装
check_install(ip):检查安装结果
config_mysql():配置修改
grant_mysql(ip=None):数据库授权
start_mysql():启动数据库服务
set_mysql_ctl():集群配置
基于上述内容,在本发明一个实施例中,Redis的自动化部署脚本,可以主要包括下述5项方法内容:
install():Redis自动化安装部署
config_sentinel():哨兵节点配置修改
config_master():主节点配置修改
config_slave():从节点配置修改
run():启动缓存服务
基于上述内容,在本发明一个实施例中,RabbitMQ的自动化部署脚本,可以主要包括下述5项方法内容:
mount(ip=None):为RabbitMQ挂载专用磁盘
install_rabbitmq(ip=None):自动化安装
get_config_file():初始化配置
set_rabbitmq():配置修改
start_rabbitmq():启动消息队列服务
基于上述内容,在本发明一个实施例中,Tomcat服务器的自动化部署脚本,可以主要包括下述6项方法内容:
mount(ip=None):为Tomcat挂载专用磁盘
set_sys_service_common(ip):把应用程序设置为系统服务
config_properties_file(conf_section=None):应用配置修改
sql_import():注入sql文件
install():JDK、Tomcat及应用系统自动化安装
run():启动应用容器服务
在本发明的一个实施例中,所述配置文件中定义有每一个待配置的服务器节点的角色,包括:所述配置文件中定义有每一个所述服务器节点的角色和IP地址的对应关系;
在所述根据所述配置文件中定义的当前服务器节点的角色的预设部署构架定义之前,进一步包括:确定所述当前服务器节点的目标IP地址;根据所述配置文件,确定所述目标IP地址对应的目标角色;确定所述当前服务器节点的角色为所述目标角色。
详细地,IP地址可以决定各个服务器节点的唯一性且易于获取,故可以建立各个服务器节点IP地址与相应角色的对应关系,这一对应关系记入可修改的配置文件中,以基于IP地址实现各个服务器节点的自动化安装部署。
基于上述内容,在本发明一个实施例中,配置文件中,上述[data]这一角色对应的配置文件部分内容可以如下所示:
#数据节点ip,要求至少两个数据节点,多个数据节点之间用逗号分隔
ips=10.110.20.12,10.110.20.13
#rabbitMQ所用磁盘,推荐大于100G,将会挂载到/var/lib/rabbitmq目录,所有数据节点盘符需保持一致
disk_mq=/dev/sdc
#mysql数据库所用磁盘,推荐大于100G,将会挂载到/var/lib/mysql目录,所有数据节点盘符需保持一致
disk_mysql=/dev/sdd
#iop下载服务包缓存所用磁盘,推荐大于100G,将会挂载到/opt/iop目录,所有数据节点盘符需保持一致
disk_iop_cache=/dev/sde
在本发明一个实施例中,配置文件中,上述[monitor]这一角色对应的配置文件部分内容可以如下所示:
#IOP资源探测所用节点
ip=10.110.20.14
#rabbitMQ所用磁盘,推荐大于100G,将会挂载到/var/lib/rabbitmq目录
disk_mq=/dev/sdc
如图2所示,本发明一个实施例提供了另一种部署云平台技术组件的方法,具体包括以下步骤:
步骤201:利用Python定义变量脚本,其中,变量脚本中的每一个公共变量均唯一对应有一待执行的安装部署命令,公共变量为key-value,且value的取值为一安装部署命令。
详细地,自动化部署脚本的运行可依赖这一变量脚本。
步骤202:针对待部署的MariaDB数据库管理系统、Redis、RabbitMQ和Tomcat服务器这4个云平台技术组件,确定每一个云平台技术组件的自动化部署脚本。
详细地,各个自动化部署脚本中可以包括有部署、配置、初始化的方法,以供调度编排脚本所调度。基于变量脚本实现这一方法,即可实现自动化部署。
步骤203:确定针对这4个云平台技术组件的调度编排脚本。
详细地,通过调度这一调度编排脚本,以执行部署流程。
步骤204:设置可修改的配置文件,配置文件中定义有每一个服务器节点的角色和IP地址的对应关系,以及定义有每一个角色的预设部署构架定义。
详细地,修改配置文件,以用于确定部署构架。
步骤205:在接收到外部针对预设的初始化脚本的开始执行命令时,通过运行初始化脚本,分别针对每一个服务器节点均执行:确定当前服务器节点的目标IP地址,并根据配置文件,确定目标IP地址对应的目标角色。
详细地,用户执行初始化脚本以作为统一入口。
步骤206:根据配置文件中定义的目标角色的预设部署构架定义,通过运行调度编排脚本,从而基于变量脚本,分别运行每一个云平台技术组件的自动化部署脚本,以分别将每一个云平台技术组件安装部署至当前服务器节点。
如图3所示,本发明一个实施例提供了一种部署云平台技术组件的装置,可以包括:
变量脚本定义单元301,用于定义变量脚本,其中,所述变量脚本中的每一个公共变量均唯一对应有一待执行的安装部署命令;
自动化部署脚本确定单元302,用于针对待部署的至少一个云平台技术组件,确定每一个所述云平台技术组件的自动化部署脚本;
调度编排脚本确定单元303,用于确定针对所述至少一个云平台技术组件的调度编排脚本;
配置文件设置单元304,用于设置可修改的配置文件,所述配置文件中定义有每一个待配置的服务器节点的角色,以及定义有每一个所述角色的预设部署构架定义;
安装部署节点305,用于在接收到外部针对预设的初始化脚本的开始执行命令时,通过运行所述初始化脚本,分别针对每一个所述服务器节点均执行:根据所述配置文件中定义的当前服务器节点的角色的预设部署构架定义,通过运行所述调度编排脚本,从而基于所述变量脚本,分别运行每一个所述云平台技术组件的自动化部署脚本,以分别将每一个所述云平台技术组件安装部署至所述当前服务器节点。
在本发明一个实施例中,所述至少一个云平台技术组件包括:MariaDB数据库管理系统、Redis、RabbitMQ和Tomcat服务器中的至少一个;
其中,所述MariaDB数据库管理系统的自动化部署脚本包括:为MariaDB挂载专用磁盘、自动化安装、检查安装结果、配置修改、数据库授权、启动数据库服务、集群配置中的任意一个或多个脚本内容;
其中,所述Redis的自动化部署脚本包括:Redis自动化安装部署、哨兵节点配置修改、主节点配置修改、从节点配置修改、启动缓存服务中的任意一个或多个脚本内容;
其中,所述RabbitMQ的自动化部署脚本包括:为RabbitMQ挂载专用磁盘、自动化安装、初始化配置、配置修改、启动消息队列服务中的任意一个或多个脚本内容;
其中,所述Tomcat服务器的自动化部署脚本包括:为Tomcat挂载专用磁盘、把应用程序设置为系统服务、应用配置修改、注入sql文件、JDK和Tomcat及应用系统自动化安装、启动应用容器服务中的任意一个或多个脚本内容。
在本发明一个实施例中,所述变量脚本定义单元301,用于利用Python定义所述变量脚本;
其中,所述公共变量为key-value,且value的取值为一所述安装部署命令。
在本发明一个实施例中,所述配置文件中定义有每一个待配置的服务器节点的角色,包括:所述配置文件中定义有每一个所述服务器节点的角色和IP地址的对应关系;
所述安装部署节点305,还用于确定所述当前服务器节点的目标IP地址;根据所述配置文件,确定所述目标IP地址对应的目标角色;确定所述当前服务器节点的角色为所述目标角色。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
此外,本发明一个实施例还提供了一种可读介质,包括执行指令,当存储控制器的处理器执行所述执行指令时,所述存储控制器执行上述任一所述的部署云平台技术组件的方法。
此外,本发明一个实施例还提供了一种存储控制器,包括:处理器、存储器和总线;
所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述存储控制器执行上述任一所述的部署云平台技术组件的方法。
综上所述,本发明的实施例具有至少如下有益效果:
1、本发明实施例中,部署云平台技术组件的方法包括:定义变量脚本,其中的各公共变量均唯一对应一待执行安装部署命令;针对待部署的若干云平台技术组件,确定各云平台技术组件的自动化部署脚本;确定针对该若干云平台技术组件的调度编排脚本;设置可修改配置文件,其中定义有各待配置服务器节点的角色及各角色的预设部署构架定义;经外部触发通过运行初始化脚本,根据配置文件中服务器节点角色的部署构架定义,通过运行调度编排脚本,从而基于变量脚本分别运行各自动化部署脚本,以分别将各云平台技术组件安装部署至服务器节点。本发明实施例能够降低云平台技术组件部署过程的人为参与度,以提高云平台的现场交付效率。
2、本发明实施例中,节点配置抽象为部署节点的角色,利用角色把部署架构的定义集中到一个可修改的配置文件中,达到在不同环境中部署时只需要修改一个文件即可通用的目的。
3、本发明实施例中,后续安装部署其他服务器节点时,只需简单修改配置文件的相应内容,并触发初始化脚本开始运行,即可实现各个服务器节点的自动化安装部署。由于人为参与度少,人为操作简单,自动化程度高,故可以很好的解决在云平台交付过程中涉及技术组件数量繁多、难以集成、交付困难的问题,大大降低了云平台交付的门槛,在不熟悉以上技术组件的情况下也可以轻松实现云平台的交付。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种部署云平台技术组件的方法,其特征在于,
定义变量脚本,其中,所述变量脚本中的每一个公共变量均唯一对应有一待执行的安装部署命令;
针对待部署的至少一个云平台技术组件,确定每一个所述云平台技术组件的自动化部署脚本;
确定针对所述至少一个云平台技术组件的调度编排脚本;
设置可修改的配置文件,所述配置文件中定义有每一个待配置的服务器节点的角色,以及定义有每一个所述角色的预设部署构架定义;
还包括:
在接收到外部针对预设的初始化脚本的开始执行命令时,通过运行所述初始化脚本,分别针对每一个所述服务器节点均执行:根据所述配置文件中定义的当前服务器节点的角色的预设部署构架定义,通过运行所述调度编排脚本,从而基于所述变量脚本,分别运行每一个所述云平台技术组件的自动化部署脚本,以分别将每一个所述云平台技术组件安装部署至所述当前服务器节点。
2.根据权利要求1所述的方法,其特征在于,
所述至少一个云平台技术组件包括:MariaDB数据库管理系统、Redis、RabbitMQ和Tomcat服务器中的至少一个;
其中,所述MariaDB数据库管理系统的自动化部署脚本包括:为MariaDB挂载专用磁盘、自动化安装、检查安装结果、配置修改、数据库授权、启动数据库服务、集群配置中的任意一个或多个脚本内容;
其中,所述Redis的自动化部署脚本包括:Redis自动化安装部署、哨兵节点配置修改、主节点配置修改、从节点配置修改、启动缓存服务中的任意一个或多个脚本内容;
其中,所述RabbitMQ的自动化部署脚本包括:为RabbitMQ挂载专用磁盘、自动化安装、初始化配置、配置修改、启动消息队列服务中的任意一个或多个脚本内容;
其中,所述Tomcat服务器的自动化部署脚本包括:为Tomcat挂载专用磁盘、把应用程序设置为系统服务、应用配置修改、注入结构化查询语言sql文件、JDK和Tomcat及应用系统自动化安装、启动应用容器服务中的任意一个或多个脚本内容。
3.根据权利要求1所述的方法,其特征在于,
所述定义变量脚本包括:利用Python定义所述变量脚本;
其中,所述公共变量为key-value,且value的取值为一所述安装部署命令。
4.根据权利要求1至3中任一所述的方法,其特征在于,
所述配置文件中定义有每一个待配置的服务器节点的角色,包括:所述配置文件中定义有每一个所述服务器节点的角色和IP地址的对应关系;
在所述根据所述配置文件中定义的当前服务器节点的角色的预设部署构架定义之前,进一步包括:确定所述当前服务器节点的目标IP地址;根据所述配置文件,确定所述目标IP地址对应的目标角色;确定所述当前服务器节点的角色为所述目标角色。
5.一种部署云平台技术组件的装置,其特征在于,包括:
变量脚本定义单元,用于定义变量脚本,其中,所述变量脚本中的每一个公共变量均唯一对应有一待执行的安装部署命令;
自动化部署脚本确定单元,用于针对待部署的至少一个云平台技术组件,确定每一个所述云平台技术组件的自动化部署脚本;
调度编排脚本确定单元,用于确定针对所述至少一个云平台技术组件的调度编排脚本;
配置文件设置单元,用于设置可修改的配置文件,所述配置文件中定义有每一个待配置的服务器节点的角色,以及定义有每一个所述角色的预设部署构架定义;
安装部署节点,用于在接收到外部针对预设的初始化脚本的开始执行命令时,通过运行所述初始化脚本,分别针对每一个所述服务器节点均执行:根据所述配置文件中定义的当前服务器节点的角色的预设部署构架定义,通过运行所述调度编排脚本,从而基于所述变量脚本,分别运行每一个所述云平台技术组件的自动化部署脚本,以分别将每一个所述云平台技术组件安装部署至所述当前服务器节点。
6.根据权利要求5所述的部署云平台技术组件的装置,其特征在于,
所述至少一个云平台技术组件包括:MariaDB数据库管理系统、Redis、RabbitMQ和Tomcat服务器中的至少一个;
其中,所述MariaDB数据库管理系统的自动化部署脚本包括:为MariaDB挂载专用磁盘、自动化安装、检查安装结果、配置修改、数据库授权、启动数据库服务、集群配置中的任意一个或多个脚本内容;
其中,所述Redis的自动化部署脚本包括:Redis自动化安装部署、哨兵节点配置修改、主节点配置修改、从节点配置修改、启动缓存服务中的任意一个或多个脚本内容;
其中,所述RabbitMQ的自动化部署脚本包括:为RabbitMQ挂载专用磁盘、自动化安装、初始化配置、配置修改、启动消息队列服务中的任意一个或多个脚本内容;
其中,所述Tomcat服务器的自动化部署脚本包括:为Tomcat挂载专用磁盘、把应用程序设置为系统服务、应用配置修改、注入结构化查询语言sql文件、JDK和Tomcat及应用系统自动化安装、启动应用容器服务中的任意一个或多个脚本内容。
7.根据权利要求5所述的部署云平台技术组件的装置,其特征在于,
所述变量脚本定义单元,用于利用Python定义所述变量脚本;
其中,所述公共变量为key-value,且value的取值为一所述安装部署命令。
8.根据权利要求5至7中任一所述的部署云平台技术组件的装置,其特征在于,
所述配置文件中定义有每一个待配置的服务器节点的角色,包括:所述配置文件中定义有每一个所述服务器节点的角色和IP地址的对应关系;
所述安装部署节点,还用于确定所述当前服务器节点的目标IP地址;根据所述配置文件,确定所述目标IP地址对应的目标角色;确定所述当前服务器节点的角色为所述目标角色。
9.一种可读介质,其特征在于,包括执行指令,当存储控制器的处理器执行所述执行指令时,所述存储控制器执行如权利要求1至4中任一所述的部署云平台技术组件的方法。
10.一种存储控制器,其特征在于,包括:处理器、存储器和总线;
所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述存储控制器执行如权利要求1至4中任一所述的部署云平台技术组件的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811398246.3A CN109522029A (zh) | 2018-11-22 | 2018-11-22 | 一种部署云平台技术组件的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811398246.3A CN109522029A (zh) | 2018-11-22 | 2018-11-22 | 一种部署云平台技术组件的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109522029A true CN109522029A (zh) | 2019-03-26 |
Family
ID=65778792
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811398246.3A Pending CN109522029A (zh) | 2018-11-22 | 2018-11-22 | 一种部署云平台技术组件的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109522029A (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110012088A (zh) * | 2019-03-29 | 2019-07-12 | 山东浪潮云信息技术有限公司 | 一种基于Kubernets的Redis主从集群自动化部署方案 |
CN110096285A (zh) * | 2019-04-29 | 2019-08-06 | 杭州数梦工场科技有限公司 | 软件系统的部署方法、装置、计算机设备及存储介质 |
CN110224869A (zh) * | 2019-06-13 | 2019-09-10 | 北京航空航天大学 | 一种微服务网站的自动化部署方法 |
CN111399861A (zh) * | 2020-03-11 | 2020-07-10 | 中国建设银行股份有限公司 | 一种软件自动化部署方法及系统 |
CN111708549A (zh) * | 2020-06-19 | 2020-09-25 | 浪潮云信息技术股份公司 | 全生命周期的运维管理平台实现方法 |
CN112242920A (zh) * | 2019-07-19 | 2021-01-19 | 杭州海康威视数字技术股份有限公司 | 一种云平台部署方法、装置及节点 |
CN112612483A (zh) * | 2020-12-07 | 2021-04-06 | 苏州浪潮智能科技有限公司 | 一种基于云平台的安装部署系统及方法 |
CN112783611A (zh) * | 2021-01-29 | 2021-05-11 | 紫光云技术有限公司 | 一种通用的可配置的准备云数据库Redis实例资源的方法 |
CN112860379A (zh) * | 2021-02-24 | 2021-05-28 | 紫光云技术有限公司 | 一种云平台上安装部署redis高可用的方法 |
CN113259447A (zh) * | 2021-05-26 | 2021-08-13 | 中国电子信息产业集团有限公司第六研究所 | 云平台部署方法、装置、电子设备及存储介质 |
CN113342464A (zh) * | 2021-06-19 | 2021-09-03 | 南威软件股份有限公司 | 一种基于容器服务的应用构建部署方法 |
CN113434370A (zh) * | 2021-08-24 | 2021-09-24 | 统信软件技术有限公司 | 一种服务器集群部署方法、装置、计算设备及存储介质 |
CN113900677A (zh) * | 2021-10-18 | 2022-01-07 | 盐城金堤科技有限公司 | 程序运行环境的部署方法、装置、设备及计算机存储介质 |
CN114416122A (zh) * | 2021-12-30 | 2022-04-29 | 山东奥邦交通设施工程有限公司 | Etc门架系统软件自动批量安装的方法及系统 |
WO2022090839A1 (en) * | 2020-10-26 | 2022-05-05 | International Business Machines Corporation | Method and system for access control in versioned configuration of computing cluster |
WO2022126646A1 (en) * | 2020-12-18 | 2022-06-23 | Xeniro | Automated platform for managing, deploying and orchestrating highly distributed service applications |
CN114816558A (zh) * | 2022-03-07 | 2022-07-29 | 深圳开源互联网安全技术有限公司 | 一种脚本注入方法、设备及计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103167041A (zh) * | 2013-03-28 | 2013-06-19 | 广州中国科学院软件应用技术研究所 | 一种支持云环境应用集群自动化部署的系统及方法 |
WO2013104217A1 (zh) * | 2012-01-09 | 2013-07-18 | 华为技术有限公司 | 基于云基础设施的针对应用系统维护部署的管理系统和方法 |
CN104615466A (zh) * | 2015-02-05 | 2015-05-13 | 广州亦云信息技术有限公司 | 一种云平台部署方法和系统 |
CN106533753A (zh) * | 2016-11-07 | 2017-03-22 | 广州视源电子科技股份有限公司 | 一种分布式系统的角色配置方法及装置 |
CN106982266A (zh) * | 2017-05-27 | 2017-07-25 | 郑州云海信息技术有限公司 | 一种自动化部署集群的方法和装置 |
-
2018
- 2018-11-22 CN CN201811398246.3A patent/CN109522029A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013104217A1 (zh) * | 2012-01-09 | 2013-07-18 | 华为技术有限公司 | 基于云基础设施的针对应用系统维护部署的管理系统和方法 |
CN103167041A (zh) * | 2013-03-28 | 2013-06-19 | 广州中国科学院软件应用技术研究所 | 一种支持云环境应用集群自动化部署的系统及方法 |
CN104615466A (zh) * | 2015-02-05 | 2015-05-13 | 广州亦云信息技术有限公司 | 一种云平台部署方法和系统 |
CN106533753A (zh) * | 2016-11-07 | 2017-03-22 | 广州视源电子科技股份有限公司 | 一种分布式系统的角色配置方法及装置 |
CN106982266A (zh) * | 2017-05-27 | 2017-07-25 | 郑州云海信息技术有限公司 | 一种自动化部署集群的方法和装置 |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110012088A (zh) * | 2019-03-29 | 2019-07-12 | 山东浪潮云信息技术有限公司 | 一种基于Kubernets的Redis主从集群自动化部署方案 |
CN110012088B (zh) * | 2019-03-29 | 2022-05-24 | 浪潮云信息技术股份公司 | 一种基于Kubernets的Redis主从集群自动化部署方案 |
CN110096285A (zh) * | 2019-04-29 | 2019-08-06 | 杭州数梦工场科技有限公司 | 软件系统的部署方法、装置、计算机设备及存储介质 |
CN110224869A (zh) * | 2019-06-13 | 2019-09-10 | 北京航空航天大学 | 一种微服务网站的自动化部署方法 |
CN112242920A (zh) * | 2019-07-19 | 2021-01-19 | 杭州海康威视数字技术股份有限公司 | 一种云平台部署方法、装置及节点 |
CN112242920B (zh) * | 2019-07-19 | 2022-09-02 | 杭州海康威视数字技术股份有限公司 | 一种云平台部署方法、装置及节点 |
CN111399861A (zh) * | 2020-03-11 | 2020-07-10 | 中国建设银行股份有限公司 | 一种软件自动化部署方法及系统 |
CN111708549A (zh) * | 2020-06-19 | 2020-09-25 | 浪潮云信息技术股份公司 | 全生命周期的运维管理平台实现方法 |
WO2022090839A1 (en) * | 2020-10-26 | 2022-05-05 | International Business Machines Corporation | Method and system for access control in versioned configuration of computing cluster |
GB2615049A (en) * | 2020-10-26 | 2023-07-26 | Ibm | Method and system for access control in versioned configuration of computing cluster |
CN112612483A (zh) * | 2020-12-07 | 2021-04-06 | 苏州浪潮智能科技有限公司 | 一种基于云平台的安装部署系统及方法 |
CN112612483B (zh) * | 2020-12-07 | 2022-09-20 | 苏州浪潮智能科技有限公司 | 一种基于云平台的安装部署系统及方法 |
WO2022126646A1 (en) * | 2020-12-18 | 2022-06-23 | Xeniro | Automated platform for managing, deploying and orchestrating highly distributed service applications |
CN112783611A (zh) * | 2021-01-29 | 2021-05-11 | 紫光云技术有限公司 | 一种通用的可配置的准备云数据库Redis实例资源的方法 |
CN112860379A (zh) * | 2021-02-24 | 2021-05-28 | 紫光云技术有限公司 | 一种云平台上安装部署redis高可用的方法 |
CN113259447A (zh) * | 2021-05-26 | 2021-08-13 | 中国电子信息产业集团有限公司第六研究所 | 云平台部署方法、装置、电子设备及存储介质 |
CN113342464A (zh) * | 2021-06-19 | 2021-09-03 | 南威软件股份有限公司 | 一种基于容器服务的应用构建部署方法 |
CN113434370A (zh) * | 2021-08-24 | 2021-09-24 | 统信软件技术有限公司 | 一种服务器集群部署方法、装置、计算设备及存储介质 |
CN113900677A (zh) * | 2021-10-18 | 2022-01-07 | 盐城金堤科技有限公司 | 程序运行环境的部署方法、装置、设备及计算机存储介质 |
CN114416122A (zh) * | 2021-12-30 | 2022-04-29 | 山东奥邦交通设施工程有限公司 | Etc门架系统软件自动批量安装的方法及系统 |
CN114816558B (zh) * | 2022-03-07 | 2023-06-30 | 深圳市九州安域科技有限公司 | 一种脚本注入方法、设备及计算机可读存储介质 |
CN114816558A (zh) * | 2022-03-07 | 2022-07-29 | 深圳开源互联网安全技术有限公司 | 一种脚本注入方法、设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109522029A (zh) | 一种部署云平台技术组件的方法及装置 | |
US10970277B2 (en) | System and method for dynamic conversion of database accessing scripts during runtime in a mainframe rehosting platform | |
US11249983B2 (en) | Transaction change data forwarding | |
US8812627B2 (en) | System and method for installation and management of cloud-independent multi-tenant applications | |
JP2022501736A (ja) | オンデマンドコード実行システムにおける実行環境についての効率的な状態メンテナンス | |
US10338958B1 (en) | Stream adapter for batch-oriented processing frameworks | |
US9990225B2 (en) | Relaxing transaction serializability with statement-based data replication | |
US20120096043A1 (en) | Data graph cloud system and method | |
US10970311B2 (en) | Scalable snapshot isolation on non-transactional NoSQL | |
US10318521B2 (en) | Query processing with bounded staleness for transactional mutations in NoSQL database | |
US10379914B2 (en) | System and method for achieving specific behaviors by intercepting file access calls in a mainframe rehosting platform | |
US20160378754A1 (en) | Fast query processing in columnar databases with gpus | |
US10394775B2 (en) | Order constraint for transaction processing with snapshot isolation on non-transactional NoSQL servers | |
CN112527899A (zh) | 数据同步的方法、装置、设备以及存储介质 | |
CN112698921A (zh) | 一种逻辑代码运行方法、装置、计算机设备和存储介质 | |
US11151114B2 (en) | Log reader and parser sharing determination in a change data capture environment | |
US9313267B2 (en) | Using a same program on a local system and a remote system | |
US9473565B2 (en) | Data transmission for transaction processing in a networked environment | |
US10534640B2 (en) | System and method for providing a native job control language execution engine in a rehosting platform | |
US11256713B2 (en) | Virtual transaction queues for database replication | |
US20210365457A1 (en) | Graph database and methods with improved functionality | |
EP2530590A1 (en) | Object pipeline-based virtual infrastructure management | |
US20220179715A1 (en) | Containerized computing environments | |
US11907176B2 (en) | Container-based virtualization for testing database system | |
US11392562B2 (en) | Hybrid client transaction mode for key value store |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190326 |