CN117859309A - 自动选择在其上执行任务的节点 - Google Patents
自动选择在其上执行任务的节点 Download PDFInfo
- Publication number
- CN117859309A CN117859309A CN202280056558.4A CN202280056558A CN117859309A CN 117859309 A CN117859309 A CN 117859309A CN 202280056558 A CN202280056558 A CN 202280056558A CN 117859309 A CN117859309 A CN 117859309A
- Authority
- CN
- China
- Prior art keywords
- managed nodes
- node
- managed
- nodes
- stable
- 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
- 238000000034 method Methods 0.000 claims abstract description 61
- 238000004590 computer program Methods 0.000 claims abstract description 13
- 238000003860 storage Methods 0.000 claims description 41
- 238000012545 processing Methods 0.000 claims description 19
- 230000006870 function Effects 0.000 claims description 16
- 230000015654 memory Effects 0.000 claims description 13
- 230000003862 health status Effects 0.000 claims description 10
- 230000036541 health Effects 0.000 claims description 7
- 230000003068 static effect Effects 0.000 claims description 7
- 238000004891 communication Methods 0.000 claims description 2
- 238000013515 script Methods 0.000 description 21
- 230000008569 process Effects 0.000 description 18
- 101001074449 Crotalus durissus terrificus Phospholipase A2 inhibitor CNF Proteins 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 230000003287 optical effect Effects 0.000 description 6
- 238000010168 coupling process Methods 0.000 description 5
- 238000005859 coupling reaction Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009172 bursting Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000011065 in-situ storage Methods 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
一种用于在受管节点上执行任务的方法、计算机程序产品和计算机***。接收要由Ansible模块在两个或更多个受管节点中的一个或多个受管节点上执行的指定任务。基于所述Ansible模块的hostDecision属性的属性值来确定所述一个或多个受管节点。属性值可以是primaryNode、allNodes、或Dynamic,其中:primaryNode要求一个或多个受管节点为主节点,allNodes要求一个或多个受管节点为两个或多个受管节点,Dynamic要求一个或多个受管节点基于运行时信息动态确定。将Ansible模块发送到一个或多个受管节点,以在一个或多个受管节点上执行任务。
Description
背景技术
本发明的实施例总体上涉及使用Ansible引擎在Ansible平台中部署用于执行任务的Ansible模块,并且更具体地涉及针对任务可能不需要在Ansible主机组中的所有受管节点上执行的情形选择性地确定任务将在哪些受管节点上执行。
Ansible是部署在Ansible IT平台上的信息技术(IT)引擎。在云平台中广泛使用的软件的Ansible引擎通过使用Ansible模块来执行在Ansible剧本(playbook)中指定的一个或多个任务来自动化应用部署。一个或多个任务将由主机组(在下文中称“主机”)的所有受管节点上的Ansible模块执行。主机组在Ansible剧本中指定。在Ansible清单中标识主机的受管节点。
Ansible剧本是通常以又一种标记语言(YAML)编写的文本脚本。Ansible剧本特别指定:剧本名称、要执行的一个或多个任务、以及在Ansible清单中标识其受管节点的主机组的标识。
主机可以专用于***内的类别,并且主机的受管节点是该类别的实例。主机类别的示例是web服务器、数据库服务器、邮件服务器、存储储存库等。例如,如果主机特定于web服务器,则主机的每个受管节点是位于诸如互联网协议(IP)地址之类的地址处的特定web服务器。
Ansible引擎在Ansible控制节点中运行,该Ansible控制节点用于尤其使用Ansible剧本和Ansible清单作为输入来选择任务有待在其上执行的受管节点。
一种Ansible角色提供了用于模块、任务变量、文件和模板的独立且可重复使用的集合的框架,该集合可以被自动加载到一种Ansible剧本中。由此,Ansible剧本是Ansible角色的集合。Ansible角色彼此独立。Ansible星系(Galaxy)是Ansible角色的存储库。
Ansible集合是Ansible内容的分布格式。可使用Ansible集合来封装和分发Ansible剧本、角色、模块和插件。
图1示出了根据现有技术使用安全外壳(SSH)协议将Ansible模块111分别发送到主机组150的相互独立的受管节点1、2、3、4以供模块111分别在受管节点1、2、3、4上执行任务130的Ansible控制节点110。任务130和主机组150在Ansible剧本140中被指定。主机组150的受管节点1、2、3、4在Ansible清单160中指定。
在现有技术通常使用的图1的配置中,受管节点是独立且隔离的,从而使得有待受管节点执行的自动动作不会彼此影响。因此,一组受管节点将执行相同的动作。从而,“主机组”用在Ansible剧本中,使得可以对一组受管节点容易地执行相同的任务。
Ansible的采用和使用已经随时间增加。许多不同的平台已经加入Ansible生态***。这种平台引入可以彼此可见的受管节点,并且在一个受管节点上执行的动作可以影响其他受管节点,其中,受管节点彼此可见的***在本文中表示为在图1中示出的***S。
图2示出了根据现有技术使用SSH协议将Ansible模块211分别发送到主机组251、252、253的相互可见受管节点1、2、3、4以供模块211在受管节点1、2、3、4上执行任务的Ansible控制节点210。
任务230和主机组251、252、253在Ansible剧本240中指定。在Ansible清单260中指定主机组251、252、253的受管节点1、2、3、4,其中在Ansible清单260中仅明确地展示主机组251(OSGroup)。
在图2中,Ansible剧本240中的剧本1指定主机组OSgroup和在***S内的所有OS操作***上要执行的任务。任务包括两个命令,即command1和command2,使得每个这样的命令不影响其他OS操作***。
Ansible剧本240中的剧本2指定主机组nodel.bj.com和在包含受管节点1和2的***综合体(Sysplex)265中仅要执行一次的任务。***综合体指的是多个计算机的复合体内的OS操作***的独立实例的集群。受管节点1和2到耦合设施(CF)270的连接使得受管节点1和2能够通过耦合设施链路共享数据。
Ansible剧本240中的剧本3指定切换回主机OSgroup以执行独立动作。
由***S对Ansible的支持使得能够部署用于混合云使用的***S。然而,Ansible剧本240可尤其呈现以下两个问题。
关于Ansible剧本的第一个问题是,终端用户必须将一个逻辑进程分成多个逻辑进程,从而使得主机可以被切换,这可以使得用于***S的剧本看起来不同于用于引入学***台。
关于Ansible剧本的第二个问题是,终端用户必须决定每个任务是否应该执行一次或在所有***S上执行,这可能产生错误并且降低效率。
此外,在混合云场景中,Ansible是最流行的基础设施代码(IaC)工具之一。Ansible剧本是IaC作品。在理想情况下,相同的IaC作品提供相同的基础设施。然而,由于以上关于图2讨论的问题,在自动化从公共云转移到现场内环境时,难以保持使用相同的IaC作品(即,Ansible剧本)。
图3A示出了根据现有技术的用于公共云330的Ansible剧本310和图3B示出了用于现场(“现场”)环境340的Ansible剧本320和Ansible清单362。Ansible剧本310和320是不同的剧本。
***综合体365包括受管节点1和受管节点2。受管节点1和2到耦合设施(CF)370的连接使得受管节点1和2能够通过耦合设施链路共享数据。
在公共云330中,可在所有OS操作***上执行Ansible剧本310中的任务,因为OS操作***彼此隔离。在现场环境340中,应仅在特定OS操作***中执行Ansible剧本320中的任务一次,因为OS操作***可能在同一***综合体中。由此,不同的剧本被用于公共云和现场内环境,这是低效的并且引入错误脆弱性。
综合现有技术,Ansible不具有足够的灵活性和分析能力来处理交叉受管节点的影响,这些影响可能尤其产生以下问题:为交叉受管节点创建自动化的高学习曲线;为跨受管节点创建自动化的低生产率;容易出错的自动化脚本;以及在混合云场景中的不一致的IaC代码。
发明内容
本发明实施例提供一种在受管节点上实现任务的方法、计算机程序产品和计算机***。计算机***中的Ansible控制节点内的Ansible引擎的一个或多个处理器接收将由主机的多个受管节点中的一个或多个受管节点上的Ansible模块执行的任务的指定。
所述一个或多个处理器基于所述Ansible模块的hostDecision属性的属性值来确定所述一个或多个受管节点。属性值选自由primaryNode、allNodes和Dynamic组成的组,其中primaryNode要求一个或多个受管节点由从多个受管节点中选择的主节点组成,其中allNodes要求一个或多个受管节点由多个受管节点组成,并且其中Dynamic要求基于运行时信息动态地确定一个或多个受管节点,所述运行时信息包括由主节点获得的、与多个受管节点中的受管节点相关的一个或多个因素的当前状态。
所述一个或多个处理器将所述Ansible模块发送至所述一个或多个受管节点,以在所述一个或多个受管节点上执行所述任务。
附图说明
图1示出了根据现有技术的使用安全外壳(SSH)协议将模块发送到主机组的相互独立的受管节点以便模块在受管节点上执行任务的Ansible控制节点。
图2示出了根据现有技术的使用SSH协议将模块发送到主机组的相互可见的受管节点以便模块在受管节点上执行任务的Ansible控制节点。
图3A示出了根据现有技术的用于公共云的Ansible剧本,并且图3B示出了根据现有技术的用于现场(“现场”)环境的Ansible剧本。
图4示出了根据本发明的实施例的Ansible控制节点。
图5是描述根据本发明的实施例的用于在受管节点上实现任务的方法的流程图。
图6是描述根据本发明的实施例的用于处理hostDecision属性的方法的流程图。
图7示出了根据本发明的实施例的计算机***。
图8示出了根据本发明的实施例的云计算环境。
图9示出了根据本发明的实施例的抽象模型层。
具体实施方式
本发明的实施例自动选择Ansible受管节点以避免跨主机影响。通过支持针对Ansible清单的静态或动态主节点确定来增强Ansible引擎。Ansible引擎还被增强以引入用于Ansible模块的新属性hostDecision,其值应该是primary Node、allNodes或Dynamic。hostDecision属性用于基于各种不同因素来静态或动态地选择受管节点。
在不同实施例中,Ansible引擎根据特定于被配置为执行特定任务的Ansible模块的属性hostDecision,静态地或动态地确定Ansible模块应当在受管节点主机组中的哪些受管节点中执行Ansible剧本中指定的特定任务。Ansible模块是被配置为执行特定任务的计算机程序(即,软件)。由此,Ansible模块通过在受管节点处作为软件由一个或多个计算机处理器来执行而在受管节点处执行特定任务。hostDecision属性可以具有“primaryNode(主节点)”、“allNodes(所有节点)”和“Dynamic(动态)”的值。
对于针对hostDecision属性的“PrimaryNode”的值,将仅在主机组中的节点中的主节点上执行任务。
对于针对hostDecision属性的“allNode”的值,将对主机组中的所有节点执行任务。
对于hostDecision属性的“Dynamic”值,基于与主机的受管节点有关的一个或多个因素的当前状态动态地确定任务将在其上执行的一个或多个节点(在主机组中),这种一个或多个因素尤其包括中央处理单元(CPU)容量权重、***环境变量、健康状态、工作负荷、繁忙状态等。
图4示出了根据本发明的实施例的Ansible控制节点410。
Ansible控制节点410包括Ansible星系(Galaxy)470、Ansible剧本440、Ansible清单460、Ansible引擎480、动态主节点确定490和配置文件450。在一个实施例中,动态主节点确定490在Ansible引擎480之外,如图所示。在一个实施例中,动态主节点确定490在Ansible引擎480内。
Ansible星系470包括Ansible模块411、412、413、414,并且还可以包括插件416和417,插件416和417可以由Ansible引擎480调用,以便结合待执行的任务来执行Ansible引擎480所要或所需的专用功能。
Ansible清单460指定主机组450和受管节点1、2、3、4,如分别经由“nodel.bj.com”、“node2.bj.com”、“node3.bj.com”和“node4.bj.com”识别的。
Ansible剧本440指定主机组450(“hostGroup”)、任务430(包括任务431、432、433、434)、以及被配置成用于分别执行任务431、432、433、434的Ansible模块411、412、413、414。
Ansible引擎480使用安全外壳(SSH)协议向受管节点1、2、3、4的受管节点位置465发送Ansible模块411、412、413、414,以便模块411、412、413、414各自根据每个模块的hostDecision属性分别在受管节点1、2、3、4中的一个或多个受管节点上执行模块特定的任务430。受管节点1是图4的示例中的主节点。
在一个实施例中,对于每个Ansible模块,Ansible引擎480从多种源中的任何源接收Ansible模块的hostDecision属性值,所述多种源尤其包括Ansible模块的开发者、Ansible模块的用户、要由Ansible模块执行的任务的发起者或用户、在其上将执行任务的节点群组的主节点、或其子集。
在一个实施例中,配置文件450为每个模块(模块1:primaryNode;模块2:allNodes;;模块3:primaryNode;;模块4:Dynamic))指定hostDecsion属性值。
因此,Ansible模块411具有hostDecsion属性值“primaryNode”。模块412具有hostDecsion属性值“allNodes”。模块413具有hostDecsion属性值“PrimaryNode”。模块414具有hostDecsion属性值“Dynamic”。
在一个实施例中,在Ansible引擎480的控制下,动态主节点确定490可以用于确定哪个受管节点是主节点。
对于本发明的实施例,终端用户435可以在Ansible清单460中静态地指定主机组450的主节点,或者Ansible引擎480可以利用添加的主节点确定模块490动态地确定主节点。在图4中,受管节点1是如在受管节点位置465和Ansible清单460处所示的主节点。
如果执行特定任务的模块的hostDecsion属性值是“PrimaryNode”,则主节点是可以在其上执行特定任务的主机组中仅有的受管节点。由此,其关联模块具有hostDecision=PrimaryNode的那些Ansible任务将不在同一主机组中的其他受管节点上执行。
确定哪个受管节点是主节点有两种模式:静态模式和动态模式。
在用于确定哪个受管节点是主节点的静态模式中,终端用户435静态地指定Ansible清单460中的主机组450的主节点,这导致该主节点在Ansible清单460中的主机组450中被如所t图示指定。如图所示,主节点也可以在受管节点位置465中指定。Ansible引擎480直接从用户或从Ansible控制节点470内的存储(诸如从Ansible清单460或从配置文件450)接收主节点的标识。
在用于确定哪个受管节点是主节点的动态模式中,Ansible引擎480可以使用添加的主节点确定模块490动态地确定主节点,这导致在受管节点位置465中主节点被指定以及被存储在配置文件450中和Ansible控制节点410内的其他存储位置中。
存在两种类型的动态处理以基于与主机的受管节点相关的一个或多个因素的当前状态来确定哪个受管节点是主节点。
在确定哪个受管节点是主节点的第一类型的动态处理中,受管节点在具有例如:[nodeGroup1]nodel.cloud.com和node2.cloud.com的节点组的公共云上,在这种情况下,节点(node)1和节点2是通常用作测试前环境的独立节点并且可以彼此隔离。第一类型的“动态”处理标识哪个受管节点是nodel.cloud.com的主节点以及哪个受管节点是node2.cloud.com的主节点。从实现的角度看,节点1和节点2上都将执行一定的处理。由于在该公共云情况下,节点1和节点2彼此隔离并且不看到彼此,所以节点1将自身视为主节点,而节点2将自身视为主节点。因此,动态处理将节点1的主节点作为节点1返回到Ansible引擎480。类似地,动态处理将节点2的主节点作为节点2返回到Ansible引擎480。Ansible引擎480将主节点的标识存储在Ansible清单460中和配置文件450中。
稍后,当Ansible引擎480开始执行任务时,如果特定任务的“hostDecision”是“PrimaryNode”,则针对节点1的任务将在节点1上执行,并且针对节点2的相同任务将在节点2上执行。换言之,将在“nodeGroup1”中的每个节点上执行相同的任务。
在确定哪个受管节点是主节点的第二类型的动态处理中,受管节点在具有例如:[nodeGroup2]node3.customer.com和node4.customer.com的节点组的现场内(“On-Prem”)环境,在这种情况下,节点3和节点4在客户的数据中心中。如果节点3和节点4在***S中,很有可能节点3和节点4在同一个***综合体中,这意味着节点3和节点4可以看到并互相影响。由于节点3和节点4共享相同的***综合体,一些任务只能执行一次(即,或者在节点3上或在节点4上)。在“动态”处理期间,节点3和节点4由于处于相同的***综合体而彼此知晓。由此,可以基于与主机的受管节点有关的一个或多个因素的当前状态来动态地确定主节点,其中对于该示例,受管节点是节点3和节点4。与主机的受管节点有关的一个或多个因素尤其包括中央处理单元(CPU)容量权重、***环境变量和健康状态。
作为使用CPU容量权重来动态地确定主节点的示例,***S可以包括多个节点,每个节点被指派不同的CPU容量。在一个实施例中,具有最大指派的CPU容量的节点被确定为主节点。
作为使用***环境变量来动态地确定主节点的示例,***S可以包括多个节点,每个节点具有安装的指定的软件产品(例如,CICS、DB2)。在一个实施例中,具有所安装的软件产品的最新版本的节点被确定为主节点。
作为使用健康状态来动态地确定主节点的示例,***S可以包括安装在每个节点上的多个产品(即,硬件产品、软件产品、以及它们的组合)的健康状态。对每个产品的健康状态进行评分,并且反映产品相对于硬件要求、***要求、安全要求等的符合程度。在一个实施例中,具有最高健康状态评分的节点被确定为主要节点。
如果hostDecision属性是Dynamic(动态的),则本发明的实施例确定要在其上执行任务的受管节点。
在一个实施例中,在Ansible引擎根据模块的hostDecision属性将执行任务的模块发送到主节点之后,可以由主节点确定任务应该在哪些受管节点上执行。主节点可以基于运行时信息动态地确定任务应该在哪些管理的节点上执行,所述运行时信息尤其包括一个或多个因素的当前状态,所述因素包括***环境变量、健康数据、工作负荷状态等。然后,主节点将向Ansible引擎返回任务要在其上执行的一个或多个目标节点的列表。然后,Ansible引擎将返回的一个或多个目标节点的列表存储在Ansible控制节点内的存储区域中,目标节点的列表可随后由Ansible引擎从该存储区域访问。
在一个实施例中,在Ansible引擎从主节点接收运行时信息之后,可以由该Ansible引擎确定任务应该在哪些受管节点上执行,该运行时信息尤其包括***环境变量、健康数据、工作负荷状态等。然后,Ansible引擎将返回的一个或多个目标节点的列表存储在Ansible控制节点内的存储区域中,目标节点的列表可随后由Ansible引擎从该存储区域访问。
以下示例展示了如果hostDecision是Dynamic.(动态的),Ansible引擎如何标识将在哪些节点上执行给定任务。
针对此示例的Ansible清单是:
[nodeGroup3]
node5.customerl.com
node6.customerl.com
node6.customerl.com
主节点是节点5。
对于这个实例,可回答的剧本是:
剧本1:
主机:nodeGroup3
-任务1(调用Ansible模块1(模块1的hostDecision是“primaryNode”)
-任务2(调用Ansible模块2(模块2的hostDecision是“allNode”))
-任务3(调用Ansible模块3(模块3的hostDecision是“Dynamic”)
当Ansible引擎执行任务1时,任务1将仅在节点5上执行,因为任务1将仅在主节点上执行,并且主节点是节点5
当Ansible引擎执行任务2时,将对所有节点(节点5、节点6、节点7)执行任务2。
当Ansible引擎执行任务3时,任务3将触发“dynamic(动态)”处理以动态识别任务3应被在其上执行的目标节点。该处理将使用特殊逻辑来执行。逻辑基于但不限于下列因素确定目标节点:工作量平衡、健康状态、软件安装版本和***环境变量。
将使用前述因素中的哪些因素(工作负荷平衡、健康状态、软件安装版本、***环境变量)以及这些因素如何取决于每个模块的实现方式。例如,假定逻辑返回节点5和节点7作为目标节点。则任务3只在节点5和节点7执行,而不是在所有节点执行。说明性地,那些因素可以如下在***S中使用。
对于此示例中的工作量平衡的因素,任务3用于执行批量作业。节点5的主节点可检查出每个节点的当前CPU利用率。如果节点7具有最低的CPU利用率,则动态处理返回节点7作为目标节点,因为批量作业仅需要执行一次,并且对同一***综合体(节点5、节点6和节点7在同一***综合体中)中的哪个节点应该执行作业无关紧要。则任务3只在节点7上执行,实现负载均衡。
对于这个实例中的健康状态的因素,任务3将部署新的CICS应用至节点。应用不应被部署到目前不健康的CICS服务器。由此,动态处理可以在每个节点中检查CICS(例如,通过健康检查技术)服务器的健康状态,并且仅返回具有健康CICS服务器的节点,该健康CICS服务器是不包括所有节点的节点的子集。因此,任务3将仅在返回的节点子集上执行,而不是在所有节点上执行。
对于这个实例中的软件安装版本的因素,任务3将CICS应用部署到节点。CICS应用可被部署到具有等于或高于指定的最小CICS版本号的CICS版本号的任何节点。动态处理可以在每个节点上扫描CICS版本,然后返回满足前述最小版本要求的一个或多个节点。
对于这个实例中的***环境变量的因子,Task3用于在指定的***环境变量具有值ON时应用补丁。动态处理扫描每个节点的指定***环境变量。如果节点6和节点7指定的***环境变量为ON,而不是节点5,则将节点6和节点7返回作为目标节点,只在节点6和节点7上执行任务3。
图5是描述根据本发明的实施例的用于在受管节点上实现任务的方法的流程图。图5的方法包括步骤510-530。
步骤510由计算机***中的Ansible控制节点内的Ansible引擎的一个或多个处理器接收对要由主机的多个受管节点中的一个或多个受管节点上的Ansible模块执行的任务的指定。
步骤520由所述一个或多个处理器基于所述Ansible模块的hostDecision属性的属性值来确定所述一个或多个受管节点,其中,所述属性值选自由primaryNode,allNodes,和Dynamic组成的组,其中主节点要求一个或多个受管节点由从多个受管节点中选择的主节点组成,其中allNodes要求一个或多个受管节点由多个受管节点组成,并且其中,Dynamic(动态)要求基于运行时信息动态地确定所述一个或多个受管节点,所述运行时信息包括由所述主节点获得的、与所述多个受管节点中的所述受管节点有关的一个或多个因素的当前状态。
步骤530由该一个或多个处理器将该Ansible模块发送至该一个或多个受管节点,以在该一个或多个受管节点上执行该任务。
图6是描述根据本发明的实施例的用于处理hostDecision属性的方法的流程图。图6的流程图包括步骤610-670。
步骤610由Ansible引擎确定hostDecision属性是否具有allNodes的属性值。
如果步骤610确定hostDecision属性具有allNodes的属性值,则在步骤620,Ansible模块在主机的多个受管节点中的所有受管节点上运行任务。
如果步骤610没有确定hostDecision属性具有allNode的属性值,则hostDecision属性是primaryNode或Dynamic(动态),并且接下来执行步骤630。
步骤630根据步骤631、步骤632或步骤633确定主节点。
步骤631由该一个或多个处理器从该Ansible控制节点内的一个Ansible清单接收该主节点的标识,其中该Ansible清单存储该多个受管节点和该主节点的标识。
步骤632由所述一个或多个处理器接收所述主节点的动态标识,其中,所述多个受管节点在公共云上,从而使得所述多个受管节点中的所述受管节点彼此隔离,并且其中,接收所述主节点的所述动态标识包括:从每个受管节点接收每个受管节点是所述主节点的通信。
步骤633由所述一个或多个处理器接收所述主节点的动态标识,其中,所述多个受管节点在现场内环境内的同一***综合体中,从而使得所述多个受管节点中的所述受管节点各自知道所述多个受管节点中的所述其他受管节点的存在,以及其中接收所述主节点的所述动态标识包括:经由基于与所述多个主节点的受管节点有关的所述一个或多个因素的当前状态对所述主节点的动态确定来接收所述主节点的所述动态标识。在一个实施例中,与受管节点有关的一个或多个因素包括中央处理单元(CPU)容量权重、***环境变量和健康状态。
步骤640由Ansible引擎确定hostDecision属性具有primaryNode或Dynamic属性值。
如果步骤640确定hostDecision属性具有primaryNode属性值,则在步骤650,Ansible模块在主节点上运行任务。
如果步骤640确定hostDecision属性具有Dynamic属性值,则接下来执行步骤660。
步骤660由所述一个或多个处理器基于运行时信息动态地确定在其上要执行所述任务的所述一个或多个受管节点,所述运行时信息包括与所述多个受管节点中的所述受管节点有关的一个或多个因素的当前状态。在一个实施例中,与受管节点有关的一个或多个因素包括***环境变量、健康数据和工作负荷状态。
在步骤670中,Ansible模块在步骤660中动态确定的一个或多个受管节点上运行任务。
在一个实施例中,动态地确定在其上要执行所述任务的所述一个或多个受管节点包括:在所述主节点已经基于所述运行时信息动态地确定所述一个或多个受管节点之后,由所述一个或多个处理器从所述主节点接收所述一个或多个受管节点的列表。
在一个实施例中,动态地确定在其上要执行任务的一个或多个受管节点包括:由一个或多个处理器从主要节点接收运行时信息;以及由所述一个或多个处理器基于从所述主节点接收的所述运行时信息动态地确定所述一个或多个受管节点。
在一个实施例中,Ansible控制节点包括指定Ansible模块的hostDecsion属性的清单文件。
在一个实施例中,该Ansible控制节点进一步包括一个Ansible星系,该Ansible星系包括该Ansible模块和一个插件,该插件被配置成用于结合有待执行的任务来执行该Ansible引擎所需或所要的一个专用功能。
在一个实施例中,Ansible模块在一个或多个受管节点上执行任务。
图7示出了根据本发明的实施方式的计算机***90。
计算机***90包括处理器91、耦合至处理器91的输入设备92、耦合至处理器91的输出设备93、以及各自耦合至处理器91的存储器设备94和95。处理器91表示一个或多个处理器,并且可以表示单个处理器或多个处理器。输入装置92尤其可以是键盘、鼠标、相机、触摸屏等或其组合。输出设备93可以是打印机、绘图仪、计算机屏幕、磁带、可移动硬盘、软盘等,或其组合。存储器设备94和95各自可以是硬盘、软盘、磁带、诸如致密盘(CD)或数字视频盘(DVD)之类的光存储、动态随机存取存储器(DRAM)、只读存储器(ROM)等、或其组合。存储器设备95包括计算机代码97。计算机代码97包括用于执行本发明的实施例的算法。处理器91执行计算机代码97。存储器设备94包括输入数据96。输入数据96包括计算机代码97所需的输入。输出装置93显示来自计算机代码97的输出。存储器设备94和95中的任一个或两者(或一个或多个附加存储器设备,诸如只读存储器设备96)可包括算法,并且可被用作计算机可用介质(或计算机可读介质或程序存储设备),其具有在其中体现的计算机可读程序代码和/或具有在其中存储的其他数据,其中计算机可读程序代码包括计算机代码97。通常,计算机***90的计算机程序产品(或可替代地,制品)可以包括计算机可用介质(或程序存储设备)。
在一些实施例中,所存储的计算机程序代码98(例如,包括算法)可以存储在静态、不可移动、只读存储介质(如只读存储器(ROM)设备99)上,或者可以由处理器91直接从这种静态、不可移动、只读介质99访问,而不是从硬盘驱动器、光盘或其他可写、可重写、或可移除硬件存储器设备95存储和访问。类似地,在一些实施例中,存储的计算机程序代码97可以存储为计算机可读固件99,或者可以由处理器91直接从这样的固件99访问,而不是从更动态或可移除的硬件数据存储设备95(诸如硬盘驱动器或光盘)访问。
此外,本发明的任何组件可以由服务提供商创建、集成、托管、维护、部署、管理、服务等,所述服务提供商提供改进与交叉引用度量相关联的软件技术,所述度量与插件组件相关联,生成软件代码模块,并且实现目标云组件的操作功能。由此,本发明公开了用于部署、创建、集成、托管、维护和/或集成计算基础设施的过程,包括将计算机可读代码集成到计算机***90中,其中代码与计算机***90组合能够执行这样的方法,该方法用于实现用于改进与交叉引用与插件组件相关联的度量相关联的软件技术的过程,生成软件代码模块,以及实现目标云组件的操作功能。在另实施例中,本发明提供了在订阅、广告和/或费用的基础上执行本发明的处理步骤的商业方法。即,诸如解决方案集成商之类的服务提供者可以提供使能用于改进与插件组件相关联的交叉引用度量相关联的软件技术、生成软件代码模块、以及实现目标云组件的操作功能的过程。在这种情况下,服务提供商可以为一个或多个客户创建、维护、支持等执行本发明的处理步骤的计算机基础设施。反过来,服务提供商可根据订阅和/或费用协议从客户接收付款,和/或服务提供商可从广告内容向一个或多个第三方的销售接收付款。
虽然图7将计算机***90示出为硬件和软件的特定配置,但本领域普通技术人员已知的任何配置的硬件和软件可以结合图7的特定计算机***90用于上述目的。例如,存储器设备94和95可以是单个存储器设备的部分,而不是单独的存储器设备。
本发明可以是在任何可能的集成技术细节水平上的***、方法、和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质(或多个介质)。
计算机可读存储介质可以是可以保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是,例如,但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备。计算机可读存储介质可以是能够保留和存储供指令执行设备使用的指令的有形设备。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式紧凑盘只读存储器(CD-ROM)、数字通用盘(DVD)、记忆棒、软盘、诸如穿孔卡之类的机械编码设备或具有记录在其上的指令的槽中的凸出结构、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线发射的电信号。
在此所描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载至相应的计算/处理设备或者下载至外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据、或以一种或多种程序设计语言的任何组合编写的源代码或目标代码,所述程序设计语言包括面向对象的程序设计语言(诸如Smalltalk、C++等)和过程程序设计语言(诸如“C”程序设计语言或类似程序设计语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接至用户计算机,或者可连接至外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本发明的各方面。
在此参照根据本发明的实施例的方法、装置(***)和计算机程序产品的流程图说明和/或框图描述了本发明的多个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以被提供给计算机的处理器、或其他可编程数据处理装置以产生机器,这样使得经由计算机的处理器或其他可编程数据处理装置执行的这些指令创建用于实现在流程图和/或框图的或多个框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置、和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读存储介质包括包含实现流程图和/或框图中的或多个方框中规定的功能/动作的方面的指令的制造品。
所述计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置、或其他设备上,以使得在所述计算机、其他可编程装置或其他设备上执行一系列操作步骤以产生计算机实现的过程,从而使得在所述计算机、其他可编程装置或其他设备上执行的所述指令实现在所述流程图和/或框图的或多个框中指定的功能/动作。
附图中的流程图和框图示出了根据本发明的不同实施例的***、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些备选实现中,框中标注的功能可以不按照图中标注的顺序发生。例如,连续示出的两个方框实际上可以作为一个步骤完成,同时、基本上同时、以部分或完全时间上重叠的方式执行,或者方框有时可以以相反的顺序执行,这取决于所涉及的功能。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的***来实现。
本发明的计算机程序产品包括一个或多个计算机可读硬件存储设备,所述计算机可读硬件存储设备具有存储在其中的计算机可读程序代码,所述程序代码包含可由计算机***的一个或多个处理器执行以实现本发明的方法的指令。
本发明的计算机***包括一个或多个处理器、一个或多个存储器、以及一个或多个计算机可读硬件存储设备,所述一个或多个硬件存储设备包含可由所述一个或多个处理器经由所述一个或多个存储器执行的程序代码以实现本发明的方法。
云计算环境
应当理解的是,虽然本公开包括关于云计算的详细描述,但是本文所陈述的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知的或以后开发的任何其他类型的计算环境来实现。
云计算是服务递送的模型,用于使得能够方便地、按需地网络访问可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池,所述可配置计算资源可以用最小的管理努力或与所述服务的提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特征如下:
按需自助服务:云消费者可以根据需要自动地单方面地自动提供计算能力,如服务器时间和网络存储,而无需与服务的提供商进行人类交互。
广泛的网络访问:能力可通过网络获得并且通过促进异构瘦客户机平台或厚客户机平台(例如,移动电话、膝上型计算机、和PDA)使用的标准机制来访问。
资源池:提供者的计算资源被池化以使用多租户模型来服务于多个消费者,其中不同的物理和虚拟资源根据需要动态地指派和重新指派。存在位置独立性的感觉,因为消费者通常不具有对所提供的资源的确切位置的控制或了解,但可能能够以较高抽象级别(例如,国家、州或数据中心)指定位置。
快速弹性:能够快速和弹性地提供能力,在一些情况下自动地快速缩小和快速释放以快速放大。对于消费者而言,可用于供应的能力通常显得不受限制并且可以在任何时间以任何数量购买。
测量服务:云***通过利用适于服务类型(例如,存储、处理、带宽、和活动用户账户)的某个抽象级别的计量能力来自动控制和优化资源使用。可以监视、控制和报告资源使用,为所利用的服务的提供者和消费者提供透明度。
服务模型如下:
软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。可通过诸如web浏览器(例如,基于web的电子邮件)之类的瘦客户端接口从不同客户端设备访问应用。消费者不管理或控制包括网络、服务器、操作***、存储或甚至单独的应用能力的底层云基础设施,可能的例外是有限的用户特定应用配置设置。
平台即服务(PaaS):提供给消费者的能力是将消费者创建或获取的使用由提供商支持的编程语言和工具创建的应用部署到云基础设施上。消费者不管理或控制包括网络、服务器、操作***或存储的底层云基础设施,但是对所部署的应用和可能的应用托管环境配置具有控制。
基础设施即服务(IaaS):向消费者提供的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其他基本计算资源,所述任意软件可以包括操作***和应用程序。消费者不管理或控制底层云基础设施,而是具有对操作***、存储、所部署的应用的控制以及对所选联网组件(例如,主机防火墙)的可能受限的控制。
部署模型如下:
私有云:云基础设施仅针对组织运行。它可以由组织或第三方管理,并且可以存在于现场内或现场外。
社区云:云基础设施由若干组织共享并且支持具有共享关注(例如,任务、安全要求、策略、和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于现场内或现场外。
公共云:云基础架构对公众或大型行业组可用,并由出售云服务的组织拥有。
混合云:云基础设施是两个或更多个云(私有、社区或公共)的组合,这些云保持唯一实体但通过使数据和应用能够移植的标准化或专有技术(例如,用于云之间的负载平衡的云突发)绑定在一起。
云计算环境是面向服务的,集中于无状态、低耦合、模块化和语义互操作性。云计算的核心是包括互连节点网络的基础设施。
现在参见图8,示出了说明性云计算环境50。如图所示,云计算环境50包括云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点10,本地计算设备诸如例如个人数字助理(PDA)或蜂窝电话54A、台式计算机54B、膝上型计算机54C和/或汽车计算机***54N。节点40可彼此通信。它们可以物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上所述的私有云、社区云、公共云或混合云、或其组合。这允许云计算环境50提供基础设施、平台和/或软件作为云消费者不需要为其维护本地计算设备上的资源的服务。应当理解,图8中所示的计算设备54A-N的类型仅旨在是说明性的,并且计算节点10和云计算环境50可通过任何类型的网络和/或网络可寻址连接(例如,使用网络浏览器)与任何类型的计算机化设备通信。
现在参见图9,示出了由云计算环境50(图8)提供的一组功能抽象层。提前应当理解,图9所示的组件、层和功能仅仅是说明性的,本发明的实施例不限于此。如所描述,提供以下层和对应功能:
硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:大型机61;基于RISC(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储设备65;以及网络和联网组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储器72;虚拟网络73,包括虚拟专用网络;虚拟应用和操作***74;以及虚拟客户端75。
在一个示例中,管理层80可以提供以下描述的功能。资源供应81提供用于在云计算环境内执行任务的计算资源和其他资源的动态采购。计量和定价82在云计算环境内利用资源时提供成本跟踪,并为这些资源的消费开账单或***。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户83为消费者和***管理员提供对云计算环境的访问。服务水平管理84提供云计算资源分配和管理,使得满足所需的服务水平。服务水平协议(SLA)规划和履行85提供根据SLA预期未来需求的云计算资源的预安排和采购。
工作负载层30提供可以利用云计算环境的功能的示例。可以从该层提供的工作负荷和功能的示例包括:地图和导航31;软件开发和生命周期管理32;虚拟课堂教育交付33;数据分析处理34;事务处理35;以及在受管节点36上实现任务。
已经出于说明性目的呈现了在此所描述的本发明的实例和实施例,并且这些实例和实施例不应被解释为是详尽的。虽然本文为了说明的目的描述了本发明的实施例,但是对于本领域技术人员而言,许多修改和变化将变得显而易见。本发明的描述在此解释了这些实例和实施例的基础原理,以便展示本发明相对于已知技术、计算机***和/或产品的实际应用和技术改进。
Claims (20)
1.一种用于在受管节点上执行任务的方法,所述方法包括:
由计算机***中的Ansible控制节点内的Ansible引擎的一个或多个处理器接收对要由主机的多个受管节点中的一个或多个受管节点上的Ansible模块执行的任务的指定;
由所述一个或多个处理器基于所述Ansible模块的hostDecision属性的属性值来确定所述一个或多个受管节点,其中,所述属性值选自由primaryNode,allNodes,和Dynamic组成的组,其中primaryNode要求所述一个或多个受管节点由从所述多个受管节点中选择的主节点组成,其中allNodes要求所述一个或多个受管节点由所述多个受管节点组成,并且其中,Dynamic要求基于运行时信息动态地确定所述一个或多个受管节点,所述运行时信息包括由所述主节点获得的、与所述多个受管节点中的所述受管节点有关的一个或多个因素的当前状态,以及
由所述一个或多个处理器将所述Ansible模块发送到所述一个或多个受管节点,以在所述一个或多个受管节点上执行所述任务。
2.根据权利要求1所述的方法,其中,所述属性值为primaryNode或Dynamic。
3.根据权利要求2所述的方法,其中,所述方法包括:
由所述一个或多个处理器从所述Ansible控制节点内的Ansible清单接收所述主节点的标识,所述Ansible清单存储所述多个受管节点和所述主节点的标识。
4.根据权利要求3所述的方法,其中,所述方法包括:
由所述一个或多个处理器从终端用户接收由所述终端用户存储在所述Ansible清单中的所述主节点的静态标识。
5.根据权利要求2所述的方法,其中,所述方法包括:
由所述一个或多个处理器接收所述主节点的动态标识。
6.根据权利要求5所述的方法,其中,所述多个受管节点在公共云上,使得所述多个受管节点中的所述受管节点彼此隔离,并且其中,所述接收所述主节点的所述动态标识包括:
从每个受管节点接收所述每个受管节点是主节点的通信。
7.根据权利要求5所述的方法,其中所述多个受管节点在现场环境内的同一***综合体中,使得所述多个受管节点中的所述受管节点各自知道所述多个受管节点中的其他受管节点的存在,并且其中所述接收所述主节点的所述动态标识包括:
基于与所述多个主节点的所述受管节点有关的所述一个或多个因素的所述当前状态经由所述主节点的动态确定来接收所述主节点的所述动态标识。
8.根据权利要求7所述的方法,其中,与所述受管节点相关的所述一个或多个因素包括中央处理单元(CPU)容量权重、***环境变量、以及健康状态。
9.根据权利要求2所述的方法,其中,所述属性值是原始节点。
10.根据权利要求2所述的方法,其中,所述属性值是Dynamic,并且其中,所述方法包括:
由所述一个或多个处理器基于所述运行时信息动态地确定在其上要执行所述任务的所述一个或多个受管节点,所述运行时信息包括与所述多个受管节点中的所述受管节点有关的所述一个或多个因素的所述当前状态。
11.根据权利要求10所述的方法,其中,与所述受管节点相关的所述一个或多个因素包括***环境变量、健康数据以及工作负荷状态。
12.根据权利要求10所述的方法,其中,所述动态地确定在其上要执行所述任务的所述一个或多个受管节点包括:
在所述主节点已经基于所述运行时信息动态地确定所述一个或多个受管节点之后,由所述一个或多个处理器从所述主节点接收所述一个或多个受管节点的列表。
13.根据权利要求10所述的方法,其中,所述动态地确定要在其上执行所述任务的所述一个或多个受管节点包括:
由所述一个或多个处理器从所述主节点接收所述运行时信息;以及
由所述一个或多个处理器基于从所述主节点接收的所述运行时信息动态地确定所述一个或多个受管节点。
14.根据权利要求l所述的方法,其中,所述Ansible控制节点进一步包括为所述Ansible模块指定所述hostDecsion属性的配置文件。
15.根据权利要求1所述的方法,其中,所述Ansible控制节点进一步包括Ansible星系,所述Ansible星系包括所述Ansible模块和插件,所述插件被配置为结合所述待执行的任务来执行所述Ansible引擎所需或所要的专用功能。
16.根据权利要求1所述的方法,其中,所述方法包括:
由所述Ansible模块在所述一个或多个受管节点上执行所述任务。
17.一种计算机程序产品,包括一个或多个计算机可读硬件存储设备,所述一个或多个计算机可读硬件存储设备具有存储在其中的计算机可读程序代码,所述程序代码包含可由计算机***中的Ansible控制节点内的Ansible引擎的一个或多个处理器执行的指令,以实施用于在受管节点上执行任务的方法,所述方法包括:
由所述一个或多个处理器接收对要由主机的多个受管节点中的一个或多个受管节点上的Ansible模块执行的任务的指定;
由所述一个或多个处理器基于所述Ansible模块的hostDecision属性的属性值来确定所述一个或多个受管节点,其中,所述属性值选自由primaryNode,allNodes,和Dynamic组成的组,其中primaryNode要求所述一个或多个受管节点由从所述多个受管节点中选择的主节点组成,其中allNodes要求所述一个或多个受管节点由所述多个受管节点组成,并且其中,Dynamic要求基于运行时信息动态地确定所述一个或多个受管节点,所述运行时信息包括由所述主节点获得的、与所述多个受管节点中的所述受管节点有关的一个或多个因素的当前状态,以及
由所述一个或多个处理器将所述Ansible模块发送到所述一个或多个受管节点,以在所述一个或多个受管节点上执行所述任务。
18.根据权利要求17所述的计算机程序产品,其中,所述属性值为primaryNode或Dynamic。
19.一种计算机***,包括在所述计算机***中的Ansible控制节点内的Ansible引擎的一个或多个处理器、一个或多个存储器以及一个或多个计算机可读硬件存储设备,所述一个或多个硬件存储设备包含可由所述一个或多个处理器经由所述一个或多个存储器执行的程序代码,以实施用于在受管节点上执行任务的方法,所述方法包括:
由所述一个或多个处理器接收对要由主机的多个受管节点中的一个或多个受管节点执行的任务的指定;
由所述一个或多个处理器基于被配置为对所述多个受管节点执行所述任务的Ansible模块的hostDecision属性的属性值来确定所述一个或多个受管节点,其中,所述属性值选自由primaryNode,allNodes,和Dynamic组成的组,其中,primaryNode要求所述一个或多个受管节点由从所述多个受管节点中选择的主节点组成,其中,allNodes要求所述一个或多个受管节点由所述多个受管节点组成,并且其中,Dynamic要求基于包括当前状态的运行时信息动态地确定所述一个或多个受管节点,所述运行时信息包括由所述主节点获得的、与所述多个受管节点中的所述受管节点相关的一个或多个因素的当前状态,以及
由所述一个或多个处理器将所述Ansible模块发送到所述一个或多个受管节点,以在所述一个或多个受管节点上执行所述任务。
20.根据权利要求19所述的计算机***,其中,所述属性值为primaryNode或Dynamic。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/489,999 US20230102795A1 (en) | 2021-09-30 | 2021-09-30 | Automatic selection of nodes on which to perform tasks |
US17/489,999 | 2021-09-30 | ||
PCT/CN2022/103297 WO2023050956A1 (en) | 2021-09-30 | 2022-07-01 | Automatic selection of nodes on which to perform tasks |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117859309A true CN117859309A (zh) | 2024-04-09 |
Family
ID=85721889
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280056558.4A Pending CN117859309A (zh) | 2021-09-30 | 2022-07-01 | 自动选择在其上执行任务的节点 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230102795A1 (zh) |
CN (1) | CN117859309A (zh) |
WO (1) | WO2023050956A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12001860B1 (en) * | 2023-01-27 | 2024-06-04 | VMware LLC | Methods and apparatus to generate code as a plug-in in a cloud computing environment |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100512270C (zh) * | 2004-03-05 | 2009-07-08 | 华为技术有限公司 | 一种实现智能网业务的方法 |
US7810099B2 (en) * | 2004-06-17 | 2010-10-05 | International Business Machines Corporation | Optimizing workflow execution against a heterogeneous grid computing topology |
US8607236B2 (en) * | 2005-08-22 | 2013-12-10 | Ns Solutions Corporation | Information processing system |
US9992058B2 (en) * | 2013-11-11 | 2018-06-05 | Softnas Operating Inc. | Redundant storage solution |
EP3026609A1 (en) * | 2014-11-28 | 2016-06-01 | Siemens Aktiengesellschaft | A common plant model for modelling of physical plant items of a production plant |
GB2539639A (en) * | 2015-06-02 | 2016-12-28 | Sparkl Ltd | Interaction of devices in a networked environment |
WO2017019684A1 (en) * | 2015-07-27 | 2017-02-02 | Datagrid Systems, Inc. | Techniques for evaluating server system reliability, vulnerability and component compatibility using crowdsourced server and vulnerability data |
EP3316140A1 (en) * | 2016-10-28 | 2018-05-02 | Alcatel Lucent | Improvements in or relating to determining performance in a distributed application or system |
US11706127B2 (en) * | 2017-01-31 | 2023-07-18 | Vmware, Inc. | High performance software-defined core network |
CN109905263A (zh) * | 2017-12-11 | 2019-06-18 | 上海逸云信息科技发展有限公司 | 一种自动化运维部署*** |
US11140032B2 (en) * | 2018-05-04 | 2021-10-05 | Oracle International Corporation | System and method for building idempotent configuration management modules for a cloud Infrastructure Service |
CN108694053A (zh) * | 2018-05-14 | 2018-10-23 | 平安科技(深圳)有限公司 | 基于Ansible工具自动搭建Kubernetes主节点的方法及终端设备 |
CN109104305A (zh) * | 2018-07-26 | 2018-12-28 | 广东浪潮大数据研究有限公司 | 一种节点增加方法及相关装置 |
US11509531B2 (en) * | 2018-10-30 | 2022-11-22 | Red Hat, Inc. | Configuration sharing and validation for nodes in a grid network |
US20190097900A1 (en) * | 2018-11-26 | 2019-03-28 | Bryan J. Rodriguez | Zero-configuration cluster and provisioning pipeline for heterogeneous computing nodes |
CN109634918A (zh) * | 2018-12-17 | 2019-04-16 | 郑州云海信息技术有限公司 | 一种异常文件的检索方法、***、装置及可读存储介质 |
US10951469B2 (en) * | 2019-01-31 | 2021-03-16 | EMC IP Holding Company LLC | Consumption-based elastic deployment and reconfiguration of hyper-converged software-defined storage |
US11303555B2 (en) * | 2019-04-26 | 2022-04-12 | Juniper Networks, Inc. | Inter-data center software-defined network controller network |
US11526379B2 (en) * | 2019-06-19 | 2022-12-13 | International Business Machines Corporation | Application building in a distributed computing environment |
CN114127757A (zh) * | 2019-07-15 | 2022-03-01 | 维谛公司 | 容器化应用服务的基于风险的调度 |
US11275506B2 (en) * | 2019-10-16 | 2022-03-15 | EMC IP Holding Company LLC | Storage-efficient DR for edge devices |
US20220004546A1 (en) * | 2020-05-06 | 2022-01-06 | Samos Cyber Inc. | System for automatically discovering, enriching and remediating entities interacting in a computer network |
US11676158B2 (en) * | 2020-06-02 | 2023-06-13 | Kyndryl, Inc. | Automatic remediation of non-compliance events |
CN111857767B (zh) * | 2020-06-19 | 2022-07-19 | 苏州浪潮智能科技有限公司 | 一种基于虚拟机自动迁移的虚拟化***升级方法及装置 |
US20210406079A1 (en) * | 2020-06-29 | 2021-12-30 | Robin Systems, Inc. | Persistent Non-Homogeneous Worker Pools |
NL2026456B1 (en) * | 2020-09-11 | 2022-05-12 | Microsoft Technology Licensing Llc | Automatic node fungibility between compute and infrastructure nodes in edge zones |
US11675911B2 (en) * | 2020-11-04 | 2023-06-13 | Wipro Limited | System and method for managing security risk of information technology systems in an enterprise |
US11477267B2 (en) * | 2020-11-09 | 2022-10-18 | Microsoft Technology Licensing, Llc | Operating cloud-managed remote edge sites at reduced disk capacity |
US11487635B2 (en) * | 2020-11-20 | 2022-11-01 | Netapp Inc. | Mediator assisted switchover between clusters |
CN112416524B (zh) * | 2020-11-25 | 2023-06-23 | 电信科学技术第十研究所有限公司 | 基于docker和kubernetes离线的跨平台的CI/CD的实现方法及装置 |
US10970113B1 (en) * | 2020-12-23 | 2021-04-06 | CTRL IQ, Inc. | Systems and methods for orchestrating seamless, distributed, and stateful high performance computing |
US11861389B2 (en) * | 2021-03-09 | 2024-01-02 | Red Hat, Inc. | Compiling a specified instruction from a first virtual application to a second virtual application |
US11994964B2 (en) * | 2021-05-28 | 2024-05-28 | Paypal, Inc. | Dynamic node insertion of secondary services for high-availability during main decision failure at runtime |
US11762668B2 (en) * | 2021-07-06 | 2023-09-19 | Servicenow, Inc. | Centralized configuration data management and control |
-
2021
- 2021-09-30 US US17/489,999 patent/US20230102795A1/en active Pending
-
2022
- 2022-07-01 WO PCT/CN2022/103297 patent/WO2023050956A1/en active Application Filing
- 2022-07-01 CN CN202280056558.4A patent/CN117859309A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2023050956A1 (en) | 2023-04-06 |
US20230102795A1 (en) | 2023-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10713038B2 (en) | Transparent multi-architecture support in a container based cloud | |
US11063815B2 (en) | Building and fixing a dynamic application topology in a cloud based environment leveraging log file data | |
US10353716B2 (en) | Automated deployment and performance evaluation of a virtualized-computing environment | |
CN111527474B (zh) | 软件功能的动态交付 | |
US20150186129A1 (en) | Method and system for deploying a program module | |
US9935849B2 (en) | Assessing a service offering in a networked computing environment | |
US9912759B2 (en) | Dynamically generating solution stacks | |
US10901700B2 (en) | Automatic generation of container image in a runtime environment | |
US20180060223A1 (en) | Application monitoring with a decoupled monitoring tool | |
US20180091625A1 (en) | Risk-Aware Service Management Stack Transformation during Workload Migration | |
US10055393B2 (en) | Distributed version control of orchestration templates | |
US11900173B2 (en) | Container runtime optimization | |
US11829496B2 (en) | Workflow for evaluating quality of artificial intelligence (AI) services using held-out data | |
WO2023279869A1 (en) | Continuous liveness and integrity of applications during migration | |
US10956142B2 (en) | Distributing a composite application | |
US11195137B2 (en) | Model-driven and automated system for shared resource solution design | |
CN116569141A (zh) | 工作流修补 | |
EP4214602A1 (en) | Application migration | |
WO2023050956A1 (en) | Automatic selection of nodes on which to perform tasks | |
US11645583B2 (en) | Automatic rule learning in shared resource solution design | |
CN118056183A (zh) | 优化即时编译过程 | |
US20190139053A1 (en) | Engineering change announcement management system | |
US11875202B2 (en) | Visualizing API invocation flows in containerized environments | |
US11829741B2 (en) | Instantiated deployment of microservices | |
US20230325267A1 (en) | Selective privileged container augmentation |
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 |