全部产品
Search
文档中心

CloudOps Orchestration Service:ACS-ECS-ConfigureCloudMonitorAgent

更新时间:Dec 21, 2025

Nama Template

ACS-ECS-ConfigureCloudMonitorAgent – Instal Agen CloudMonitor secara batch

Eksekusi Sekarang

Deskripsi Template

Memasang Agen CloudMonitor pada beberapa instance Elastic Compute Service (ECS) secara bersamaan.

Tipe Template

Otomatis

Pemilik

Alibaba Cloud

Parameter Input

Parameter

Deskripsi

Tipe

Diperlukan

Nilai Default

Batasan

action

Jenis operasi

String

Ya

targets

Instans tujuan

Json

Ya

regionId

ID wilayah.

String

Tidak

{{ ACS::RegionId }}

rateControl

Konkurensi eksekusi tugas

Json

Tidak

{'Mode': 'Concurrency', 'MaxErrors': 0, 'Concurrency': 10}

OOSAssumeRole

Peran Resource Access Management (RAM) yang diasumsikan oleh CloudOps Orchestration Service (OOS).

String

Tidak

""

Parameter Keluaran

Parameter

Deskripsi

Tipe

commandOutput

String

Kebijakan Izin yang Diperlukan untuk Menjalankan Template

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "ecs:DescribeInstances",
                "ecs:DescribeInvocationResults",
                "ecs:DescribeInvocations",
                "ecs:RunCommand"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "oos:GetApplicationGroup"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}

Rincian

Untuk informasi lebih lanjut, lihat ACS-ECS-ConfigureCloudMonitorAgent.yml di GitHub.

Isi Template

FormatVersion: OOS-2019-06-01
Description:
  en: Use this template to install the CloudMonitor agent on ECS instances in batch.
  zh-cn: Use this template to install the CloudMonitor agent on ECS instances in batch.
  name-en: ACS-ECS-ConfigureCloudMonitorAgent
  name-zh-cn: BatchInstallCloudMonitorAgent
  categories:
    - run_command
Parameters:
  regionId:
    Type: String
    Label:
      en: Region ID
      zh-cn: Region ID
    AssociationProperty: RegionId
    Default: '{{ ACS::RegionId }}'
  action:
    Type: String
    Label:
      en: Action Type
      zh-cn: Action Type
    AllowedValues:
      - install
      - uninstall
  targets:
    Type: Json
    Label:
      en: Target Instance
      zh-cn: Target Instance
    AssociationProperty: Targets
    AssociationPropertyMetadata:
      ResourceType: 'ALIYUN::ECS::Instance'
      RegionId: regionId
  rateControl:
    Label:
      en: Rate Control
      zh-cn: Rate Control
    Type: Json
    AssociationProperty: RateControl
    Default:
      Mode: Concurrency
      MaxErrors: 0
      Concurrency: 10
  OOSAssumeRole:
    Label:
      en: OOS Assume Role
      zh-cn: OOS Assume Role
    Type: String
    Default: ''
