CN106612206A - 对基础设施的安装和配置进行自动化的装置及其方法 - Google Patents
对基础设施的安装和配置进行自动化的装置及其方法 Download PDFInfo
- Publication number
- CN106612206A CN106612206A CN201610273639.6A CN201610273639A CN106612206A CN 106612206 A CN106612206 A CN 106612206A CN 201610273639 A CN201610273639 A CN 201610273639A CN 106612206 A CN106612206 A CN 106612206A
- Authority
- CN
- China
- Prior art keywords
- installation
- file
- solution
- mount message
- equipment
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0876—Aspects of the degree of configuration automation
- H04L41/0886—Fully automatic configuration
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Automation & Control Theory (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
Abstract
本发明公开一种对基础设施的安装和配置进行自动化的装置及其方法。本发明一实施例的对基础设施的安装和配置进行自动化的装置可包括:安装信息管理模块,用于接收开源解决方案的安装信息,并用树形结构的父‑子关系来管理所述安装信息;环境设置管理模块,用于接收设备的环境设置信息,并用树形结构的父‑子关系来管理所述环境设置信息;以及安装包管理模块,用于利用所述安装信息和所述环境设置信息,来生成安装包和安装自动化脚本。
Description
技术领域
本发明涉及一种对基础设施的安装和配置进行自动化的装置及其方法。更详细地,涉及一种利用关于多种开源解决方案的安装信息和关于待安装及配置该开源解决方案的对象即一个以上的设备的环境设置信息来按每个设备自动生成安装包并运行的方法及执行该方法的装置。
背景技术
以往,为了构建系统(system),使用了高价的设备和高价的商用解决方案(solution)。例如,通过在高价的设备中安装尤尼斯(Unix)、SAN网络存储(SANStorage)和甲骨文(Oracle)实时应用集群(RAC:Real Application Cluster)等来确保可用性和稳定性。需要安装在设备上的解决方案的数量相对较少,并且需要安装解决方案的设备的数量也相对较少。此外,由于大部分为商用解决方案,提供以简便的图形用户界面(GUI:Graphic User Interface)为基础的安装环境的情况较多,从而构建系统并不难。
但是,最近在需要处理的数据量以几何级数速度增长的基础设施(infrastructure)构建中,与纵向扩展(scale-up)相比,横向扩展(scale-out)为必不可少的重要条件,并且随着与云(cloud)分散环境和虚拟机(virtual machine)相关的技术发展,通过在与高价的设备和高价的商用解决方案相比更低廉的设备或虚拟机中安装多种基于开源(open-source)的解决方案来确保可用性和稳定性,从而费用也减少。例如,在低廉的设备中驱动Linux或虚拟机并在其上安装MySQL、MySQL高可用性(MHA:MySQLHigh Availability)和Percona等,并通过微服务架构(MSA:Micro-Service Architecture)、集群(clustering)结构等来提高性能。
但是,为了实现上述技术,需要将多种开源解决方案安装在一个以上的设备中,因此安装管理者学习与开源解决方案相关的知识时所消耗的时间和实际在各设备中安装开源解决方案时所消耗的时间与以往相比增加很多。此外,由于开源解决方案的安装和配置中所需要的设置也增加,因此当设置开源解决方案时产生失误的概率也较高。并且,由于大部分开源解决方案以命令行接口(CLI:Command Line Interface)为基础,因此未提供让开源解决方案的用户所使用的简便功能的情况较多。鉴于此,要求提供一种通过将多种开源解决方案自动安装并配置在一个以上的设备中来构建基础设施的方法。
发明内容
本发明所要解决的问题是提供一种对基础设施安装和配置进行自动化的装置及其方法。
本发明的技术问题并不限定于以上所提及的技术问题,本领域技术人员能够从下面的记载中明确理解没有提及的其它技术问题。
为了解决上述技术问题,本发明的一方面的对基础设施的安装和配置进行自动化的装置可包括:安装信息管理模块,用于接收开源解决方案的安装信息,并用树形结构的父-子关系来管理所述安装信息;环境设置管理模块,用于接收设备的环境设置信息,并用树形结构的父-子关系来管理所述环境设置信息;以及安装包管理模块,用于利用所述安装信息和所述环境设置信息,来生成安装包和安装自动化脚本。
在一实施例中,所述安装信息管理模块通过以所述安装信息的树形结构为基准对所述安装信息的各项目赋予固有标识符来查询值。
在另一实施例中,所述安装信息管理模块从用户接收所述开源解决方案的名称、说明和服务端口以作为所述安装信息的项目。
在又一实施例中,所述安装信息管理模块从用户接收所述开源解决方案的二进制文件和用于下载的统一资源定位符URL以作为所述安装信息的项目。
在又一实施例中,所述安装信息管理模块从用户接收所述开源解决方案的安装脚本模板文件以作为所述安装信息的项目。
在又一实施例中,所述安装信息管理模块从用户接收所述开源解决方案的环境设置模板文件、环境设置文件名和环境设置文件路径以作为所述安装信息的项目。
在又一实施例中,所述安装信息管理模块从用户接收所述开源解决方案的开始命令、结束命令、状态确认命令和状态确认结果值以作为所述安装信息的项目。
在又一实施例中,所述安装信息管理模块从用户接收所述开源解决方案的初始数据生成脚本模板文件以作为所述安装信息的项目。
在又一实施例中,所述安装信息管理模块从用户接收所述开源解决方案的附加信息以作为所述安装信息的项目。
在又一实施例中,所述环境设置管理模块通过以所述环境设置信息的树形结构为基准对所述环境设置信息的各项目赋予固有标识符来查询值。
在又一实施例中,所述环境设置管理模块从用户接收待安装所述开源解决方案的设备的数量和安装路径以作为所述环境设置信息的项目。
在又一实施例中,所述环境设置信息包括所述开源解决方案的环境设置文件的项目。
在又一实施例中,所述环境设置管理模块将包含在所述安装信息的安装脚本模板文件中的所述安装信息的各项目的固有标识符和所述环境设置信息的各项目的固有标识符替换为各个值来生成安装脚本文件。
在又一实施例中,所述环境设置管理模块将包含在所述安装信息的环境设置模板文件中的所述安装信息的各项目的固有标识符和所述环境设置信息的各项目的固有标识符替换为各个值来生成环境设置文件。
在又一实施例中,所述环境设置管理模块将包含在所述安装信息的初始数据生成脚本模板文件中的所述安装信息的各项目的固有标识符和所述环境设置信息的各项目的固有标识符替换为各个值来生成初始数据生成脚本文件。
在又一实施例中,所述安装包管理模块生成包含有每个设备的开源解决方案的安装文件和环境设置文件的每个设备的安装包。
在又一实施例中,所述安装包管理模块生成包含有每个设备的开源解决方案的安装脚本文件和初始数据生成脚本文件的每个设备的安装自动化脚本。
为了解决上述技术问题,本发明的另一方面的对基础设施的安装和配置进行自动化的方法可包括:安装信息管理步骤,接收开源解决方案的安装信息,并用树形结构的父-子关系来管理所述安装信息;环境设置管理步骤,接收设备的环境设置信息,并用树形结构的父-子关系来管理所述环境设置信息;以及安装包管理步骤,利用所述安装信息和所述环境设置信息,来生成安装包和安装自动化脚本。
为了解决上述技术问题,本发明的又一方面的对基础设施的安装和配置进行自动化的装置可包括:网络接口;一个以上的处理器;存储器,用于加载由所述处理器执行的计算机程序;以及贮存器,用于存储开源解决方案的安装信息和设备的环境设置信息。在此,所述计算机程序可包括:安装信息管理操作,接收所述安装信息,并用树形结构的父-子关系来管理所述安装信息;环境设置管理操作,接收所述环境设置信息,并用树形结构的父-子关系来管理所述环境设置信息;以及安装包管理操作,利用所述安装信息和所述环境设置信息,来生成安装包和安装自动化脚本。
根据如上所述的本发明,即使不具备与开源解决方案相关的知识的用户也能够容易且简便地安装开源解决方案。这是因为通过事先定义并管理开源解决方案的安装中所需要的信息,并自动生成安装中所需要的大部分信息,从而最大限度地减少了用户的输入。
此外,也能降低当安装开源解决方案时可能会产生的用户失误,并且还能降低开源解决方案的安装中所消耗的时间。这是因为按每个设备自动生成已完成设置的状态的安装包(package),并利用安装包在各设备中自动执行安装。
本发明的效果并不限定于以上所提及的效果,本领域技术人员能够从下面的记载中明确理解没有提及的其它效果。
附图说明
图1是本发明一实施例的对基础设施的安装和配置进行自动化的方法的顺序图。
图2是本发明一实施例的对关于开源解决方案的信息即安装信息进行管理的方法的顺序图。
图3a至图7c是用于说明本发明一实施例中使用的安装信息的示意图。
图8是用于说明以树形结构的父-子关系来构成本发明一实施例中使用的安装信息的示意图。
图9是本发明一实施例的对作为关于设备的信息的环境设置信息进行管理的方法的顺序图。
图10是用于说明本发明一实施例中使用的环境设置信息的示意图。
图11是用于说明以树形结构的父-子关系来构成本发明一实施例中使用的环境设置信息的示意图。
图12是用于说明本发明一实施例的自动生成防火墙列表的方法的示意图。
图13是本发明一实施例的自动生成安装包和自动化脚本的方法的顺序图。
图14是用于说明本发明一实施例的自动生成安装包和自动化脚本的方法的概念图。
图15是用于说明本发明一实施例的安装包和自动化脚本的概念图。
图16是本发明一实施例的对基础设施的安装和配置进行自动化的装置的方框图。
图17是本发明一实施例的对基础设施的安装和配置进行自动化的装置的硬件结构图。
具体实施方式
下面,参照附图,对本发明的优选实施例进行详细说明。参照附图的同时参照详细地后述的实施例,本发明的优点及特性以及实现这些的方法将会明确。但是,本发明并不限定于以下所公开的实施例,而是可以以彼此不同的多种方式实现,本实施例仅仅用于完整地公开本发明,并且为了向本发明所属技术领域的技术人员完整地告知本发明的范围而提供的,本发明仅由权利要求书的范围定义。在说明书全文中相同的附图标记表示相同的结构要素。
如果没有其它定义,则在本说明书中所使用的所有用语(包括技术用语及科技用语)能够以本发明所属技术领域的技术人员共同理解的含义使用。另外,在一般使用的词典中定义的用语只要没有明确的特殊定义,就不应理想地或过度地解释。在本说明书中,单数形式只要在句子中未特别提及则也包括复数形式。
在说明书中使用的“包括(comprises)”和/或“包含(comprising)”并不排除所提及的结构要素、步骤、动作和/或元素之外的一个以上的其它结构要素、步骤、动作和/或元素的存在或附加。
下面,本发明中提到的开源解决方案为中间件(middleware)形式的开源解决方案,是指需要安装在设备中的开源解决方案。例如有如Apache、Tomcat、Redis、RabbitMQ、Zookeeper、Kafka、Flume等的中间件形式的开源解决方案。
由于为了安装这种开源解决方案而需要事先学习相关的基本知识、安装方法、开始和结束方法、监测(monitoring)方法、环境设置方法、集群以及双重化配置方法等,因此在开源解决方案的安装中存在较多的困难。例如,曾经有一次为了驱动特定解决方案而构建基础设施时,经总计33次安装了总计14种的开源,并且为了管理总计64个的设置文件和总计400多个的设置项目,仅在安装期间就消耗了总计五日。下面,参照附图,对用于最大限度地减少这种不便的本发明的实施例进行更详细的说明。
图1是本发明一实施例的对基础设施的安装和配置进行自动化的方法的顺序图。
为了将多种开源解决方案安装在一个以上的设备中,需要事先整理关于开源解决方案的信息和关于设备的信息。即,作为关于开源解决方案的信息,需要事先定义开源解决方案安装用二进制(binary)文件、安装/开始/结束/监测方法,必要时还需要事先定义初始数据生成方法和除此之外的用户设置项目等,并将这些信息构建为数据库(database)。此外,作为关于设备的信息,需要按每个开源解决方案事先定义安装对象设备的数量、网际协议(IP)和其它必要信息等,并将这些信息构建为数据库。
下面,将关于开源解决方案的信息称为安装信息,将关于设备的信息称为环境设置信息。首先,关于多种开源解决方案,从用户接收安装信息并对该安装信息进行管理(S100)。此外,关于需要安装开源解决方案的一个以上的设备,从用户接收环境设置信息并对该环境设置信息进行管理(S200)。利用如此事先定义的安装信息和环境设置信息,来按每个设备自动生成安装包和自动化脚本(script)(S300)。如果按每个设备生成安装包和自动化脚本,则安装准备工作全部结束。之后,向作为安装对象的设备中的特定设备或其它外部设备上传自动生成的安装包和自动化脚本之后,该设备运行自动化脚本并通过网络连接而对作为安装对象的各设备(target,目标)自动进行安装及配置(S4000)。
根据这种安装过程,仅通过最小限度的用户输入也能够自动进行将多种开源解决方案安装在大量设备中的过程。此外,可通过对多种开源解决方案的安装中所需要的信息和文件进行综合管理,来减少安装管理者学习关于开源解决方案的基本知识时所消耗的时间。此外,通过对各设备的环境设置信息进行综合管理,能够自动生成与服务器台数无关地可一次性安装的安装包,并且能够减少安装管理者进行开源解决方案安装操作如通过网络进行的综合安装及安装顺序管理、开源解决方案之间的依赖性确认(dependency check)、防火墙测试(firewall test)、初始数据生成等操作时所消耗的时间。
综上,根据本发明,从用户接收安装信息和环境设置信息,并生成自动安装包来进行自动安装,通过这种方式本发明能够简化开源解决方案的安装过程。这与以往技术提供以下功能相比,具有从安装信息和环境设置信息的综合管理方面来看便利性增强,并且从自动安装方面来看效率提高的优点。现有技术所提供的功能如下:通过在已安装有各开源解决方案的基础设施环境中单纯对环境设置进行变更管理,或者对特定开源的安装包进行管理并在多个服务器中进行安装。
图2是本发明一实施例的对关于开源解决方案的信息即安装信息进行管理的方法的顺序图。
本发明中使用的安装信息均具有固有标识符(unique ID,唯一的ID),并且各信息以树形(tree)结构构成。即,以表示开源解决方案的最上位节点的固有标识符为基准,在该最上位节点下面以父/子关系的下位节点形式构成开源解决方案的安装信息。在此,为了便于理解,将“.”作为分隔符来对树形结构的信息进行说明。当然,除“.”以外,也可以采用“/”或“|”等多种分隔符来对树形结构的安装信息进行管理。
参照图2,需要按每个开源解决方案进行管理的安装信息如下。
首先,从用户接收开源解决方案的基本信息(S1200)。基本信息可以是开源解决方案的名称、说明和服务端口(service port)。归纳此,如下面的表1所示。
[表1]
其中,开源解决方案的名称是必须输入的项目,但说明或服务端口则可根据开源解决方案予以省略。这是因为,开源解决方案的说明是为用户提供的信息性输入项目,服务端口则根据开源解决方案也有时不存在。以下,当利用表来整理输入项目时,与(*)标示一同对必须要接收输入的项目进行说明。如果对开源解决方案仅输入一次开源解决方案的基本信息,则此后附加登记或更新开源解决方案的基本信息的情况会相对较少。
与具体例一同查看开源解决方案的基本信息。由阿帕奇软件基金会(ASF:ApacheSoftware Foundation)提供的Tomcat可以以如下方式接收基本信息。参照图3a,tomcat.name为“tomcat”,tomcat.description为“Servlet,JSP Container(容器)”,tomcat.port通过“8080”端口来服务。同样,阿帕奇(Apache)可以以如下方式接收基本信息。参照图3b,apache.name为“apache”,apache.description为“HTTP Server(服务器)”,apache.port通过“80”端口来服务。同样,由甲骨文(Oracle)提供的MySQL可以以如下方式接收基本信息。参照图3c,mysql.name为“MySQL”,mysql.description为“关系型数据库管理系统(RDBMS)”,mysql.port通过“3306”端口来服务。
通过图3a至图3c的例,了解了开源解决方案的基本信息。在此,服务端口为基本在该开源解决方案中使用的端口,大部分开源解决方案以设置的方式提供服务端口且能改变服务端口。在基本信息中输入的服务端口为在没有任何设置时应用的端口,以后也可以在作为关于设备的信息的环境设置信息中设置为可根据各设备通过并非基本端口的其它端口来服务开源解决方案。对此,稍后进行详细说明。
再次返回到图2,从用户接收开源解决方案的安装文件(S1200)。开源解决方案的安装文件也可以以二进制文件的形式直接上传,根据情况还可以接收能够下载该文件的URL。并且,进一步可接收该文件的版本信息和能够安装的操作系统。归纳此,如下面的表2所示。
[表2]
当从用户接收安装文件时,必须要接收二进制文件或能够下载文件的URL中的一个。此外,还需要一同接收该文件的版本信息和能够安装的操作系统。在此,用于安装的二进制文件是指开源解决方案的制作者以tar、gz、tgz、war、rpm等形式发布的文件。当然,当该开源解决方案依赖于其它特定模块(module)或库(library)时,优选通过将该模块或库包含在二进制文件中后上传安装文件。
与具体例一同查看开源解决方案的安装文件。Tomcat可以以如下方式接收安装文件。参照图4a,将“apache-tomcat-8.0.28-windows-x64.zip”作为tomcat.file.binary的值来接收,并且在阿帕奇Tomcat网站中输入文件下载地址http://apache.mirror.cdnetworks.com/tomcat/tomcat-8/v8.0.28/bin/apache-tomcat-8.0.28-windows-x64.zip以作为tomcat.file.url的值。由于至少必须要接收上述两个值中的一个值,因此该两个值均输入也无妨。在二进制文件和URL均被输入的情况下,内部可优先使用输入到二进制文件的值。由于篇幅受限,只是将tomcat.file.binary的值表达为“apache-tomcat-8.0.28-windows-x64.zip”,但实际上是通过从用户直接接收所上传的该文件而存储的值,而不是以文本(text)形式输入的值。并且,作为Tomcat的版本,对apache.file.version输入“8.0.28”,作为可安装的操作系统,对tomcat.file.os输入“win64”即64位windows操作系统。
同样,阿帕奇可以以如下方式接收安装文件。参照图4b,作为apache.file.binary上传了“httpd-2.4.17.tar.gz”,作为该文件的版本,对apache.file.version输入“2.4.17”,作为可安装的操作系统,对apache.file.os输入“linux”。在阿帕奇的情况下,上传二进制文件并省略URL。同样,MySQL可以以如下方式接收安装文件。参照图4c,作为mysql.file.binary上传了“mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz”,并且省略除此之外的信息。从文件名来看,MySQL的版本可能为5.6.27,可安装的操作系统有可能是linux。但是,如前所述,由于可省略版本或操作系统的信息,因此仅上传二进制文件也无妨。
通过图4a至图4c的例,了解了开源解决方案的安装信息。在此,安装文件的版本首先具有信息的性质。因此,当从用户接收关于安装文件的信息时,可省略安装文件的版本。但是,当在设备中安装开源解决方案时,安装文件的版本也可在通过指定版本来安装时使用。对此,稍后进行更详细说明。此外,可安装的操作系统同样首先具有信息的性质。但是,可安装的操作系统也可在根据安装开源解决方案的设备的操作系统而过滤并安装所需要的开源解决方案的安装文件时使用。大部分开源解决方案的制作者根据Linux或Windows操作系统来发布不同的安装文件,并且根据情况,还根据是32位操作系统还是64位操作系统来进一步细化安装文件后发布。因此,需要通过区分这些来进行管理。之前通过表1和图3a至图3c查看的基本信息一旦对开源解决方案登记一次,则之后需要修改的情况相对较少,但这次通过表2和图4a至图4c查看的关于安装文件的信息可根据开源解决方案的版本,且根据可安装的操作系统登记多个文件。但是,由于本发明中用树形结构来管理安装信息,因此登记多个不同版本或操作系统的安装文件也无妨。反而,如果登记根据版本和可安装的操作系统的多种安装文件,则具有能够与设备的操作系统对应或与需要安装的开源解决方案的版本对应地构建基础设施的优点。
再次返回到图2,从用户接收开源解决方案的安装脚本模板(S1300)。在此,开源解决方案的安装脚本模板是指在将之前登记的二进制文件或利用URL下载的文件安装到实际设备中时运行的安装脚本的模板。例如,在Linux的情况下sh扩展名的文件可以是安装脚本文件,在Windows的情况下bat扩展名的文件可以是安装脚本文件,这种安装脚本文件的模板文件是用户所上传的。归纳此,如下面的表3所示。
[表3]
与具体例一同,查看开源解决方案的安装脚本模板。阿帕奇可以以如下方式接收安装脚本模板。参照图5a,作为apache.command.install的值输入了“install.sh”。但这是将名称为“install.sh”的安装脚本模板文件本身上传后的值,因此为了有助于充分理解安装脚本模板,下面对安装脚本模板文件的内容进行说明。之前,首先对安装脚本文件的内容进行说明。
例如,安装脚本中可包含有解压二进制文件并执行配置(configure)、编译(make)、安装(make install)等命令。参照图5b,可见如下的bash shell脚本:该bash shell脚本解压图4的示例中登记的阿帕奇的二进制文件“httpd-2.4.17.tar.gz”并将其安装在“/usr/local/apache/”的路径中。解压二进制文件(第二行),并向已解压的目录移动(第三行),将安装路径设置为选项(第四行),并运行编译(第五行),进行安装(第六行)。实际上,关于这种安装脚本文件,以往的安装管理者为了在多台设备中安装开源解决方案,也将具有如图5b的内容的脚本文件上传到服务器中来运行。在此,我们通过将几种信息替换为变量来制作安装脚本模板文件。例如,像二进制文件“httpd-2.4.17.tar.gz”的值为与开源解决方案相关的信息,这种值可通过表2中的apache.file.binary变量来接收。此外,安装路径“/usr/local/apache/”为与设备相关的信息,该值可在后述的环境设置信息中通过node.apache.directory变量来接收。
即,实际要上传的文件并不是如图5b的例那样文件和安装路径以硬编码形式包含在里面的安装脚本,而是如图5c的例那样文件和安装路径以变量的形式包含在里面的安装脚本的模板文件。当然,由于当前图5c的状态为安装脚本的模板文件,因此无法运行,但在以后各个变量被替换(replace)为适当的值从而被转换为如图5b的脚本文件,因此不会有问题。如此,本发明接收用户登记的如图5c所示的安装脚本模板文件,该安装脚本模板文件为,将现有的如图5b的安装脚本文件中的安装信息和环境设置信息替换为变量而制成的模板文件。以后,当进行自动化安装时,通过将安装脚本模板文件的变量替换为与各个开源解决方案和设备相应的值而制作安装脚本文件并运行该安装脚本文件来进行安装。为此,与图5c的例相比安装脚本模板文件本身也需要制成更复杂,使得可将安装信息和环境设置信息作为变量接收并处理。为了有助于理解,图5c仅最大限度简单地例举了脚本,实际上也可以包含如用于从URL下载文件的wget等命令,并且还可以通过条件表达式包含多种用于根据文件的压缩方式进行解压的命令。此外,还可以包含有在安装全部结束之后删除安装时解压的同时产生的文件夹的命令。即,可包含与图5c的例相比更复杂更多样的命令,图5c只不过是一个示例而已。
在本发明中,定义与开源解决方案相关的安装信息和与设备相关的环境设置信息并另行管理这些信息的理由如下:通过对如当前的安装脚本的例那样在安装过程中从属于开源解决方案或从属于设备的信息进行分离并使其模板化,以简化安装过程本身并提高安装过程中使用的脚本文件或设置文件的再利用性。如果以变量形式接收安装文件和安装路径,则能提高安装脚本的再利用性,从而在安装其它相似的开源解决方案时也能利用该安装脚本,并且在其它设备中安装该开源解决方案时也能利用该安装脚本。与安装脚本文件同样地,对于开源解决方案的设置文件,如果将其做成模板,以便日后以由安装信息和环境设置信息管理的变量的形式接收从属于开源解决方案的信息或从属于设备的信息并进行设置,则能提高开源解决方案的设置文件的再利用性。即,通过安装脚本模板来对基础设施的安装进行自动化,并且通过环境设置模板来对基础设施的配置进行自动化,从而能够容易构建基础设施。此外,对关于开源解决方案的安装信息进行一次整理之后,在构建其它基础设施时也能再利用该安装信息,从而具有能够缩短为了利用开源解决方案而学习基本知识所消耗的时间。因此,安装管理者只需进行在更新开源解决方案的版本时抽空将更新情况反映到安装信息中的程度的维护即可。
再次返回到图2,从用户接收开源环境设置模板(S1400)。大部分开源解决方案制作者以能够设置开源解决方案的环境的方式提供设置文件。并且,环境设置文件并不具备其它特殊的形式,而是大部分以文本文件的形式构成,并且在该环境设置文件中存储有能够以键码-值(key-value)的形式设置的项目和项目值。根据情况,也提供XML(Extensible Markup Language,可扩展标记语言)形式的环境设置文件而不提供简单的文本文件,但其功能是大同小异的。环境设置模板是指这种环境设置文件的模板。归纳此,如下面的表4所示。
[表4]
当从用户接收环境设置模板时,根据情况也可以接收多个环境设置模板。此时,通过如cfg1、cfg2的序列号来接收多个环境设置模板文件。并且,如表4所示,环境设置模板文件、环境设置文件名和环境设置路径均为必要输入项目。与具体例一同,查看开源解决方案的环境设置模板。Tomcat可以以如下方式接收环境设置模板。参照图6a,Tomcat中上传了三个环境设置模板文件。当然,Tomcat实际使用的环境设置文件比该三个环境设置模板文件还多。上传了含有用于与外部应用程序联动的信息的application.properties的模板文件“application.properties.template”,上传了含有用于平衡Tomcat服务器之间负载(load-balancing)的信息的workers.properties的模板文件“workers.properties.template”,上传了含有Tomcat服务器的设置信息的server.xml的模板文件“server.xml.template”。在图5a中,将“install.sh”作为安装脚本模板文件来上传,但为了明确其为安装脚本模板文件,可自由使用任何文件名和扩展名。例如,也可以上传如“apache.install.sh.template”的文件。不管文件名或扩展名如何,其内容只不过是文本文件而已,因此为了便于管理,安装脚本模板文件的文件名可使用适当的名称。同样,也可通过适当的名称来管理环境设置模板文件。在图6a的例中,仅在原来的环境设置文件的名称的扩展名中添加template来表示模板文件。
虽然是相同的模板文件,但如果查看图5a与图6a的区别点,则在图5a中仅接收所上传的安装脚本模板文件,但在图6a中除环境设置模板文件以外还接收原来的环境设置文件名和环境设置文件路径。这是因为,为了在开源解决方案中顺利运行环境设置文件,需要在指定的路径中以指定的文件名存在环境设置文件。因此,当在安装过程中转换环境设置模板文件来制作环境设置文件时,利用进一步接收到的环境设置文件名和环境设置路径来生成环境设置文件。在图6a中上传了“application.properties.template”这一名称的环境设置模板文件本身,因此为了有助于充分理解环境设置模板,对环境设置模板文件的内容进行说明。之前,首先对环境设置文件的内容进行说明。
从图6b可以看出,在环境设置文件中的application.properties文件的情况下,可确认作为该内容包含有与MySQL相关的设置信息。与制作安装脚本模板时同样地,在制作环境设置模板时,也需要在环境设置文件的内容中区分作为与开源解决方案相关的信息的安装信息和作为与设备相关的信息的环境设置信息。并且,如果将该信息变更为适当的变量,则完成环境设置模板文件。与安装脚本模板文件同样地,环境设置模板文件也一旦制作,则在开源解决方案的环境设置文件的设置项目没有较多变更的情况下就能再利用。在图6b中可将driverClassName、url、username、password项目变更为变量。从图6c可以看出各项目被变更为变量。此外,从图6c可以看出,在Tomcat的环境设置模板文件中以变量形式引用MySQL环境设置文件的项目。关于可在安装脚本模板或环境设置模板中使用的安装信息和环境设置信息的变量及变量的定义方法、以及在各开源解决方案之间相互引用变量的方法,稍后将会进行更详细说明。目前为止,通过图6c对如下部分进行了说明:对现有的环境设置文件进行模板化来登记,在安装时利用与开源解决方案相关的安装信息和与设备相关的环境设置信息,来将环境设置模板文件的变量替换为适当的值,并自动生成环境设置文件。
再次返回到图2,从用户接收开源解决方案服务管理命令(S1500)。大部分开源解决方案提供能够确认开源解决方案的状态的运行文件。归纳此,如下面的表5所示。
[表5]
项目 | 固有标识符(UID) | 说明 |
服务开始命令(*) | opensource.command.start | 启动命令 |
服务结束命令(*) | opensource.command.stop | 结束命令 |
服务操作确认命令 | opensource.command.status.check | 服务操作有无命令 |
服务操作确认结果值 | opensource.command.status.result | 服务操作确认结果值 |
在服务管理命令中的“开始”和“结束”只需输入由开源解决方案提供的运行文件的路径即可。即,无需用户直接制作该文件后上传。但是,也有不少开源解决方案根据情况不提供服务操作确认命令和此时的结果值。因此,对于服务管理命令,仅将与开始和结束相关的命令作为必要命令来接收。根据需要,用户也可以生成服务操作确认脚本来附加。与具体例一同,查看开源解决方案的服务管理命令。特定开源解决方案可以以如下方式接收服务管理命令。参照图7a,该开源解决方案向bin/路径提供用于开始的“start.sh”脚本文件和用于结束的“stop.sh”脚本文件。并且,提供用于确认状态的“check.sh”脚本文件,当运行该文件时,如果接收“OK”这一字符串,则可知服务处于正常操作中。当前接收到的服务管理命令可用于在以后的安装过程中确认安装操作是否顺利进行。
再次返回到图2,从用户接收开源解决方案的初始数据生成模板(S1600)。根据开源解决方案,可能也需要在安装开源解决方案之后生成初始数据。归纳此,此时运行的脚本模板如下面的表6所示。
[表6]
初始数据生成模板并不是必要输入项目,在需要输入的情况下,可通过由用户上传来接收。与安装脚本模板文件同样地,只需将现有的生成初始数据的脚本文件中的与安装信息和环境设置信息相关的项目替换为变量来进行模板化之后登记即可。由于关于脚本模板文件的说明与图5a至图5c中所说明的安装脚本模板文件相同,因此省略关于初始数据生成模板文件的详细说明。
再次返回到图2,从用户接收开源解决方案的附加信息(S1700)。附加信息可视为用户根据需要定义的变量。归纳此,如下面的表7所示。
[表7]
项目 | 固有标识符(UID) | 说明 |
附加信息 | opensource.add.项目名 | 附加信息 |
根据情况,除上述归纳的项目以外,可能会需要多种变量。附加信息可视为此时使用的输入项目。即,通过将用于存储变量的键码作为下位节点附加到opensource.add节点下面来管理。之前对环境设置模板进行说明的同时,在图6c中看到如${mysql.add.jdbc}的变量。这种变量将会另行定义到add下面。为了查看具体例而参照图7b,可以确认作为MySQL的附加信息mysql.add.jdbc的值输入了“com.mysql.jdbc.Driver”。除此之外,为了用户方便,可将多种变量作为开源解决方案的附加信息来管理。
目前为止,通过图2至图7b,对作为与开源解决方案相关的信息的安装信息进行了详细说明。其中,用于对基础设施的安装和配置进行自动化的安装脚本模板文件和环境设置模板文件为最重要的管理项目。当然,除此之外,还可将多种信息作为安装信息来管理。对此进行简单说明,如图8所示。从图8可以看出,关于开源解决方案的Tomcat,经由S1200步骤至S1700步骤接收到的信息被归纳为树形结构。但是,这仅是用于说明用树形结构来管理与开源解决方案相关的安装信息,并不通过这种结构的安装信息或输入项目来进行限制。根据需要,可通过其它结构对关于开源解决方案的安装信息进行数据结构化,并且根据需要,可将多种输入项目指定为变量。但是,如此根据一个基准对大部分开源解决方案的相关信息进行数据结构化,则具有如下效果:与对每个开源解决方案分别学习知识的情况相比能够更快地学习相关知识。此外,图示了依次进行S1200步骤至S1700步骤,但这仅是为了便于理解,实际上从用户接收关于安装信息的输入,因此该顺序也可以不同。目前为止,对安装信息进行了说明,因此下面对与设备相关的环境设置信息进行说明。
图9是本发明一实施例的对关于设备的信息即环境设置信息进行管理的方法的顺序图。
参照图9,首先,从用户接收待安装开源解决方案的设备的基本信息(S2100)。设备的基本信息具有待安装开源解决方案的设备的数量、安装开源解决方案的路径、各设备的IP和开源解决方案的服务端口。归纳此,如下面的表8所示。
[表8]
与具体例一同对此进行说明。参照图10,用于安装Apache的节点为总计十个,安装路径为“/usr/local/apache/”。并且列出每个节点的IP和将要服务Apache的端口。与开源解决方案的安装信息不同,在设备的环境设置信息中,上述程度的输入为需要输入的全部信息。这是因为,从属于设备的信息仅具有IP、服务端口和安装路径。如果用树形结构简单图示设备的环境设置信息,则能得到如图11的数据结构。可确认安装有Apache的设备的数量、安装路径以及每个设备的IP和服务端口。
接着,利用开源解决方案的安装信息和接收到的设备的基本信息来转换开源解决方案的安装脚本模板文件(S2200)。其结果,在安装脚本模板文件中的变量被替换成实际开源解决方案的安装信息和设备的环境设置信息的值,从而能够获得可运行的脚本文件。即,将之前的例中的图5c的安装脚本模板文件转换为图5b的安装脚本文件。此时,各文件按每个设备且按每个开源生成独立文件。
接着,利用开源解决方案的安装信息和接收到的设备的基本信息来转换开源解决方案的环境设置模板文件(S2300)。其结果,在环境设置模板文件中的变量被替换成实际开源解决方案的安装信息和设备的环境设置信息的值,从而能够获得开源解决方案的环境设置文件。即,将之前的例中的图6c的环境设置模板文件转换为图6b的环境设置文件。此时,各文件按每个设备且按每个开源解决方案生成独立文件。
接着,利用开源解决方案的安装信息和接收到的设备的基本信息来转换开源解决方案的初始数据生成模板(S2400)。其结果,在初始数据生成模板文件中的变量被替换成实际开源解决方案的安装信息和设备的环境设置信息的值,从而能够获得开源解决方案的初始数据生成脚本文件。但是,由于初始数据生成模板为可根据开源解决方案选择性地输入的项目,因此可根据情况省略本步骤。
接着,自动生成防火墙登记列表(S2500)。这可根据各开源解决方案之间的映射(mapping)信息来自动生成。在此,所谓开源解决方案之间的映射信息是指在各开源解决方案的安装脚本模板、环境设置模板和初始数据生成模板中引用其它开源解决方案的信息的情况下,在此基础上所生成的信息。参照图6b的例,安装Tomcat的所有服务器都引用安装有MySQL的一号设备的IP即${node.mysql.01.ip}和端口即${node.mysql.01.port}。即,通过转换Tomcat的环境设置模板来生成环境设置文件的同时,将这种信息作为与其它开源解决方案之间的映射信息来存储。那么,由于以后需要可从安装有Tomcat的设备连接到安装有MySQL的一号设备,因此可利用映射信息来自动生成用于开启防火墙的防火墙列表。
从图12中可以看出,根据开源解决方案之间的映射信息,对需要设置防火墙的设备以源设备和目的地(destination)设备为基准整理IP和端口后的目录。以往,安装管理者与开源解决方案的安装独立地分别设置防火墙,但根据本发明的一实施例,由于通过模板文件来归纳各开源解决方案之间的依赖性,因此也可以利用该模板文件来自动生成各设备之间的防火墙。从图12的例中可以看出,在开源解决方案apache的环境设置模板中引用安装有was的一号设备及二号设备的IP和端口并以此为基准自动生成防火墙目录,同样,引用安装有node js的一号设备及二号设备的IP和端口并以此为基准自动生成防火墙目录。当然,在三个模板文件中,主要环境设置模板中包含与防火墙设置相关的较多信息,而在其余安装脚本模板文件或初始数据生成模板中,引用其它开源解决方案的信息的情况相对较少。
目前为止,对以下步骤进行了说明:转换安装脚本模板(S2200);转换环境设置模板(S2300);转换初始数据生成模板(S2400);以及利用在模板转换步骤中为了各开源解决方案之间的变量替换而引用信息的关系来自动生成防火墙列表。为了自动安装并配置基础设施,特别需要更好地生成模板文件,这需要在一定规则下对变量进行定义并管理,使得用户能够更好地利用变量。之前对图8和图11进行说明时,同时提到本发明中使用的安装信息具有树形结构。鉴于此,对本发明中使用的树形结构进行更详细说明。
从图8中可以看出,用树形结构图示了关于开源解决方案的信息即安装信息。在此,如果一旦确定关于安装信息的树形结构,则对所有开源解决方案具有相同的结构。当然,由于在输入项目中存在非必要输入项目,因此可从树形结构中去除非必要该输入项目,但基本形状被固定在图8的形式。因此,当用户为了制作模板文件而使用变量时,可根据已固定的树形数据结构来使用关于安装信息的变量。
从图11可以看出,用树形结构图示了关于设备的信息即环境设置信息。在此,虽然关于环境设置信息的树形结构的形状简单,但可根据所安装的设备的数量来改变节点。但是,由于各节点具有一定的顺序,因此当要使用特定节点的IP和端口信息时,使用节点号码即可。即,如果输入如${node.apache.01.ip}的变量,则可引用安装有Apache的一号节点的IP。如图6中使用的${node.mysql.01.ip}和${node.mysql.01.port}的变量为引用安装有MySQL的一号节点的IP和端口的变量。若想在特定开源解决方案中引用安装有其它开源解决方案的设备的环境设置信息,则可利用node.opensource.node_number来引用该环境设置信息。
但是,根据情况也可以具有如下的状况,即:在A开源解决方案中需要引用在其它安装有B开源解决方案的设备中的B开源解决方案的设置文件。并且,对开源解决方案的环境设置模板进行说明时提到环境设置模板可具有多个文件。在这种情况下,当欲引用特定环境设置文件的信息时,可以以如下方式定义变量。${node.mysql.01.cfg1.user}的变量表达方式为,该变量引用将用户(user)作为键码登记到安装有MySQL的一号节点的一号环境设置文件中的变量的值。即,由于大部分开源解决方案的环境设置文件为键码-值形式,因此将该环境设置文件识别为cfg1的下位节点来查询值。如果将开源解决方案的环境设置模板转换为环境设置文件(S2300),则按每个设备生成如application.properties或http.conf的文件,并且如果在其它开源解决方案中也需要引用这种信息的情况下,可通过这种变量定义方法来引用。参照图7c,在安装有MySQL的一号节点的一号设置中存储有将用户(user)作为键码(key)且将根(root)作为值的信息,并且存储有将密码(password)作为键码(key),将根(root)作为值的信息。此外,当需要列表形式的信息时,可使用保留字N而不使用数字。如${node.cassandra.N.ip}那样表达,可将安装有cassandra的所有节点的IP作为列表形式的信息来获取。这种表达方式可在构成集群(cluster)的环境设置模板中有效使用。归纳目前为止的变量定义,如下面的表9所示。
[表9]
若举例说明表9的各个变量定义,如下面的表10所示。如果利用该变量定义,则可将开源解决方案的安装信息、设备的环境设置信息和包含在开源解决方案的环境设置文件中的大部分信息作为变量来访问。
[表10]
用户只需根据上面定义的变量规则来生成模板文件即可。那么,登记到各模板文件的变量根据树形数据结构被替换成适当的实际值,当完成所有变量的替换时,结束模板文件的转换。
目前为止,说明了为了对开源解决方案的安装及配置进行自动化,对与安装相关的脚本文件和与配置相关的环境设置文件进行模板化的方法。在此过程中说明了,为了将从属于开源解决方案的安装信息和作为从属于设备的信息的环境设置信息设置为变量以便在制作模板文件时能够使用该变量,在一定的规则下定义变量的方法。在定义变量时,使变量基本上具有树形结构的数据结构,并且也可以引用其它开源解决方案的信息。但是,这种树形结构乃至变量定义只是用于对基础设施的安装和配置进行自动化的一种实施例而已,也可使用其它数据结构、其它变量定义方式。
当由作为关于开源解决方案的信息的安装信息中输入的各种模板文件,利用安装信息和作为关于设备的信息的环境设置信息的变量,来生成需要安装到各设备中的安装脚本文件、环境设置文件和初始数据生成脚本文件之后,用于安装的事先准备工作全部结束。剩余操作是自动生成安装包和自动化脚本,以便能够利用这些安装脚本文件、环境设置文件和初始数据生成脚本文件来进行实际安装(S3000)。
图13是本发明一实施例的自动生成安装包和自动化脚本的方法的顺序图。
首先,按每个设备生成安装包(S3100)。需要用户输入的全部步骤为,输入与开源解决方案相关的安装信息的步骤(S1000);以及输入与设备相关的环境设置信息(S2100)的步骤,之后自动进行。每个设备的安装包中包含有需要安装到各设备中的开源解决方案的二进制文件或由URL下载的文件。进一步还包含需要安装到各设备中的开源解决方案的环境设置文件。
接着,按每个设备生成自动化脚本(S3200)。每个设备的自动化脚本中可包含生成用于配置安装环境的账户/权限的命令和生成目录的命令。接着,可包含确认关联服务的步骤。在此,关联服务是指诸如在安装中需要的网络是否在运行等的项目。接着,可包含开源解决方案的安装脚本。开源解决方案的安装脚本是通过对之前由S1300步骤登记的安装脚本模板文件中的变量进行替换来转换的安装脚本文件(S2200)。如图5b中的例,安装脚本中包含用于解压开源解决方案的二进制文件并进行编译和生成的命令。进一步还包含用于将通过转换环境设置模板而生成的环境设置文件复制到指定路径中的命令。接着,在每个设备的自动化脚本中,运行开始开源解决方案的脚本并通过运行用于确认服务是否操作的脚本来确认是否在工作。最后,在需要的情况下,可通过运行由初始设置数据模板转换的初始设置数据脚本来输入所需要的信息。
接着,生成整体安装包(S3300)。整体安装包是指将每个设备的安装包重新捆绑为一个文件而制成的文件。进一步,在整体安装包中可包含每个设备的自动化脚本。
接着,生成整体自动化脚本(S3400)。在整体自动化脚本中可包含:将安装设备中的作为发布服务器的设备接入到网络的命令;向作为发布服务器的设备上传整体安装包的命令;在上传结束之后解压整体安装包的命令;和将每个设备的安装包和每个设备的自动化脚本传送给每个设备,并运行每个设备的自动化脚本来按每个设备进行安装的命令。由此,可在短时间内同时按每个设备进行安装。
图14是用于说明本发明一实施例的自动生成安装包和自动化脚本的方法的概念图。
从图14中可以看出开源解决方案的二进制文件110、以及按每个开源解决方案转换模板文件后将所生成的文件以IP为句首聚集的情况。例如,可以看出聚集Apache的安装脚本文件、环境设置文件和初始数据生成脚本文件的文件夹160和聚集Tomcat的安装脚本文件、环境设置文件和初始数据生成脚本文件的文件夹170。通过将开源解决方案的二进制文件110和由每个开源解决方案的模板文件转换而成的文件160、170汇集到程序包生成模块中后,生成一个整体安装包和一个整体安装脚本。
图15是用于说明本发明一实施例的安装包和自动化脚本的概念图。
从图15中可以看出在整体自动化脚本(install.sh)中主要运行的命令的步骤和在每个设备的自动化脚本(IP_install.sh)中主要运行的命令的步骤。在每个设备的自动化脚本中IP表示每个实际设备的IP。即,具有如xx.xx.xx.1_install.sh的文件名。接着,可以看出待包含在整体安装包(install.tar)和每个设备的安装包(IP_package.tar)中的文件的目录。如此自动生成整体自动化脚本和整体安装包文件之后,用户可仅通过运行整体自动化脚本,也能向多台设备一次性同时简单地安装多种开源解决方案(S4000)。
图16是本发明一实施例的对基础设施的安装和配置进行自动化的装置的方框图。
参照图16,对基础设施的安装和配置进行自动化的装置10可包括安装信息管理模块200、环境设置信息管理模块300和安装包管理模块400。
安装信息管理模量200用树形结构的父-子关系来管理从用户接收到的关于开源解决方案的安装信息。由此,可通过以树形结构为基准,对安装信息的各项目赋予固有标识符来查询值。若如此以可通过变量来访问的方式对安装信息的各项目进行管理,则能在安装中所需要的安装脚本或设置中所需要的开源解决方案的环境设置文件中将安装信息的项目抽象化为变量来转换成模板文件。由此具有能够将安装过程简化并能简便地进行安装的效果。
环境设置信息管理模块300用树形结构的父-子关系来管理从用户接收到的关于设备的环境设置信息。由此,可通过以树形结构为基准,对安装信息的各项目赋予固有标识符来查询值。特别是,包含在安装到各设备的开源解决方案的环境设置文件中的项目也可以用固有标识符来访问,因此在特定开源解决方案中可将其它开源解决方案的环境设置信息的项目作为变量来引用。由此具有能够简单地设置各开源解决方案之间的连接或依赖关系的效果。此外,由于可以以各开源解决方案之间的连接关系为基础自动生成防火墙列表,因此在安装过程中安装管理者能够仅通过输入设备的IP和端口来结束安装准备工作。
安装包管理模块400可通过利用用于安装各开源解决方案的二进制文件、以及由环境设置模板文件转换的环境设置文件、由安装脚本模板文件转换的安装脚本文件和由初始数据生成脚本模板文件转换的初始数据生成脚本文件,来生成安装包和安装自动化脚本。由此,即使安装管理者不通过分别接入各设备而进行安装,也能够一次性同时进行安装,因此能够缩短安装所需要的时间。
图17是本发明一实施例的对基础设施的安装和配置进行自动化的装置的硬件结构图。
参照图17,对基础设施的安装和配置进行自动化的装置10可包括一个以上的处理器510、存储器520、贮存器560和网络接口570。处理器510、存储器520、贮存器560和网络接口570通过系统总线550来收发数据。
处理器510运行被加载在存储器520中的计算机程序,存储器520从贮存器560加载(load)所述计算机程序。所述计算机程序可包括安装信息操作521、环境设置管理操作523和安装包管理操作525。
安装信息管理操作521以树形结构的父-子关系将通过网络从用户接收到的作为开源解决方案的信息的安装信息存储在贮存器560的安装信息561中。存储在贮存器560中的安装信息561则以后在生成安装包565和安装自动化脚本567时利用。
环境设置管理操作523以树形结构的父-子关系将通过网络从用户接收到的作为关于设备的信息的环境设置信息存储在贮存器560的环境设置信息563中。存储在贮存器560中的环境设置信息563则以后在生成安装包565和安装自动化脚本567时利用。此外,环境设置管理操作523在利用安装信息561的固有标识符和环境设置信息563的固有标识符来查询值之后,替换安装信息管理操作521接收到的项目中的各种模板文件并将其转换为适合每个设备和每个开源解决方案的文件。由此,在基础设施构建过程中,能够最大限度地减少用户输入并对安装和配置进行自动化。
安装包管理操作525利用由安装信息管理操作521管理的安装信息561和由环境设置管理操作523管理的环境设置信息563来生成适合每个设备和每个开源解决方案的安装包565和安装自动化脚本567。如此生成的安装包565和安装自动化脚本567可通过系统总线550存储在贮存器560中。以后,用户可利用安装包565和安装自动化脚本567来构建基础设施。
图17的各个结构要素可指软件(Software)、或者如现场可编程门阵列(FPGA:Field-Programmable Gate Array)或专用集成电路(ASIC:Application-Specific IntegratedCircuit)等的硬件(Hardware)。但是,所述结构要素并不限定于软件或硬件,而是可以构成为位于可寻址(Addressing)存储介质中,还可以构成为运行一个或一个以上的处理器。在所述结构要素中提供的功能可通过进一步细化的结构要素来实现,还可以以将多个结构要素相加来执行特定功能的一个结构要素来实现。
以上参照附图对本发明的实施例进行了说明,但本发明所属技术领域的技术人员应能理解,本发明可在不改变本发明的技术思想或必要特征的基础上以其他具体方式实施。因此,应理解为以上所述的实施例在所有方面为示例性的而不是限定性的。
Claims (28)
1.一种对基础设施的安装和配置进行自动化的装置,包括:
安装信息管理模块,用于接收开源解决方案的安装信息,并用树形结构的父-子关系来管理所述安装信息;
环境设置管理模块,用于接收设备的环境设置信息,并用树形结构的父-子关系来管理所述环境设置信息;以及
安装包管理模块,用于利用所述安装信息和所述环境设置信息,来生成安装包和安装自动化脚本。
2.根据权利要求1所述的对基础设施的安装和配置进行自动化的装置,其中,
所述安装信息管理模块通过以所述安装信息的树形结构为基准对所述安装信息的各项目赋予固有标识符来查询值。
3.根据权利要求1所述的对基础设施的安装和配置进行自动化的装置,其中,
所述安装信息管理模块从用户接收所述开源解决方案的名称、说明和服务端口以作为所述安装信息的项目。
4.根据权利要求1所述的对基础设施的安装和配置进行自动化的装置,其中,
所述安装信息管理模块从用户接收所述开源解决方案的二进制文件和用于下载的统一资源定位符URL以作为所述安装信息的项目。
5.根据权利要求1所述的对基础设施的安装和配置进行自动化的装置,其中,
所述安装信息管理模块从用户接收所述开源解决方案的安装脚本模板文件以作为所述安装信息的项目。
6.根据权利要求5所述的对基础设施的安装和配置进行自动化的装置,其中,
所述开源解决方案的安装脚本模板文件为通过将包含在所述开源解决方案的安装脚本文件中的、所述安装信息的各项目和所述环境设置信息的各项目替换为各个固有标识符而转换的文件。
7.根据权利要求1所述的对基础设施的安装和配置进行自动化的装置,其中,
所述安装信息管理模块从用户接收所述开源解决方案的环境设置模板文件、环境设置文件名和环境设置文件路径以作为所述安装信息的项目。
8.根据权利要求7所述的对基础设施的安装和配置进行自动化的装置,其中,
所述开源解决方案的环境设置模板文件为通过将包含在所述开源解决方案的环境设置文件中的、所述安装信息的各项目和所述环境设置信息的各项目替换为各个固有标识符而转换的文件。
9.根据权利要求1所述的对基础设施的安装和配置进行自动化的装置,其中,
所述安装信息管理模块从用户接收所述开源解决方案的开始命令、结束命令、状态确认命令和状态确认结果值以作为所述安装信息的项目。
10.根据权利要求1所述的对基础设施的安装和配置进行自动化的装置,其中,
所述安装信息管理模块从用户接收所述开源解决方案的初始数据生成脚本模板文件以作为所述安装信息的项目。
11.根据权利要求10所述的对基础设施的安装和配置进行自动化的装置,其中,
所述开源解决方案的初始数据生成脚本模板文件为通过将包含在所述开源解决方案的初始数据生成脚本文件中的、所述安装信息的各项目和所述环境设置信息的各项目替换为各个固有标识符而转换的文件。
12.根据权利要求1所述的对基础设施的安装和配置进行自动化的装置,其中,
所述安装信息管理模块从用户接收所述开源解决方案的附加信息以作为所述安装信息的项目。
13.根据权利要求1所述的对基础设施的安装和配置进行自动化的装置,其中,
所述环境设置管理模块通过以所述环境设置信息的树形结构为基准对所述环境设置信息的各项目赋予固有标识符来查询值。
14.根据权利要求1所述的对基础设施的安装和配置进行自动化的装置,其中,
所述环境设置管理模块从用户接收待安装所述开源解决方案的设备的数量和安装路径以作为所述环境设置信息的项目。
15.根据权利要求14所述的对基础设施的安装和配置进行自动化的装置,其中,
所述环境设置管理模块根据所述设备的数量向所述环境设置信息的树形结构附加每个设备的节点,并且
从所述用户接收所述每个设备的节点的网际协议IP和服务端口以作为所述环境设置信息的项目。
16.根据权利要求15所述的对基础设施的安装和配置进行自动化的装置,其中,
在附加所述每个设备的节点时,以依次增加的值自动输入所述每个设备的节点的网际协议IP。
17.根据权利要求1所述的对基础设施的安装和配置进行自动化的装置,其中,
所述环境设置信息包括所述开源解决方案的环境设置文件的项目。
18.根据权利要求17所述的对基础设施的安装和配置进行自动化的装置,其中,
所述环境设置管理模块通过以所述开源解决方案的标识符、所述设备的标识符、所述环境设置文件的标识符、所述项目的标识符为基准,赋予固有标识符来查询值。
19.根据权利要求1所述的对基础设施的安装和配置进行自动化的装置,其中,
所述环境设置管理模块将包含在所述安装信息的安装脚本模板文件中的所述安装信息的各项目的固有标识符和所述环境设置信息的各项目的固有标识符替换为各个值来生成安装脚本文件。
20.根据权利要求1所述的对基础设施的安装和配置进行自动化的装置,其中,
所述环境设置管理模块将包含在所述安装信息的环境设置模板文件中的所述安装信息的各项目的固有标识符和所述环境设置信息的各项目的固有标识符替换为各个值来生成环境设置文件。
21.根据权利要求1所述的对基础设施的安装和配置进行自动化的装置,其中,
所述环境设置管理模块将包含在所述安装信息的初始数据生成脚本模板文件中的所述安装信息的各项目的固有标识符和所述环境设置信息的各项目的固有标识符替换为各个值来生成初始数据生成脚本文件。
22.根据权利要求18至20中的任一项所述的对基础设施的安装和配置进行自动化的装置,其中,
在将所述安装信息的各项目的固有标识符和所述环境设置信息的各项目的固有标识符替换为各个值时,所述环境设置管理模块根据各个映射信息自动生成每个设备的每个开源解决方案的防火墙列表。
23.根据权利要求1所述的对基础设施的安装和配置进行自动化的装置,其中,
所述安装包管理模块生成包含有每个设备的开源解决方案的安装文件和环境设置文件的每个设备的安装包。
24.根据权利要求23所述的对基础设施的安装和配置进行自动化的装置,其中,
所述安装包包含所述每个设备的安装包。
25.根据权利要求1所述的对基础设施的安装和配置进行自动化的装置,其中,
所述安装包管理模块生成包含有每个设备的开源解决方案的安装脚本文件和初始数据生成脚本文件的每个设备的安装自动化脚本。
26.根据权利要求25所述的对基础设施的安装和配置进行自动化的装置,其中,
所述安装自动化脚本包含所述每个设备的安装自动化脚本。
27.一种对基础设施的安装和配置进行自动化的方法,包括:
安装信息管理步骤,接收开源解决方案的安装信息,并用树形结构的父-子关系来管理所述安装信息;
环境设置管理步骤,接收设备的环境设置信息,并用树形结构的父-子关系来管理所述环境设置信息;以及
安装包管理步骤,利用所述安装信息和所述环境设置信息,来生成安装包和安装自动化脚本。
28.一种对基础设施的安装和配置进行自动化的装置,包括:
网络接口;
一个以上的处理器;
存储器,用于加载由所述处理器执行的计算机程序;以及
贮存器,用于存储开源解决方案的安装信息和设备的环境设置信息,
所述计算机程序包括:
安装信息管理操作,接收所述安装信息,并用树形结构的父-子关系来管理所述安装信息;
环境设置管理操作,接收所述环境设置信息,并用树形结构的父-子关系来管理所述环境设置信息;以及
安装包管理操作,利用所述安装信息和所述环境设置信息,来生成安装包和安装自动化脚本。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150149332A KR101831430B1 (ko) | 2015-10-27 | 2015-10-27 | 인프라의 설치와 구성을 자동화하는 장치 및 그 방법 |
KR10-2015-0149332 | 2015-10-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106612206A true CN106612206A (zh) | 2017-05-03 |
Family
ID=58558691
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610273639.6A Pending CN106612206A (zh) | 2015-10-27 | 2016-04-28 | 对基础设施的安装和配置进行自动化的装置及其方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9996333B2 (zh) |
KR (1) | KR101831430B1 (zh) |
CN (1) | CN106612206A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107844334A (zh) * | 2017-09-28 | 2018-03-27 | 广州明珞汽车装备有限公司 | 一种自动配置机器人rcs的方法及系统 |
CN108595191A (zh) * | 2018-04-27 | 2018-09-28 | 京东方科技集团股份有限公司 | 一种应用安装方法及装置 |
CN112054925A (zh) * | 2020-08-27 | 2020-12-08 | 青岛海信网络科技股份有限公司 | 一种部署后台服务的方法及装置 |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10909136B1 (en) | 2017-02-08 | 2021-02-02 | Veritas Technologies Llc | Systems and methods for automatically linking data analytics to storage |
US10360053B1 (en) | 2017-02-14 | 2019-07-23 | Veritas Technologies Llc | Systems and methods for completing sets of computing tasks |
US10216455B1 (en) | 2017-02-14 | 2019-02-26 | Veritas Technologies Llc | Systems and methods for performing storage location virtualization |
US10685033B1 (en) | 2017-02-14 | 2020-06-16 | Veritas Technologies Llc | Systems and methods for building an extract, transform, load pipeline |
US10606646B1 (en) | 2017-03-13 | 2020-03-31 | Veritas Technologies Llc | Systems and methods for creating a data volume from within a software container and initializing the data volume with data |
US9983891B1 (en) * | 2017-03-21 | 2018-05-29 | Veritas Technologies Llc | Systems and methods for distributing configuration templates with application containers |
US10540191B2 (en) | 2017-03-21 | 2020-01-21 | Veritas Technologies Llc | Systems and methods for using dynamic templates to create application containers |
US10489287B2 (en) | 2017-05-15 | 2019-11-26 | Bank Of America Corporation | Conducting automated software testing using centralized controller and distributed test host servers |
US10223248B2 (en) | 2017-05-15 | 2019-03-05 | Bank Of America Corporation | Conducting automated software testing using centralized controller and distributed test host servers |
US10579362B1 (en) * | 2017-07-21 | 2020-03-03 | Jpmorgan Chase Bank, N.A. | Method and system for implementing an ATM phone home and scrapper mapping tool |
KR101947913B1 (ko) * | 2017-08-14 | 2019-05-08 | 세종대학교산학협력단 | 빅데이터 교육용 EaaS(Education as a Service)플랫폼 |
CN107766052B (zh) * | 2017-09-18 | 2020-09-25 | 网宿科技股份有限公司 | 一种构建容器镜像的方法和装置 |
US10740132B2 (en) | 2018-01-30 | 2020-08-11 | Veritas Technologies Llc | Systems and methods for updating containers |
JP7025298B2 (ja) * | 2018-07-25 | 2022-02-24 | 株式会社日立製作所 | 環境構築支援システムおよび環境構築支援方法 |
CN110727467A (zh) * | 2019-10-22 | 2020-01-24 | 普元信息技术股份有限公司 | 大数据环境下实现服务器性能优化处理的系统及其方法 |
CN111124359A (zh) * | 2019-12-20 | 2020-05-08 | 深圳猛犸电动科技有限公司 | 流水号生成方法、装置、系统、终端设备及存储介质 |
CN112068852B (zh) * | 2020-09-27 | 2022-06-17 | 山东云海国创云计算装备产业创新中心有限公司 | 基于国产服务器的开源软件安装方法、系统及设备和介质 |
CN112417024A (zh) * | 2020-12-11 | 2021-02-26 | 中国建设银行股份有限公司 | 快速适配数据库脚本方法、装置、计算机设备及存储介质 |
CN116185435B (zh) * | 2023-02-22 | 2024-03-26 | 太极计算机股份有限公司 | 一种基于脚手架的软件开发环境的开发方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040255291A1 (en) * | 2003-01-17 | 2004-12-16 | Sierer Brian H. | Installing software using programmatic component dependency analysis |
CN1916846A (zh) * | 2005-08-17 | 2007-02-21 | 联想(北京)有限公司 | 操作系统的自动部署方法 |
US20090249283A1 (en) * | 2008-03-31 | 2009-10-01 | Jatho Investments | Modelling software appliance |
KR20100065081A (ko) * | 2008-12-05 | 2010-06-15 | 한국전자통신연구원 | 임베디드 시스템 및 임베디드 개발 환경을 지원하기 위한 빌드 스크립트 프로그램의 자동 생성 방법 |
CN102541609A (zh) * | 2012-02-17 | 2012-07-04 | 北京星网锐捷网络技术有限公司 | 安装程序制作方法、装置及网络设备 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6151643A (en) * | 1996-06-07 | 2000-11-21 | Networks Associates, Inc. | Automatic updating of diverse software products on multiple client computer systems by downloading scanning application to client computer and generating software list on client computer |
US6367073B2 (en) * | 1998-03-31 | 2002-04-02 | Micron Technology, Inc. | Centralized, automated installation of software products |
US9489687B2 (en) * | 2003-12-04 | 2016-11-08 | Black Duck Software, Inc. | Methods and systems for managing software development |
US20050172284A1 (en) * | 2004-01-30 | 2005-08-04 | Dandekar Shree A. | Method and system for automated generation of customized factory installable software |
US7680550B2 (en) * | 2006-10-20 | 2010-03-16 | Rockwell Automation Technologies, Inc. | Unit module state processing enhancements |
US8543998B2 (en) * | 2008-05-30 | 2013-09-24 | Oracle International Corporation | System and method for building virtual appliances using a repository metadata server and a dependency resolution service |
US8739150B2 (en) * | 2010-05-28 | 2014-05-27 | Smartshift Gmbh | Systems and methods for dynamically replacing code objects via conditional pattern templates |
US20120151488A1 (en) * | 2010-12-10 | 2012-06-14 | International Business Machines Corporation | Measuring Transaction Performance Across Application Asynchronous Flows |
US8756595B2 (en) * | 2011-07-28 | 2014-06-17 | Yahoo! Inc. | Method and system for distributed application stack deployment |
KR20130048904A (ko) | 2011-11-03 | 2013-05-13 | (주)한성에스엠비솔루션 | Nas 어플리케이션 패키지 설치 시스템 및 방법 |
US8719813B2 (en) * | 2011-11-29 | 2014-05-06 | Raytheon Company | Optimized SCA CORBA descriptor for SCA CORBA descriptor files |
WO2014020771A1 (ja) | 2012-08-03 | 2014-02-06 | 富士通株式会社 | テンプレート生成プログラム、テンプレート生成方法およびテンプレート生成装置 |
US9164746B2 (en) * | 2012-10-31 | 2015-10-20 | Wal-Mart Stores, Inc. | Automatic topology extraction and plotting with correlation to real time analytic data |
US9311613B2 (en) * | 2013-03-15 | 2016-04-12 | Openlogic, Inc. | Open source software development tools |
-
2015
- 2015-10-27 KR KR1020150149332A patent/KR101831430B1/ko active IP Right Grant
-
2016
- 2016-03-04 US US15/061,669 patent/US9996333B2/en active Active
- 2016-04-28 CN CN201610273639.6A patent/CN106612206A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040255291A1 (en) * | 2003-01-17 | 2004-12-16 | Sierer Brian H. | Installing software using programmatic component dependency analysis |
CN1916846A (zh) * | 2005-08-17 | 2007-02-21 | 联想(北京)有限公司 | 操作系统的自动部署方法 |
US20090249283A1 (en) * | 2008-03-31 | 2009-10-01 | Jatho Investments | Modelling software appliance |
KR20100065081A (ko) * | 2008-12-05 | 2010-06-15 | 한국전자통신연구원 | 임베디드 시스템 및 임베디드 개발 환경을 지원하기 위한 빌드 스크립트 프로그램의 자동 생성 방법 |
CN102541609A (zh) * | 2012-02-17 | 2012-07-04 | 北京星网锐捷网络技术有限公司 | 安装程序制作方法、装置及网络设备 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107844334A (zh) * | 2017-09-28 | 2018-03-27 | 广州明珞汽车装备有限公司 | 一种自动配置机器人rcs的方法及系统 |
CN107844334B (zh) * | 2017-09-28 | 2020-12-08 | 广州明珞汽车装备有限公司 | 一种自动配置机器人rcs的方法及系统 |
CN108595191A (zh) * | 2018-04-27 | 2018-09-28 | 京东方科技集团股份有限公司 | 一种应用安装方法及装置 |
CN108595191B (zh) * | 2018-04-27 | 2021-09-14 | 京东方科技集团股份有限公司 | 一种应用安装方法及装置 |
CN112054925A (zh) * | 2020-08-27 | 2020-12-08 | 青岛海信网络科技股份有限公司 | 一种部署后台服务的方法及装置 |
CN112054925B (zh) * | 2020-08-27 | 2024-04-23 | 青岛海信网络科技股份有限公司 | 一种部署后台服务的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
KR20170048797A (ko) | 2017-05-10 |
US9996333B2 (en) | 2018-06-12 |
US20170115977A1 (en) | 2017-04-27 |
KR101831430B1 (ko) | 2018-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106612206A (zh) | 对基础设施的安装和配置进行自动化的装置及其方法 | |
US11836158B2 (en) | Deployment of container-based computer environments | |
US9811394B1 (en) | Application programming interface recipe cloning | |
US11093232B2 (en) | Microservice update system | |
EP3152650B1 (en) | High-speed application for installation on mobile devices for permitting remote configuration of such mobile devices | |
US11012305B2 (en) | Systems and methods for service mapping | |
US20180121339A1 (en) | System and Method for Testing Behavior of Web Application Software | |
US10754708B2 (en) | Orchestrator and console agnostic method to deploy infrastructure through self-describing deployment templates | |
CN103067484A (zh) | 一种自动升级应用程序的方法和系统 | |
CN111984269A (zh) | 提供应用构建服务的方法及应用构建平台 | |
EP3399420A1 (en) | Configuration management identification rule testing | |
US11665060B2 (en) | System and method for remote configuration of scalable datacenter | |
CN110347378A (zh) | 项目开发环境的搭建方法及装置 | |
CN111984270A (zh) | 应用部署方法和系统 | |
US20240095096A1 (en) | Visual Cluster Deployment and Operation System and Method | |
JP5971338B2 (ja) | テンプレート生成プログラム、テンプレート生成方法およびテンプレート生成装置 | |
CN106371931B (zh) | 一种基于Web框架的高性能地学计算服务系统 | |
US10868880B2 (en) | Control system with persistent and transient data stores for registration, production and status data for networked devices | |
CN106484452B (zh) | 一种软件平台的统一配置管理方法和装置 | |
Sayfan | Hands-On Microservices with Kubernetes: Build, deploy, and manage scalable microservices on Kubernetes | |
CN106802805B (zh) | 一种适用服务器管理的应用服务管理方法及装置 | |
US10055516B1 (en) | Testing open mobile alliance server payload on an open mobile alliance client simulator | |
US11726443B2 (en) | Efficient controller data generation and extraction | |
Larsson | Hands-on Microservices with spring boot and spring cloud: Build and deploy Java microservices using spring cloud, Istio, and Kubernetes | |
Indrasiri et al. | Deploying and Running Microservices |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170503 |
|
WD01 | Invention patent application deemed withdrawn after publication |