系列目录:
- VRO基础入门(一)- 简介
- VRO基础入门(二)- 安装与部署
- VRO基础入门(三)- 基本组件 · 上篇
- [VRO基础入门(四)- 基本组件 · 下篇]
- [VRO基础入门(五)- 成功灾备计划的第一步]
- [VRO基础入门(六)- 数据实验室]
- [VRO基础入门(七)- Plan Step · 上篇]
- [VRO基础入门(八)- Plan Step · 下篇]
- [VRO基础入门(九)- 文档模板解析]
- [VRO基础入门(十)- 使用VRO搭配K10实现全自动容器灾备]
上一篇,我介绍了Plan Step的基本配置和使用,今天我来详细分解下在Plan Step中的自定义脚本,我会通过一个脚本使用例子,来带大家使用一下自定义脚本。
创建和设置
配置自定义的脚本需要使用隶属于Administrators组的账户登入VRO平台。进入Administration控制台后,可以在Configuration下面找到Plan Steps,在这里可以管理所有的Plan Steps,当然除了创建自定义的Steps之外,也可以在这里对内置的那些Steps进行一些个性化的配置。
- 点击Add按钮即可进入添加向导,过程也非常简单,为它起个响亮的名字,比如:
远程的骚操作测试
,点击Next进入下一步。
- 在Script步骤中,找到File栏,点击Browse从当前的客户端上去选择制作好的powershell脚本,上传的脚本会在Preview中显示详细内容。点击Next进入下一步。
- 在Step Visibility步骤,如果不希望所有的灾备管理员都看到这个骚脚本的话,可以不勾上这个界面的复选框。
-
最后还是老样子,Summary总结一下,点Finish就创建完成了。
-
但是,这只是创建完成,别想着就马上拿去用,这里特别敲黑板强调一下,自定义脚本可以有两种不同执行位置,一种是在灾备的机器上执行,另外一种是在VBR上执行。这个必须手工在创建完Plan Step之后点击这个Step名称,找到Edit进行修改,这时候会发现,除了前面的创建向导的步骤之外,还会多出一个叫Step Parameters的步骤,在这里可以进行更多的详细配置,也包括修改默认执行位置。
- 默认值是在VBR上执行。比如我今天要做的这个测试就是需要调整一下,更改成In-Guest OS。
需要注意的是,这个Step的设置是全局的,也就是说,如果将这个Step提供给所有的Scope使用,那么这项配置内容是所有的Scope共享的,不能做计划任务中做更改。因此管理员如果有必要,需要做这个Plan Steps的管理页面中根据实际需求逐个定义。
Hello!My Script
那么接下来,让我们来配置一个Script跑一把吧。来个简单的,内容如下:
###########
#Lei Wei - 02/28/20
#
#
# 这个脚本是骚操作的代表,请仔细往后看
#
# v1.0
$S = Get-Date;
Add-Content c:\VRO_log.txt "$S - Recording date "
如果一切正常,在VRO中将会看到如下信息:
让我们变得更复杂一点
好在这个脚本实在太简单了,几乎不可能会出现报错,那么如果复杂一点,脚本成功或者报错,VRO能否捕获这些错误让我们的管理员能够更方便的知道系统发生了什么问题呢?请看以下代码:
###########
#Lei Wei - 02/27/20
#
#
# 这个脚本是骚操作的代表,请仔细往后看
#
# v1.1
try {
$S = Get-Date;
Add-Content c:\VRO_log.txt "$S - Recording date. "
Write-Host "准确计时,骚操作成功"
}
Catch {
Write-Error " 不知道哪里坏了,失败了!"
Write-Error $_.Exception.Message
}
在更换成这个Powershell执行之后,可以看到如下VRO界面中的执行成功记录,除了记录成功失败,还将我设置中脚本中的信息同时传递到了VRO界面之中。
更多参数传递
VRO所使用的脚本还可以更复杂,比如说,可以通过VRO传递一些参数给脚本。我们来继续修改上面的脚本,如下:
###########
#Lei Wei - 02/27/20
#
#
# 这个脚本是骚操作的代表,请仔细往后看
#
# v1.2
Param(
[Parameter(Mandatory=$true)]
[string]$planName,
[string]$text
)
try {
$S = Get-Date;
Add-Content c:\VRO_log.txt "$S - Recording date. "
Write-Host "准确计时,骚操作成功"
Write-Host "准确计时,骚操作成功,$planName,$text !"
}
Catch {
Write-Error " 不知道哪里坏了,失败了!"
Write-Error $_.Exception.Message
}
这个脚本中,我们配置了两个参数,$planName和$text,如果要在VRO中正确使用参数,并将相关参数传递给脚本,那么就需要我们为这个Plan Step加上额外的参数,这个可以通过Plan Step中右边的Add按钮来完成。
需要注意的是,我们Add的参数,它的名称必须和脚本中的参数名称保持一致,才能够被正确的传递,如下图,我们设置了planName和text。
这里planName的default值设置为$plan_name$,这个内容是VRO中系统自带的一些变量,在我们的传递参数中,可以直接使用。具体列表在点击Edit按钮时会直接弹出供我们选择。
而$text,我们直接输入Default Value,而不是使用VRO内置的系统变量,输入的内容为:完成参数传递。
最后让我们来看看这个脚本骚操作在Orchestration Plan中执行结果吧,我们的Step Details和Report中会出现什么:
感觉怎么样,是不是觉得VRO很棒?赶紧动手试一试吧。