RamRole: '{{ OOSAssumeRole }}'
Tasks:
  - Name: getInstance
    Description:
      en: Retrieves the specified ECS instances.
      zh-cn: Retrieves the specified ECS instances.
    Action: 'ACS::SelectTargets'
    Properties:
      ResourceType: 'ALIYUN::ECS::Instance'
      RegionId: '{{ regionId }}'
      Filters:
        - '{{ targets }}'
    Outputs:
      instanceIds:
        Type: List
        ValueSelector: 'Instances.Instance[].InstanceId'
      instanceInfos:
        Type: List
        ValueSelector: '.Instances.Instance[] | {"osType":.OSType, "instanceId":.InstanceId}'
  - Name: runCommand
    Action: 'ACS::ECS::RunCommand'
    Properties:
      commandContent:
        'Fn::If':
          - 'Fn::Equals':
              - 'Fn::Jq':
                  - First
                  - '.|map(select(.instanceId == "{{ ACS::TaskLoopItem }}").osType)[]'
                  - '{{ getInstance.instanceInfos }}'
              - linux
          - |-
            #!/bin/bash
            if [ "{{action}}" = "install" ]; then
               VERSION=2.1.56 /bin/bash -c "$(curl -s https://cms-agent-{{ACS::RegionId}}.oss-{{ACS::RegionId}}-internal.aliyuncs.com/cms-go-agent/cms_go_agent_install-1.4.sh)"
            elif [ "{{action}}" = "uninstall" ]; then
               if [ `uname -m` = "x86_64" ]; then
                   ARCH="amd64"
               else
                   ARCH="386"
               fi
               /usr/local/cloudmonitor/CmsGoAgent.linux-${ARCH} uninstall && rm -rf /usr/local/cloudmonitor && echo "cloud monitor uninstall success." >& 2
            else
               echo "command must be install or uninstall" >& 2
               exit 1;
            fi
          - |-
            $uname=Get-WmiObject Win32_OperatingSystem |Select-Object -ExpandProperty OSArchitecture
            if ($uname.contains("64"))
            {
              $ARCH="amd64"
            } else
            {
              $ARCH="386"
            }
            $pathExistOrNot = Test-Path -Path "C:\Program Files\Alibaba\cloudmonitor\CmsGoAgent.windows-$ARCH.exe"
            $dictoryExisOrNot = Test-Path -Path "C:\Program Files\Alibaba\cloudmonitor"
            if ($dictoryExisOrNot)
            {
              echo ""
            } else
            {
              mkdir "C:\Program Files\Alibaba\cloudmonitor"
              echo 'create dictory'
            }
            if ($pathExistOrNot)
            {
              cd "C:\Program Files\Alibaba\cloudmonitor"
            } else
            {
              cd "C:\Program Files\Alibaba\cloudmonitor"
              $client = new-object System.Net.WebClient
              $client.DownloadFile("http://cms-agent-{{ACS::RegionId}}.oss-{{ACS::RegionId}}-internal.aliyuncs.com/cms-go-agent/2.1.56/CmsGoAgent.windows-$ARCH.exe", "C:\Program Files\Alibaba\cloudmonitor\CmsGoAgent.windows-$ARCH.exe")
            }
            $action="{{ action }}"
            switch($action)
            {
                "install" {
                    if ($ARCH -eq "amd64")
                    {
                      .\CmsGoAgent.windows-amd64.exe install
                      .\CmsGoAgent.windows-amd64.exe start
                    } else
                    {
                      .\CmsGoAgent.windows-386.exe install
                      .\CmsGoAgent.windows-386.exe start
                    }
                    echo "install complete"
                }
                "uninstall" {
                   if ($ARCH -eq "amd64")
                   {
                      .\CmsGoAgent.windows-amd64.exe stop
                      .\CmsGoAgent.windows-amd64.exe uninstall
                   } else
                   {
                      .\CmsGoAgent.windows-386.exe stop
                      .\CmsGoAgent.windows-386.exe uninstall
                   }
                    echo "uninstall complete"
                }
            }

      instanceId: '{{ ACS::TaskLoopItem }}'
      regionId: '{{ regionId }}'
      commandType:
        'Fn::If':
          - 'Fn::Equals':
              - 'Fn::Jq':
                  - First
                  - '.|map(select(.instanceId == "{{ ACS::TaskLoopItem }}").osType)[]'
                  - '{{ getInstance.instanceInfos }}'
              - linux
          - RunShellScript
          - RunPowerShellScript
    Loop:
      Items: '{{ getInstance.instanceIds }}'
      RateControl: '{{ rateControl }}'
      Outputs:
        commandOutputs:
          AggregateType: 'Fn::ListJoin'
          AggregateField: commandOutput
    Outputs:
      commandOutput:
        Type: String
        ValueSelector: invocationOutput
Outputs:
  commandOutput:
    Type: String
    Value: '{{ runCommand.commandOutputs }}'
Metadata:
  ALIYUN::OOS::Interface:
    ParameterGroups:
      - Parameters:
          - action
        Label:
          default:
            zh-cn: Configure Parameters
            en: Configure Parameters
      - Parameters:
          - regionId
          - targets
        Label:
          default:
            zh-cn: Select ECS Instances
            en: Select ECS Instances
      - Parameters:
          - rateControl
          - OOSAssumeRole
        Label:
          default:
            zh-cn: Advanced Options
            en: Advanced Options