部署动作脚本清单

Action ScriptManifest 是一个文件,其中声明了要向Turbonomic 公开的每个脚本的脚本对象数组。 清单的位置作为Action Script目标配置的一部分提供。

Turbonomic 验证目标之后,它将发现这些脚本并在 Orchestration Policy 用户界面中显示这些脚本。

创建脚本清单文件

您可以将清单创建为 JSON 或 YAML 文件。 例如,以下是同一清单的两个示例: 一个在 YAML 中,另一个在 JSON 中。 请注意,在任一情况下,清单都是由两个 Script 对象组成的数组。

  • YAML 清单示例

    
            scripts:
                - name: MyVmMovePrep
                  description: Execute this script in preperation to a VM Move
                  scriptPath: vmScripts/movePrep.sh
                  entityType: VIRTUAL_MACHINE
                  actionType: MOVE
                  actionPhase: PRE
                - name: MyVmSuspendReplace
                  description: Execute this instead of a VM Suspend action
                  scriptPath: vmScripts/suspendReplace.sh
                  entityType: VIRTUAL_MACHINE
                  actionType: SUSPEND
                  actionPhase: REPLACE
                        
  • JSON 清单示例

    
            {
                "scripts": [
                	{
                		"name": "MyVmMovePrep",
                		"description": "Execute this script in preperation to a VM Move",
                		"scriptPath": "vmScripts/movePrep.sh",
                		"entityType": "VIRTUAL_MACHINE",
                		"actionType": "MOVE",
                		"actionPhase": "PRE"
                	},
                	{
                		"name": "MyVmSuspendReplace",
                		"description": "Execute this instead of a VM Suspend action",
                		"scriptPath": "vmScripts/suspendReplace.sh",
                		"entityType": "VIRTUAL_MACHINE",
                		"actionType": "SUSPEND",
                		"actionPhase": "REPLACE"
                	}
                ]
            }
                        

您可以将脚本清单文件保存到服务器上的任何位置,只要脚本用户有权访问该位置,并且具有读取和执行特权。 您将提供该位置作为脚本路径Turbonomic管理员将把它作为动作脚本目标配置的一部分。

请注意,清单的文件名扩展名必须与文件格式 (YAML 或 JSON) 匹配。 例如,您应该分别将该文件命名为 MyManifest.yamlMyManifest.json

声明脚本对象

清单中的每个脚本对象都可以包含以下字段:

  • name

    必需-此操作脚本的名称。 Turbonomic 发现脚本后,它会在用户界面中将此名称显示为用于创建编排策略的编排工作流程选项。

  • description

    可选-脚本的描述。 Turbonomic 用户界面不显示此描述。

  • scriptPath

    必需-此条目的可执行文件的路径。 您可以提供绝对路径或相对于脚本清单位置的路径。 为 "操作脚本" 服务器设置的 "操作脚本用户" 必须具有可执行文件的读和执行特权。

  • entityType

    必需-此脚本响应的实体的类型。 可以是下列其中一项:

    • Switch

    • VIRTUAL_DATACENTER

    • STORAGE

    • DATABASE_SERVER

    • WEB_SERVER

    • VIRTUAL_MACHINE

    • DISK_ARRAY

    • DATA_CENTER

    • PHYSICAL_MACHINE

    • CHASSIS

    • BUSINESS_USER

    • STORAGE_CONTROLLER

    • IO_MODULE

    • APPLICATION_SERVER

    • APPLICATION

    • CONTAINeR

    • CONTAINER_POD

    • LOGICAL_POOL

    • STORAGE_VOLUME

    • DATABASE

    • VIEW_POD

    • DESKTOP_POOL

    要配置同一脚本以响应对不同实体类型的操作,请为该脚本声明单独的条目,每个实体类型对应一个条目。

  • actionType

    必需-此脚本响应的操作类型。 请注意,不同的实体类型可以支持不同的操作。 可以是下列其中一项:

    • START

    • MOVE

    • SCALE

      调整云上的大小-将工作负载从一个云模板或层移至另一个云模板或层。

    • SUSPEND

    • PROVISION

    • RECONFIGURE

    • RESIZE

    • DELETE

    • RIGHT_SIZE

    • ACTIVATE

    • DEACTIVATE

    • BUY_RI

  • actionPhase

    必需-在您希望脚本执行的操作的生命周期中的位置。

    可以是下列其中一项:

    • PRE

      对于已接受的操作或执行之前的 AUTOMATED 操作,此状态是一个准备阶段,您的脚本可以在该操作本身执行之前执行。

      在执行操作之前运行脚本以设置条件。

    • REPLACE

      对于操作执行,您的脚本将执行而不是 Turbonomic 将执行的执行。

      运行脚本以替换 Turbonomic 操作。

    • POST

      操作已完成执行,处于 SUCCEEDEDFAILINGFAILED 状态。

      FAILING 表示在操作执行失败之后,但在 POST 脚本完成执行之前检查了状态。

      在操作完成执行后运行脚本。

  • timeLimitSeconds

    可选-在假定超时之前运行操作的时间长度。 当执行超过此限制时, Turbonomic 将发送 SIGTERM 以终止进程的执行。

    如果未提供值,那么 Turbonomic 将采用 30 分钟 (1800 秒) 的限制。