一种自动化运维方法和系统
文献发布时间:2023-06-19 11:22:42
技术领域
本发明涉及服务器运维技术领域,特别是涉及一种自动化运维方法和系统。
背景技术
随着企业信息化的不断发展与演进,云计算、大数据的广泛应用,企业对于服务器运维的自动化要求也越来越高。现有的由管理员逐一登录服务器进行配置管理的运维方案已经不能满足分布式、大数据量的应用系统。Ansible是近两年引入国内的自动化服务器运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
然而,Ansible底层是基于SSH进行远程登陆,对设备进行管理,因此对于大并发量的运维任务分发会产生性能瓶颈,据测试在单任务并发超过200个服务器节点时,系统已经不可用。
可以看出,Ansible运维工具在大并发量的运维任务中存在性能瓶颈,难以满足运维要求。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的自动化运维方法和系统。
依据本发明的一个方面,提供了一种自动化运维方法,包括:
接收输入的运维任务,所述运维任务中包括:多个目标主机的登录信息;
根据每个目标主机的登录信息,从预设的存储单元中查找所述多个目标主机各自对应的一个或多个管理机;
针对每个目标主机对应的一个或多个管理机,从中确定出当前运维任务量最少的目标管理机;
将所述运维任务分配给所述多个目标主机各自对应的目标管理机,使得所述多个目标主机各自对应的目标管理机并行执行所述运维任务。
可选的,该方法进一步包括:获取所有被管理的主机的登录信息,所述登录信息包括:IP信息和SSH账号信息;
根据被管理的主机的IP信息以及各个管理机的负载量,核算所需的管理机的个数;
获取每个管理机的IP信息,确定每个管理机所对应的主机的IP信息,所述IP信息包括IP地址和子网掩码信息;
将各个管理机的IP信息和所述管理机所对应的被管理的主机的登录信息保存到预设的存储单元中。
可选的,所述运维任务中还包括:用于执行的脚本指令;
将所述运维任务分配给所述多个目标主机各自对应的目标管理机,使得所述多个目标主机各自对应的目标管理机并行执行所述运维任务包括:
根据接收的运维任务,获取并保存目标主机的IP信息、目标主机的SSH账号和密码;登录目标主机,根据所述脚本指令执行所述运维任务。
可选的,该方法进一步包括:获取新增主机的登录信息,根据所述新增主机的IP信息,从预设的存储单元中查找该IP信息所对应的一个或多个管理机,从中确定负载量最低的目标管理机,将所述新增主机的登录信息分配给所述目标管理机,并保存到预设的存储单元。
可选的,该方法进一步包括:当从中确定的负载量最低的管理机所管理的主机数超出负载时;
新增管理机,获取所述新增管理机的IP信息,将新增主机登录信息分配给所述新增管理机,并保存到预设的存储单元。
依据本发明的另一方面,提供了一种自动化运维系统,包括:控制台和多个管理机;所述控制台包括:
接收单元,用于接收输入的运维任务,所述运维任务中包括:多个目标主机的登录信息;
处理单元,用于根据每个目标主机的登录信息,从预设的存储单元中查找所述多个目标主机各自对应的一个或多个管理机;针对每个目标主机对应的一个或多个管理机,从中确定出当前运维任务量最少的目标管理机;
下发单元,用于将所述运维任务分配给所述多个目标主机各自对应的目标管理机,使得所述多个目标主机各自对应的目标管理机并行执行所述运维任务。
可选的,所述接收单元,用于获取所有被管理的主机的登录信息,所述登录信息包括:IP信息和SSH账号信息;
配置单元,用于根据根据被管理的主机的IP信息以及各个管理机的负载量,核算所需的管理机的个数;
处理单元,用于获取每个管理机的IP信息,确定每个管理机所对应的主机的IP信息,所述IP信息包括IP地址和子网掩码信息;将各个管理机的IP信息和所述管理机所对应的被管理的主机的登录信息保存到预设的存储单元中。
可选的,所述运维任务中还包括:用于执行的脚本指令;
所述管理机,用于根据接收的运维任务,获取并保存目标主机的IP地址、目标主机的SSH账号和密码;登录目标主机,根据所述脚本指令执行所述运维任务。
可选的,所述处理单元,还用于获取新增主机的登录信息,根据所述新增主机的IP信息,从预设的存储单元中查找该IP信息所对应的一个或多个管理机,从中确定负载量最低的目标管理机,将所述新增主机的登录信息分配给所述目标管理机,并保存到预设的存储单元。
可选的,所述处理单元,还用于当从中确定的负载量最低的管理机所管理的主机数超出负载时;新增管理机,获取所述新增管理机的IP信息,将新增主机登录信息分配给所述新增管理机,并保存到预设的存储单元。
综上所述,本发明所公开的技术方案,通过接收输入的运维任务,根据运维任务中包括的每个目标主机的登录信息,从预设的存储单元中查找所述多个目标主机各自对应的一个或多个管理机;然后从中确定出当前运维任务量最少的目标管理机;将所述运维任务分配给所述多个目标主机各自对应的目标管理机,使得所述多个目标主机各自对应的目标管理机并行执行所述运维任务。解决了Ansible针对大量服务器设备进行运维操作时所存在的性能瓶颈问题。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种自动化运维方法的流程图;
图2示出了根据本发明另一个实施例的一种自动化运维方法的流程图;
图3示出了根据本发明一个实施例的一种自动化运维系统的示意图。
图4示出了根据本发明一个实施例的一种自动化运维系统中的控制台的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的一种自动化运维方法的流程图,参见图1所示,该方法包括:
步骤S110,接收输入的运维任务,所述运维任务中包括:多个目标主机的登录信息。
步骤S120,根据每个目标主机的登录信息,从预设的存储单元中查找所述多个目标主机各自对应的一个或多个管理机。
步骤S130,针对每个目标主机对应的一个或多个管理机,从中确定出当前运维任务量最少的目标管理机。
步骤S140,将所述运维任务分配给所述多个目标主机各自对应的目标管理机,使得所述多个目标主机各自对应的目标管理机并行执行所述运维任务。
可见,图1所示的方法通过用户配置的运维任务,根据目标主机的IP信息获取对应的一个或多个管理机,在从中确定当前运维任务量最少的目标管理机。从而实现最大限度的利用管理机的运维任务执行能力。合理的将目标主机上的运维任务分派给当前运维任务负载量最少的管理机。使得目标管理机并发执行运维任务。解决了现有技术中,因管理机存在性能瓶颈无法适用于大批量目标主机的运维场景。
图2示出了根据本发明另一个实施例的一种自动化运维方法的流程图。参见图2所述,该方法包括:
步骤S201,获取所有被管理的主机的登录信息,所述登录信息包括:IP信息和SSH账号信息;
在本发明的一种实施例中,通过获取到的所有被管理的主机的IP信息,确定所有被管理主机的数量;还可以确定各个被管理主机分别所在的IP网段。
步骤S202,根据被管理的主机的数量以及各个管理机的负载量,核算所需的管理机的个数。
在本发明的一种实施例中,管理机的负载量是指该管理机所能管理的主机的数量。并且,基于管理机的配置不同,各管理机所能管理的主机的数量不一定相同,即配置更高的管理机所能管理的主机更多。
在本发明的一种实施例中,如管理的主机的数量为1万台,各个管理机的负载量均为100台,则所需的管理机为100台。
在本发明的一种实施例中,在确定管理机的数量时,还需要考虑各个被管理主机分别所在的IP网段。如每个C类网段中,每个IP网段最大为256台;同一个网段的被管理主机可以由一台或多台管理机进行管理;不同网段中的被管理主机由不同的管理机进行管理。
步骤S203,获取每个管理机的IP信息,确定每个管理机所对应的主机的IP信息,所述IP信息包括IP地址和子网掩码信息。
在本发明的一种实施例中,管理机为安装了Ansible工具的管理机。即安装了Ansible工具之后,管理机通过所安装的Ansible工具对被管理主机进行管理。
步骤S204,将各个管理机的IP信息和所述管理机所对应的被管理的主机的登录信息保存到预设的存储单元中。
在本发明的一种实施例中,通过在控制台的可视化界面中,获取各个管理机的IP信息,或者,在各个管理机上安装Ansible工具之后,再向控制台上传管理机自身的IP信息。
在本发明的一种实施例中,还可以在控制台的可视化界面中,根据各管理机的IP信息配置其管理范围,管理范围通过网段或地址段进行。例如:管理机的IP地址为:192.168.0.2/24,所配置的管理范围为192.168.0.3/24~192.168.0.254/24。则在该管理范围内的被管理主机都由该192.168.0.2/24的管理机进行管理。以上仅仅举例,并不对本申请的实施造成限制。其中,IP地址和子网掩码用于确定被管理主机,以便管理机能够根据IP地址查找到对应的管理机,然后根据SSH账号和密码完成登录操作。
在本发明的一种实施例中,在配置完管理机的管理范围之后,将所有被管理主机的登录信息输入到系统控制台中,登录信息中至少包含被管理主机的IP地址、子网掩码、SSH账号和密码。再将各个管理机的IP信息和所述管理机所对应的被管理的主机的登录信息保存到预设的存储单元中。
步骤S205,接收输入的运维任务,所述运维任务中包括:用于执行的脚本指令和目标主机的登录信息。
在本发明的一种实施例中,用户在控制台的可视化界面中输入运维任务。举例为:为IP地址为192.168.0.3/24~192.168.0.254/24的主机安装补丁,则选中的192.168.0.3/24~192.168.0.254/24主机为目标主机。在配置的运维任务中,包括用于执行的脚本、目标主机的IP、子网掩码、目标主机的SSH账号和密码。
步骤S206,根据每个目标主机的登录信息,从预设的存储单元中查找所述多个目标主机各自对应的一个或多个管理机。
在本发明的一种实施例中,在配置完运维任务之后,触发运维任务的执行过程中,控制台根据目标主机的登录信息中的IP信息,即IP地址和对应的子网掩码,计算出对应的网段IP,进而从预设的存储单元中查找到对应的目标管理机。
在本发明的一种实施例中,为了能够更好的对主机进行管理,有可能为IP地址段分配多个管理机,即一台主机可能存在对应的多个管理机。
步骤S207,针对每个目标主机对应的一个或多个管理机,从中确定出当前运维任务量最少的目标管理机。
在本发明的一种实施例中,为了能够最大程度的利用Ansible的能力。通过将运维任务分派给任务负载量最小的管理机,即针对每个目标主机对应的一个或多个管理机,从中确定出当前运维任务量最少的目标管理机。
在本发明的一种实施例中,还可以将运维任务分派给对应的多个管理机中所管理的主机数量最少的目标管理机。只需要满足最大程度利用管理机的性能即可。
步骤S208,将所述运维任务分配给所述多个目标主机各自对应的目标管理机,使得所述多个目标主机各自对应的目标管理机并行执行所述运维任务。
在本发明的一种实施例中,管理机在接收到控制台分派的运维任务之后,根据接收的运维任务,将接收到的目标主机的IP地址、目标主机的SSH账号和密码保存到本地文件中,然后根据脚本指令登录目标主机,通过调用Ansible命令执行运维任务。
在本发明的其他实施例中,为了能够更好的克服Ansible通过SSH进行远程登录所存在的针对大并发量的运维任务的性能瓶颈。
在步骤S205之后,对输入的运维任务中所包含目标主机的登录信息是否存在预设的存储单元中进行判断,即判断是否为新增的主机。如果不是新增主机则按照步骤S206执行后续步骤。反之,即图2所示的方法进一步包括:如果为新增主机,获取新增主机的登录信息,根据所述新增主机的IP信息,从预设的存储单元中查找该IP信息所对应的一个或多个管理机,从中确定负载量最低的目标管理机,将所述新增主机的登录信息分配给所述目标管理机,并保存到预设的存储单元。
在本发明的一个实施例中,在新增主机之后,给新增的主机分配IP地址时,有可能会直接对应于某台管理机所对应的管理范围,则直接由所对应的管理机进行管理。当新增主机的IP地址不在任何一台管理机所对应的管理范围内,则根据对某一管理机进行管理范围的修改,使得新增主机的IP地址在其管理范围之内;或者新增管理机,将新增主机的IP地址分配给新增主机,再将新增主机的登录信息更新到预设的存储单元中。
当给管理机分配新增主机之后,当前管理机所能够管理的主机数量超出其负载量时,管理机在执行运维任务时,未执行运维任务的主机则需要依次排队等待执行。因此为了能够提高运维任务的执行效率,解决性能瓶颈问题。在步骤S205之后,对当前查找到的负载最低的管理机负载量进行判断;当所述查找到的负载最低的管理机所管理的主机数超过负载时;即将新增的主机分配给该管理机时,会降低该管理机的运维任务的执行效率,存在性能瓶颈,则为了能够最大程度利用管理机的能力,即图2所示的方法进一步包括:新增管理机,获取所述新增管理机的IP信息,将新增主机登录信息分配给所述新增管理机,并保存到预设的存储单元。
在本发明的一个实施例中,在新增管理机之后,通过在控制台的可视化界面中,配置该新增管理机的IP信息以及该新增管理机所对应的管理范围。
图3示出了根据本发明一个实施例的一种自动化运维系统的示意图,图4示出了根据本发明一个实施例的一种自动化运维系统中的控制台的示意图参见图3、4所示,该系统包括:控制台10、多个管理机20以及多个被管理的主机30。其中,控制台10包括:
接收单元101,用于接收输入的运维任务,所述运维任务中包括:多个目标主机的登录信息;
处理单元102,用于根据每个目标主机的登录信息,从预设的存储单元中查找所述多个目标主机各自对应的一个或多个管理机;针对每个目标主机对应的一个或多个管理机,从中确定出当前运维任务量最少的目标管理机;
下发单元103,用于将所述运维任务分配给所述多个目标主机各自对应的目标管理机,使得所述多个目标主机各自对应的目标管理机并行执行所述运维任务。
在本发明的一个实施例中,接收单元101,用于获取所有被管理的主机的登录信息,所述登录信息包括:IP信息和SSH账号信息;
配置单元104,用于根据根据被管理的主机的IP信息以及各个管理机的负载量,核算所需的管理机的个数;
处理单元102,用于获取每个管理机的IP信息,确定每个管理机所对应的主机的IP信息,所述IP信息包括IP地址和子网掩码信息;将各个管理机的IP信息和所述管理机所对应的被管理的主机的登录信息保存到预设的存储单元中。
在本发明的一个实施例中,运维任务中包括:用于执行的脚本指令和目标主机的登录信息;
所述管理机20,用于根据接收的运维任务,获取并保存目标主机的IP地址、目标主机的SSH账号和密码;登录目标主机,根据所述脚本指令执行所述运维任务。
在本发明的一个实施例中,处理单元102,还用于获取新增主机的登录信息,根据新增主机的IP信息,从预设的存储单元105中查找该IP信息所对应的一个或多个管理机,从中确定负载量最低的目标管理机,将新增主机的登录信息分配给所述目标管理机,并保存到预设的存储单元105。
在本发明的一个实施例中,处理单元102,还用于当从中确定的负载量最低的管理机所管理的主机数超出负载时;新增管理机,获取新增管理机的IP信息,将新增主机登录信息分配给所述新增管理机,并保存到预设的存储单元105。
综上所述,本发明所公开的技术方案,通过接收输入的运维任务,根据运维任务中包括的每个目标主机的登录信息,从预设的存储单元中查找所述多个目标主机各自对应的一个或多个管理机;然后从中确定出当前运维任务量最少的目标管理机;将所述运维任务分配给所述多个目标主机各自对应的目标管理机,使得所述多个目标主机各自对应的目标管理机并行执行所述运维任务。解决了Ansible针对大量服务器设备进行运维操作时所存在的性能瓶颈问题。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的在大数据集群中处理深度学习任务的装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
- 一种用于非标准化应用系统的自动化运维方法及系统
- 一种信息系统数据库自动化运维系统及其运维方法