理解vRealize Orchestrator工作流中的重要元素仅仅是实现功能性、简易性和分类处理的第一步。 在这篇关于VMware vRealize Orchestrator系列文章的第一部分,我们介绍了vRealize Orchestrator 工作流当中的所有组件。其中的拖放界面是一种前端图形化设计工具,在底层使用JavaScript调用VMware vRealize Orchestrator提供的API(应用程序编程接口)。 如果查看“design”页面当中一些更为复杂的工作流,你会发现由于上一个工作流所带来的输入有所差异,导致当前工作流可能执行不同的动作和决定。
这些工作流在底层都是通……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
理解vRealize Orchestrator工作流中的重要元素仅仅是实现功能性、简易性和分类处理的第一步。
在这篇关于VMware vRealize Orchestrator系列文章的第一部分,我们介绍了vRealize Orchestrator 工作流当中的所有组件。其中的拖放界面是一种前端图形化设计工具,在底层使用JavaScript调用VMware vRealize Orchestrator提供的API(应用程序编程接口)。
如果查看“design”页面当中一些更为复杂的工作流,你会发现由于上一个工作流所带来的输入有所差异,导致当前工作流可能执行不同的动作和决定。这些工作流在底层都是通过JavaScript代码实现的。对于多数Orchestrator平台来说,我们都可以使用不同的方式来创建相同的优选输出。如果需要的话,开发人员可以在单个脚本元素当中添加多种功能,而不是使用多个工作流;使用这种方式能够提升简易性并且实现分类处理。相反地,应该避免大面积的冗余代码,因此需要客户决定哪种方式最为合适以及应该什么时候使用。
为了查看VirtualCenter (VC)当中的所有机器,需要创建一个新的工作流以及文件夹(如果之前没有创建过)。将一个“scriptable task”元素放到start和finish标签之间。之后点击scripting窗口,将下面的代码直接粘结到窗口当中:
var vCenterServers = VcPlugin.allSdkConnections;
var poweredOnVMs = new Array();
var count;
var allVMs = vCenterServers[0].getAllVirtualMachines(null, null);
System.log("Num VMs = " + allVMs.length);
for (count = 0; count < allVMs.length; count++) {
if (allVMs[count].runtime.powerState.value === "poweredOn") {
System.log(allVMs[count].name + "t" + allVMs[count].runtime.powerState.value + "t" + (allVMs[count].summary.storage.committed/1024/1024/1024).toFixed(2) + " GB");
}
}
上面的代码可以帮助我们找到哪些虚拟机的电源是开启的,并且以GB为单位显示每台虚拟机所占用的存储空间。尽管通过拖放操作使用多个工作流的做法更为常见,但是直接执行代码能够简化操作过程,在拖放操作过程当中不再需要对输入和输出进行排序。
当你输入上面的代码之后,通过点击窗口底部的close键来完成操作。在点击“Save”之后将会在屏幕的下方出现绿色的“Saved Successfully”提示。这些代码需要连接到VC,因此需要在输入的时候选择合适的vCenter。
选择“Run”或者点击屏幕上方的“Play”按钮开始执行代码,之后在“logs”标签当中就能够看到所有开启电源的虚拟机以及所占用的存储空间。如图A所示,这里显示了能够连接到的所有虚拟机细节。
图A:日志标签
如图所示,使用基本的JavaScript来遍历所有的虚拟机,如果虚拟机的电源已经开启,那么继续显示虚拟机data store的使用情况。
之后,下面的代码将结果数据输出到日志系统当中:
System.log("Num VMs = " + allVMs.length)
保存工作流,然后运行。
这个代码段自身完成的作用是在不同脚本元素之间传递数据。为了使用这项功能,你必须首先定义变量,但是这个过程并不像看起来那样明确。
为了完全了解VMware vRealize Orchestrator的工作原理,你必须理解工作流参数,输入和输出是完全不同的概念。本质上,工作流参数就是适用于整个工作流的可用变量,用于在工作流元素之间转移数据,可以将它看做全局变量。
输入可能来自于用户、外部服务或者其他工作流对象。比如,你可以使用PowerShell脚本向工作流传递数据。这种特性简化多个数据源的处理流程。顾名思义,outputs就是用来将数据转移到其他工作流当中的。使用outputs,你可以传递任何系统支持的变量类型或者数组。
另外一种我们还没有讨论的vRO特性是变更控制。当你熟悉如何创建更加高级的工作流之后,能够再次恢复到之前版本是十分重要的。如果真的需要重新检查或者恢复某个工作流,那么在general页面点击“Show Version History”超链接就可以实现。如果需要的话,还能够查看当前版本和之前版本之间的差异。
VMware vRealize Orchestrator还可以完成许多其他任务,但是首先推荐你学习JavaScript,因为vRO当中的所有功能都需要使用JavaScript。想要成功开发有用的工作流需要经历一段时间,但是一旦你掌握了如何创建工作流和编写脚本,那么就可以通过简单的点击和运行来代替很多手动操作。
作者
相关推荐
-
自动化之旅:选择正确的IT自动化工具
在企业中,老生常谈的“少即是多”通常是正确的,IT也不例外。这意味着寻求使用已有资源响应不断增加的资源需求,效率往往更高。
-
五大免费的PowerShell资源与工具
现在大多数人要应对席卷数据中心的“虚拟化潮流”,它改变了我们部署应用程序的方式。
-
vRealize Automation与Orchestrator是如何构建虚拟机扩展性的?
VMware vRealize产品的延展功能为IT提供了添加自定义工作流的能力,加强了虚拟机生命周期管理。
-
如何在Hyper-V里使用PowerShell或VBScript脚本?