通过定义和使用称为软件属性的名称和值对并将其作为参数传递给操作脚本,可将操作脚本设计为通用和可重用脚本。可以创建要求使用字符串、数组、内容、布尔或整数值的软件属性。可以自己提供值,也可以要求其他人提供值,或者通过创建绑定来从其他蓝图组件检索值。

属性选项

您可以通过选中“计算”复选框来计算任何字符串属性的值;配置Software属性时,可以通过选中相应的复选框将任何属性设置为“已加密”、“可覆盖”或“必需”。将这些选项与值结合使用可实现不同的目的。例如,您要求蓝图架构师提供一个密码值,然后在蓝图中使用您的软件组件时对该值进行加密。创建密码属性,但将值文本框留空。选择“可覆盖”、“必需”和“已加密”。如果您所需的密码属于最终用户,则蓝图架构师可以选择在请求中显示以要求您的用户在填写请求表单时输入密码。

选项

描述

加密

将属性标记为加密以屏蔽值,并在 vRealize Automation 中显示为星号。如果将属性从加密更改为未加密,vRealize Automation 将重置属性值。出于安全考虑,必须为此属性设置新值。

可覆盖

当架构师组合应用程序蓝图时,允许他们编辑此属性的值。如果输入值,它将作为默认值显示。

必需

要求架构师为此属性提供一个值,或者接受您提供的默认值。

计算

计算属性的值由 INSTALL、CONFIGURE、START 或 UPDATE 生命周期脚本分配。分配的值会传播到后续可用生命周期阶段和绑定到蓝图中的这些属性的组件。如果选择“计算”作为非字符串属性,则属性类型将更改为字符串。

如果选择“计算”属性选项,请将自定义属性值留空。为计算的值设计脚本。

表 1. 计算属性选项的脚本示例

字符串属性示例

脚本语法

使用示例

my_unique_id = ""

Bash - $my_unique_id

export my_unique_id="0123456789"

Windows CMD - %my_unique_id%

set my_unique_id=0123456789

Windows PowerShell - $my_unique_id

$my_unique_id = "0123456789"

字符串属性

字符串属性要求使用字符串值。可以自己提供字符串,也可以要求其他人提供该值,或者通过创建与其他字符串属性的绑定来从其他蓝图组件检索值。字符串值可以包含任何 ASCII 字符。要创建属性绑定,请使用设计画布中的属性选项卡来选择要绑定的适当属性。属性值随后则会作为原始字符串数据传递到操作脚本。在绑定到蓝图字符串属性时,请确保要绑定到的蓝图组件不可加入群集。如果该组件已加入群集,则该字符串值将成为一个数组,您将无法检索所需的值。

字符串属性示例

脚本语法

使用示例

admin_email = "admin@email987.com"

Bash - $admin_email

echo $admin_email

Windows CMD - %admin_email%

echo %admin_email%

Windows PowerShell - $admin_email

write-output  $admin_email

数组属性

数组属性要求使用以 [“value1”、“value2”、“value3”…] 形式定义的字符串、整数、十进制或布尔值数组。可以自己提供值,也可以要求其他人提供值,或者通过创建属性绑定来从其他蓝图组件检索值。定义数组属性的值时,必须将数组用方括号括起来。对于字符串数组,数组元素中的值可以包含任何 ASCIl 字符。要在数组属性值中正确编码反斜线字符,请再添加一个反斜线,例如 ["c:\\test1\\test2"]。对于绑定属性,使用设计画布中的属性选项卡选择相应的属性进行绑定。如果要绑定到数组,您必须对软件组件进行设计,使其不要求值数组遵循任何特定的顺序。

例如,假设某个负载平衡器虚拟机正在平衡一个应用程序服务器虚拟机群集的负载。在这种情况下,可为负载平衡器服务定义一个数组属性,并将该属性设置为应用程序服务器虚拟机的 IP 地址数组。

这些负载平衡器服务配置脚本将使用该数组属性在 Red Hat、Windows 和 Ubuntu 操作系统上配置相应的负载平衡方案。

数组属性示例

脚本语法

使用示例

operating_systems = ["Red Hat","Windows","Ubuntu"]

Bash - ${operating_systems[@]}

用于整个字符串数组

${operating_systems[N]}

用于单个数组元素

for (( i = 0 ; i < ${#operating_systems[@]}; i++ )); do
   echo ${operating_systems[$i]}
done

Windows CMD - %operating_systems_N%

其中 N 表示元素在数组中的位置

for /F "delims== tokens=2" %%A in ('set operating_systems_') do (
    echo %%A
)

Windows PowerShell - $operating_systems

用于整个字符串数组

$operating_systems[N]

用于单个数组元素

foreach ($os in $operating_systems){
   write-output  $os
}

内容属性

内容属性值是要下载内容的文件的 URL。Software 代理将从 URL 将内容下载到虚拟机并将虚拟机中本地文件的位置传递到脚本。

必须将内容属性定义为使用 HTTP 或 HTTPS 协议的有效 URL。例如,Dukes Bank 示例应用程序中的 JBOSS 应用程序服务器Software组件指定内容属性 cheetah_tgz_url。这些项目托管在Software设备中,并且 URL 指向设备中的该位置。Software 代理将从指定的位置将项目下载到部署的虚拟机中。

有关可用于内容属性的 software.http.proxy 设置的信息,请参见《自定义属性参考》

字符串属性示例

脚本语法

使用示例

cheetah_tgz_url = "http://app_content_server_ip:port/artifacts/software/jboss/cheetah-2.4.4.tar.gz"

Bash - $cheetah_tgz_url

tar -zxvf $cheetah_tgz_url

Windows CMD - %cheetah_tgz_url%

start /wait c:\unzip.exe
%cheetah_tgz_url%

Windows PowerShell - $cheetah_tgz_url

 & c:\unzip.exe
$cheetah_tgz_url

布尔属性

使用布尔属性类型在“值”下拉菜单中提供 True 和 False 这两个选项。

整数属性

对零以及正整数或负整数使用整数属性类型。

十进制属性

对表示非重复十进制小数的值使用十进制属性类型。