现在VRealize Orchestrator 8.1让你可以使用其他语言运行脚本,包括PowerCLI,这简化了整个vSphere环境中的任务自动化。
vRealize Orchestrator的早期版本仅支持将JavaScript作为脚本语言;你只能通过JavaScript访问命令。这使需要其他语言的某些任务变得复杂,例如与微软产品集成–需要PowerShell。但是,这并没有阻碍管理员成功开发定制的工作流程。
Scriptable Tasks与操作
当你在vRealize Orchestrator中运行PowerCLI脚本时,你可以将其作为Scriptable Task运行,或者作为操作运行。操作代表静态脚本功能,你可以将其拖动到工作流中。你可以反复使用在操作中使用的代码,甚至在Scriptable Tasks中也是如此。你可以将操作整理为模块,这些模块代表特定操作组。
当你使用Scriptable Tasks运行工作流时,该工作流可在每个新的执行运行时中将这些任务作为不同的工作流项目执行。
如何在vRealize Orchestrator中运行PowerCLI脚本
此前你可以从vRealize Orchestrator执行PowerShell代码,但不能在vRealize Orchestrator服务器中本地运行该脚本,系统会要求你设置Windows主机来为你运行这些脚本。
你所选脚本语言的解释器可处理你放置在服务器Scriptable Task中的所有脚本。这消除了对额外主机的需求。
与Node.js或Python相比,你可能会更频繁地使用PowerCLI。PowerCLI是来自VMware的PowerShell扩展,它使VMware管理员可以直接为VMware环境调用有用的命令,例如大规模创建或配置VM。
为了测试此功能,请先创建一个简单的脚本,以报告所有具有快照的VM。 请使用get-vm | get-snapshot命令,然后将其格式化以显示相关字段:
- get-vm | get-snapshot | format-table created,VM,@{label=”Size in GB”;Expression={“{0:N2}” -f ( $_.SizeGB)}}
如果你的vCenter Server具有自签名证书,则可能无法创建连接。请输入命令以指示PowerCLI忽略任何无效的证书,例如:
- Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -ParticipateInCeip:$false -Scope Session -Confirm:$false
然后,通过你的登陆凭证连接到vCenter Server–使用命令Connect-VIServer。由于此命令无需用户交互即可运行,因此请输入服务器、用户和密码的参数:
- Connect-VIServer -Server $inputs.server -Protocol https -User $inputs.user -Password $inputs.password
如果你从Scriptable Task工作流中运行任务,则可能会显示错误消息,表明你的内存不足。为避免此错误,请确保在执行这些任务前,可用内存超过64 MB。
操作元素
当你通过PowerCLI执行任务时,操作元素使你可以保留一定量的RAM。你无法通过criptable Task,来执行此操作,但是你可以在操作中编写脚本,然后从工作流中执行操作来解决该问题。
例如,你可以在属性中为Runtime Limit保留512 MB RAM。
当你从工作流执行操作时,vRealize Orchestrator会记录该操作。