创建动作脚本

操作脚本可以是用户从命令行调用的任何可执行文件。 您可以将这些可执行文件保存在服务器上的任何位置 - Manifest 指出了文件的路径(请参阅 部署动作脚本 Manifest)。 为脚本服务器配置的 Action Script 用户必须有访问脚本文件的权限,并具有读取和执行权限。

要执行脚本,Turbonomic会根据发现的清单信息创建相应的 SSH 命令。 默认超时限制为 30 分钟,也可以在清单条目中声明不同的超时限制。 如果执行超限,Turbonomic会发送SIGTERM终止进程。

向动作脚本传递信息

Turbonomic使用两种技术将动作信息传递给相关的动作脚本:

  • 通过环境变量传递一般信息

  • 通过stdin传递完整的动作数据

为了向脚本传递一般信息,Turbonomic会在Action 脚本服务器上设置环境变量。 您可以在脚本中引用这些环境变量。 例如,假设您要发送一封包含作为操作目标的虚拟机名称的电子邮件。 您可以通过VMT_TARGET_NAME环境变量获取该名称。

下面列出了Turbonomic在执行脚本时可以设置的环境变量。 请注意,并非所有这些变量都适用于每个操作。 例如,缩放 VMEM 的操作不包括提供程序,因此该操作不包括VMT_CURRENT_INTERNALVMT_CURRENT_NAMEVMT_NEW_INTERNALVMT_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"...