创建动作脚本
操作脚本可以是用户从命令行调用的任何可执行文件。 您可以将这些可执行文件保存在服务器上的任何位置 - Manifest 指出了文件的路径(请参阅 部署动作脚本 Manifest)。 为脚本服务器配置的 Action Script 用户必须有访问脚本文件的权限,并具有读取和执行权限。
要执行脚本,Turbonomic会根据发现的清单信息创建相应的 SSH 命令。 默认超时限制为 30 分钟,也可以在清单条目中声明不同的超时限制。 如果执行超限,Turbonomic会发送SIGTERM终止进程。
向动作脚本传递信息
Turbonomic使用两种技术将动作信息传递给相关的动作脚本:
通过环境变量传递一般信息
通过
stdin传递完整的动作数据
为了向脚本传递一般信息,Turbonomic会在Action 脚本服务器上设置环境变量。 您可以在脚本中引用这些环境变量。 例如,假设您要发送一封包含作为操作目标的虚拟机名称的电子邮件。 您可以通过VMT_TARGET_NAME环境变量获取该名称。
下面列出了Turbonomic在执行脚本时可以设置的环境变量。 请注意,并非所有这些变量都适用于每个操作。 例如,缩放 VMEM 的操作不包括提供程序,因此该操作不包括VMT_CURRENT_INTERNAL、VMT_CURRENT_NAME、VMT_NEW_INTERNAL 或VMT_NEW_NAME变量的值。 如果给定变量不适用,Turbonomic会将其设置为空字符串。
VMT_ACTION_INTERNAL拟议行动的 UUID。 您可以使用它通过 REST API 访问操作。 例如,您的脚本可以根据自己的标准接受或取消操作。
VMT_ACTION_NAME操作的名称。
VMT_CURRENT_INTERNAL当前提供商的内部名称。
VMT_CURRENT_NAME当前提供商的显示名称。
VMT_NEW_INTERNAL新提供商的内部名称。
VMT_NEW_NAME新提供商的显示名称。
VMT_TARGET_INTERNAL该操作将影响的实体的内部名称。 您可以使用它通过 REST API 访问目标实体。 例如,您可以获取历史统计数据,或更改实体的设置。
VMT_TARGET_NAME此操作将影响的实体的显示名称。
VMT_TARGET_UUID该操作将影响的实体的 UUID。
对于某些脚本,您可能需要相关操作的完整说明。 例如,假设您要分析给定资源的利用率指标。 用于传递一般信息的环境变量不包括这些信息。
在调用动作脚本时,Turbonomic会通过stdin 传递相关动作的完整数据。 脚本可以将其加载到变量中,以访问所需的特定数据。 例如,下面将stdin加载到myActionData 中:
myActionData=$(cat -)
stdin 包含一个 JSON 字符串,表示与该操作相关的全部数据。 例如,myActionData变量可以包含一个类似于以下内容的字符串:
{"actionType":"RIGHT_SIZE","actionItem":[{"actionType":"RIGHT_SIZE","uuid":"143688943343760","targetS
E":{"entityType":"VIRTUAL_MACHINE","id":"4200fcdb-eafe-2a4a-abf5-a7ad2b00555c"...