资源编排支持云助手,增强实例运维能力

目前,阿里云资源编排服务(ROS)开始支持ECS实例云助手功能,增加了2个新的云资源类型。

通过以上ROS资源类型,可以方便的创建脚本,然后对运行中(Running)的一台以及多台实例执行 bat/PowerShell(Windows 实例)脚本或者 Shell 脚本(Linux 实例)。

你也可以设置脚本命令的执行周期,使实例维持在某种状态、获取实例监控以及日志信息或者守护进程等。云助手不会主动发起任何操作,所有的操作都在您的可控范围内。

了解更多关于云助手的内容

资源类型介绍

如果你还不了解阿里云资源编排(ROS),请点击这里

资源编排在云助手的API上进行了封装,提供了创建命令和执行命令两个资源类型,下面让我们看下如何使。

创建云助手命令

通过资源编排(ROS)创建一条命令。

{
  "ROSTemplateFormatVersion" : "2015-09-01",
  "Resources" : {
    "MyCommand": {
      "Type": "ALIYUN::ECS::Command",
      "Properties": {
        'Name': 'my-command',
        'Type': 'RunShellScript',
        'Description': 'my-command-description',
        'CommandContent': 'ZWNobyAxMjM='
      }
    }
  },
  "Outputs": {
    "CommandId": {
        "Value" : {"Fn::GetAtt": ["MyCommand", "CommandId"]}
    }
  }
}

这个例子里我们选择了资源类型ALIYUN::ECS::Command,并且在Properties里输入了命令的一些配置,其中需要较为关注的有:

Name 命令的名称,这里设置为 my-command

Type 命令的类型,目前云助手支持下面三种脚本,这里设置为RunShellScript

  • Windows 实例适用的 Bat 脚本(RunBatScript
  • Windows 实例适用的 PowerShell 脚本(RunPowerShellScript
  • Linux 实例适用的 Shell 脚本(RunShellScript

CommandContent 命令脚本Base64 编码后的内容。大小不能超过 16 KB。这里设置为ZWNobyAxMjM=(echo 123 base54编码后得到)。

最后,通过Outputs标签返回新建命令的CommandId。

执行云助手命令

通过资源编排(ROS)执行命令脚本。下面的例子是,我们在创建命令后,执行这个命令。

{
  "ROSTemplateFormatVersion" : "2015-09-01",
  "Resources" : {
    "MyCommand": {
      "Type": "ALIYUN::ECS::Command",
      "Properties": {
        'Name': 'my-command',
        'Type': 'RunShellScript',
        'Description': 'my-command-description',
        'CommandContent': 'ZWNobyAxMjM='
      }
    },
    "MyInvocation": {
      "Type": "ALIYUN::ECS::Invocation",
      "Properties": {
        'CommandId': { "Fn::GetAtt" : [ "MyCommand", "CommandId" ] },
        'InstanceIds': [
            "i-2zefq1f3ynnrr89qkzg9"
        ],
        'Timed': true,
        'Frequency': '0/10 0/1 * * * ?'
      }
    }
  },
  "Outputs": {
    "CommandId": {
        "Value" : {"Fn::GetAtt": ["MyCommand", "CommandId"]}
    },
    "InvokeId": {
        "Value" : {"Fn::GetAtt": ["MyInvocation", "InvokeId"]}
    }
  }
}

这个例子里我们选择了资源类型ALIYUN::ECS::Invocation,配置有:

CommandId 命令的ID,这里使用 Fn::GetAtt 方法从 MyCommand 中获取到 CommandId

InstanceIds 脚本命令执行的实例ID列表。最多支持20台实例。实例需要为专有网络运行中的实例。

Timed 命令是否为周期执行。

Frequency 周期任务的执行周期,该参数取值遵循Cron表达式,参阅 Cron 表达式[](https://www.alibabacloud.com/help/faq-detail/64769.htm)

最后,通过Outputs标签返回新建命令的CommandId和InvokeId。

使用ROS控制台

  1. 打开ROS控制台。选择资源栈管理
  2. 选择创建资源栈,输入模板数据,然后下一步创建。如果执行命令失败,整个Stack的资源自动回滚。

此外,通过阿里云资源编排可以创建非常丰富的资源类型, DevOps 实践中,可以轻松地克隆开发、测试、线上环境。同时,也可以更容易实现应用的整体迁移和扩容,快来体验吧!

上一篇:大数据&AI的16种可能,2020阿里云客户最佳实践合集下载


下一篇:DataWorks百问百答08:如何进行任务调度执行、周期实例运行状况分析?