一、前言
昨天已和大家分享关于vRO和Powershell的一些事,今天继续这个话题,vRA如何调用PowerShell脚本干些大事。本次环境使用Powershell来完成DNS记录的添加和删除,即通过蓝图发布虚拟机后,自动Windows的DNS服务器创建虚拟机的DNS记录(正向和反向记录),当虚拟机被删除后,又自动的删除DNS记录。
这个功能是不是企业私有云的必备功能啊?那我们就开始看看vRA如何利用PowerShell干大事的。
二、vRO添加基于DNS服务器的PowerShell
三、PowerShell脚本内容
Adddns脚本内容,添加DNS记录,该脚本带有3个参数
Removedns脚本内容,删除DNS记录,该脚本带有3个参数
四、vRO的Workflow
创建2个workflow,DNS Add用于添加DNS记录,调用adddns.ps1脚本
该workflow有如下属性值,PowershellHost为刚添加的DNS的PowerShell主机,DomainName为添加DNS记录的区域名,PowerShellName为要执行的powershell脚本绝对路径(DNS虚拟机的目录,见上一节),以上三个属性的值为预设值,各位根据实现需要更改相应的值
该workflow实际是调用vRO自带已有的workflow
被调用的workfolw名为”Invoke an external script”,为vRO自带workflow,不需要各位创建
Invoke an external script需要3个传入值,分别为host、arguments和externalscript,host为powershell主机,argments为传递给powershell脚本的参数,externalscript为需要在powershell主机执行的powershell脚本的路径值(绝对路径,包括脚本名字)。该三个传入参数分别对应PowershellHost、PowerShellName和PowershellTag,PowershellTag为workflow前面过程生成的值
vRO自带的脚本Invoke an external script手工运行的效果如下,Host值设定powershell主机
Name即为需要运行的powershell脚本,Arguments为需要向powershell脚本传递的参数
五、vRA事件订阅设置
在vRA新建订阅
事件主题为“计算机置备”
设置订阅的条件,即在蓝图运行到哪个阶段下,会运行该订阅里设置的vRO的Workflow,为三个条件,“生命周期状态名称”“等于”“VMPSMasterWorkflow32.BuildingMachine”,“状态阶段”“等于”“PRE”,“计算机类型”“等于”“Virtual Machine”,即表示能过蓝图申请虚拟机,准备置备该虚拟机时,触发该订阅
该订阅需要执行的vRO的workflow为DNS Add,即通过powershell脚本添加DNS记录
勾选“阻止”,表示该订阅对应的workflow执行失败时,蓝图申请也失败
完成订阅的创建,然后发布,即该订阅生效了,只要申请蓝图满足刚才所设定的3个条件,则执行vRO里的dns add的workflow
重复上面步骤新建DNS Delete订阅,即销毁虚拟机,删除DNS记录
DNS Delete订阅的条件如下
对应的vRO的workflow为DNS Delete
完成了vRa的订阅后,如何把蓝图里的相关属性信息传递给vRO呢?
这个就需要vRA设定属性定义,我们在业务组里设置属性定义,只要该业务组所对应的蓝图都继承该属性定义
设定如下二个属性定义,值分别为*,表示在申请蓝图的时候,构建虚拟机的时候和销毁虚拟机的时候,都会把蓝图相关的所有属性值传递给vRO。你会发现在设置订阅的时候,设定三个条件,其中一个条件的名字是否和这个值类似?
六、测试验证
完成了以后的所有设定后,我们测试一下效果,请求一个虚拟机蓝图
设置相关值
后台开始置备虚拟机
等待几分钟后,请求完成
发布出来的虚拟机名字为vCloud-VM-23
登录到DNS服务器,出现vCloud-VM-23的记录
且反向解析里也有对应的记录
然后登录到vRO客户端,发现DNS Add这个workflow成功执行了
然后销毁虚拟机
正在销毁虚拟机
vCenter删除虚拟机
成功销毁虚拟机
DNS记录被自动删除
包括反向记录也被删除了
7、总结
是不是很神奇?即然vRA可以通过PowerShell添加DNS记录,那是不是只要PowerShell能做的事,vRA都可以做?答案是肯定的。根据个人多年部署和使用vRealize多年的经验,vRA仅仅只是个框架,里面的内容需要我们来填充,即客户需要什么样的功能,就填充什么样功能。具体如何填充,就看各位对PowerShell脚本及各种其它产品掌握程度来决定,同时还需要一定的脚本编写能力。如果以上能力都能满足,我相信数据中心里的各种自动化功能没有vRealize Automation私有云平台搞不定的事!
领取专属 10元无门槛券
私享最新 技术干货