Todos os produtos
Search
Central de documentação

CloudOps Orchestration Service:ACS-ECS-InstallXDragonAndCloudMonitor

Última atualização: Jun 28, 2026

Nome do modelo

O modelo ACS-ECS-InstallXDragonAndCloudMonitor instala em lote os plug-ins X-Dragon e CloudMonitor.

Executar agora

Descrição do modelo

Instala o plug-in de detecção de hardware SHENLONG, o CloudMonitor e o smartmontools em várias instâncias do Elastic Compute Service (ECS). Também desinstala ou atualiza o plug-in de detecção de hardware SHENLONG.

Tipo de modelo

Automatizado

Proprietário

Alibaba Cloud

Parâmetros de entrada

Parâmetro

Descrição

Tipo

Obrigatório

Valor padrão

Limite

targets

Instância de destino

Json

Sim

action

Tipo de operação

String

Sim

regionId

ID da região

String

Não

{{ ACS::RegionId }}

timeout

Tempo limite para executar o comando nas instâncias ECS

Number

Não

600

rateControl

Concorrência de execução da tarefa

Json

Não

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

OOSAssumeRole

Função RAM assumida pelo CloudOps Orchestration Service (OOS)

String

Não

""

Parâmetros de saída

Parâmetro

Descrição

Tipo

commandOutputs

String

Política de permissões necessária para executar o modelo

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

Detalhes

ACS-ECS-InstallXDragonAndCloudMonitor: Detalhes

Conteúdo do modelo

FormatVersion: OOS-2019-06-01
Description:
  en: Batch installs the X-Dragon hardware detection plug-in, Cloud Monitor, and smartmontools. This template also uninstalls or updates the X-Dragon hardware detection plug-in.
  zh-cn: Batch installs the X-Dragon hardware detection plug-in, Cloud Monitor, and smartmontools. This template also uninstalls or updates the X-Dragon hardware detection plug-in.
  name-en: ACS-ECS-InstallXDragonAndCloudMonitor
  name-zh-cn: Batch Install X-Dragon and Monitoring Plugins
  categories:
    - run_command
Parameters:
  regionId:
    Type: String
    Label:
      en: Region ID
      zh-cn: Region ID
    AssociationProperty: RegionId
    Default: '{{ ACS::RegionId }}'
  targets:
    Type: Json
    Label:
      en: Target Instance
      zh-cn: Target Instance
    AssociationProperty: Targets
    AssociationPropertyMetadata:
      ResourceType: 'ALIYUN::ECS::Instance'
      RegionId: regionId
  action:
    Type: String
    Label:
      en: Operation Type
      zh-cn: Operation Type
    AllowedValues:
      - install
      - update
      - remove
  timeout:
    Label:
      en: Command Execution Timeout
      zh-cn: The timeout period, in seconds, for running the command on the ECS instance.
    Type: Number
    Default: 600
  rateControl:
    Label:
      en: Rate Control
      zh-cn: The concurrency rate for task execution.
    Type: Json
    AssociationProperty: RateControl
    Default:
      Mode: Concurrency
      MaxErrors: 0
      Concurrency: 10
  OOSAssumeRole:
    Label:
      en: OOS Assume Role
      zh-cn: The RAM role to be assumed by OOS.
    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
  - Name: runCommand
    Action: 'ACS::ECS::RunCommand'
    Description: Runs a command on the ECS instances and obtains the output.
    Properties:
      regionId: '{{ regionId }}'
      commandContent:
        'Fn::Join':
          - |+

          - - 'if [ "{{action}}" = "install" ] ; then'
            - smart_version=`$(smartctl -V)`
            - 'if [ "$smart_version" = "" ]; then'
            - '    sys_version=$(echo `lsb_release -a`)'
            - '    if [ "`echo $sys_version`"=~"CentOS" ]; then'
            - '       yum -y install yum-utils'
            - '       yum -y install smartmontools'
            - '       echo `smartctl -V`'
            - '    fi'
            - '    if [ "`echo $sys_version`"=~"Ubuntu" ]; then'
            - '       apt-get update -y && apt-get upgrade -y && apt install smartmontools -y'
            - '    fi'
            - fi
            - ''
            - aliyun_installer -i xdragon_hardware_detect_plugin -e 1.0.0
            - echo "installing cms agent"
            - ''
            - 'if [ -z "${CMS_HOME}" ]; then'
            - '  CMS_HOME="/usr/local/cloudmonitor"'
            - '  [ ! -z "`egrep -i coreos /etc/os-release`" ] && CMS_HOME="/opt/cloudmonitor"'
            - fi
            - ''
            - 'if [ `uname -m` = "x86_64" ]; then'
            - '    ARCH="amd64"'
            - else
            - '    ARCH="386"'
            - fi
            - ''
            - VERSION="2.1.57"
            - 'ELF_NAME=CmsGoAgent.linux-${ARCH}'
            - 'DOWNLOAD_PATH="cms-go-agent/${VERSION}/${ELF_NAME}"'
            - 'DEST_UPDATE_FILE="$CMS_HOME/${ELF_NAME}"'
            - ''
            - current_cms_version="0"
            - '# X-Dragon instances always use the x86 architecture. Check the version.'
            - 'if [ -f /usr/local/cloudmonitor/CmsGoAgent.linux-amd64 ]; then'
            - '    current_cms_version="$($DEST_UPDATE_FILE version)"'
            - fi
            - ''
            - 'if [ $current_cms_version = "2.1.57" ]; then'
            - '    echo "CmsGoAgent already installed"'
            - '    echo "Installation success."'
            - '    exit 0'
            - fi
            - ''
            - 'if [ -z "${REGION_ID}" ]; then'
            - '  REGION_ID="$(wget -q --timeout=1 -t 1 -O - ''http://100.100.100.200/latest/meta-data/region-id'')"'
            - fi
            - ''
            - ''
            - 'if [ -d $CMS_HOME ] ; then'
            - '  if [ -f $CMS_HOME/wrapper/bin/cloudmonitor.sh ] ; then'
            - '    $CMS_HOME/wrapper/bin/cloudmonitor.sh remove;'
            - '    rm -rf $CMS_HOME;'
            - '  elif [ -f $DEST_UPDATE_FILE ]; then'
            - '    $DEST_UPDATE_FILE stop'
            - '    #$DEST_UPDATE_FILE uninstall'
            - '    ps aux | grep -v grep | grep $ELF_NAME'
            - '  fi'
            - fi
            - ''
            - download()
            - '{'
            - '  if [ -z "${REGION_ID}" ]; then'
            - '    echo "networkType is classic"'
            - '    OSS_URL="http://cms-agent-cn-hangzhou.oss-cn-hangzhou-internal.aliyuncs.com/$DOWNLOAD_PATH"'
            - '  else'
            - '    echo "networkType is vpc, REGION_ID: $REGION_ID"'
            - '    if [ "$REGION_ID" = "cn-shenzhen-finance-1" ]; then'
            - '      OSS_URL="http://cms-download.aliyun.com/$DOWNLOAD_PATH"'
            - '      CMS_PROXY="szcmsproxy.aliyun.com:3128"'
            - '    elif [ "$REGION_ID" = "cn-shanghai-finance-1" ]; then'
            - '      OSS_URL="http://cms-agent-$REGION_ID.oss-$REGION_ID-pub-internal.aliyuncs.com/$DOWNLOAD_PATH"'
            - '    elif [ "$REGION_ID" = "ap-south-1" ]; then'
            - '      OSS_URL="http://cms-download.aliyun.com/$DOWNLOAD_PATH"'
            - '      CMS_PROXY="cmsproxy-ap-south-1.aliyuncs.com:8080"'
            - '    elif [ "$REGION_ID" = "ap-southeast-3" -o "$REGION_ID" = "me-east-1" -o "$REGION_ID" = "cn-chengdu" ]; then'
            - '      OSS_URL="http://cms-download.aliyun.com/$DOWNLOAD_PATH"'
            - '    else'
            - '      OSS_URL="http://cms-agent-$REGION_ID.oss-$REGION_ID-internal.aliyuncs.com/$DOWNLOAD_PATH"'
            - '    fi'
            - '  fi'
            - '  echo download from "$OSS_URL"'
            - '  wget -q -e "http_proxy=$CMS_PROXY" "$OSS_URL" -O "$DEST_UPDATE_FILE" -t 3 --connect-timeout=2'
            - '  if [ $? != 0 ]; then'
            - '    echo "download fail, retry..."'
            - '    CMS_PROXY="vpc-opencmsproxy.aliyun.com:8080";'
            - '    OSS_URL="http://cms-download.aliyun.com/$DOWNLOAD_PATH"'
            - '    wget -q -e "http_proxy=$CMS_PROXY" "$OSS_URL" -O "$DEST_UPDATE_FILE" -t 3 --connect-timeout=2'
            - '  fi'
            - '  if [ $? != 0 ]; then'
            - '    echo "download fail, retry..."'
            - '    CMS_PROXY="opencmsproxy.aliyun.com:8080";'
            - '    OSS_URL="http://cms-download.aliyun.com/$DOWNLOAD_PATH"'
            - '    wget -q -e "http_proxy=$CMS_PROXY" "$OSS_URL" -O "$DEST_UPDATE_FILE" -t 3 --connect-timeout=2'
            - '  fi'
            - '}'
            - ''
            - mkdir -p $CMS_HOME && \
            - 'chown -R root:root $CMS_HOME && \'
            - download && \
            - chmod a+x $DEST_UPDATE_FILE
            - $DEST_UPDATE_FILE check
            - RC=$?
            - 'if [ ${RC} -ne 0 ]; then'
            - '    echo CmsGoAgent install failed, your platform is not supported'
            - '    exit ${RC}'
            - fi
            - ''
            - $DEST_UPDATE_FILE install >/dev/null 2>&1 || true
            - $DEST_UPDATE_FILE start
            - ps aux | grep -v grep | grep $ELF_NAME
            - ''
            - ACT_VERSION=`$DEST_UPDATE_FILE version`
            - 'if [ -n "$ACT_VERSION" ]; then'
            - '    echo CmsGoAgent v$ACT_VERSION installed'
            - else
            - '    echo CmsGoAgent install failed'
            - '    exit 1'
            - fi
            - 'elif [ "{{action}}" = "update" ] ; then'
            - ' aliyun_installer -d xdragon_hardware_detect_plugin'
            - 'elif [ "{{action}}" = "remove" ] ; then'
            - ' aliyun_installer -u xdragon_hardware_detect_plugin'
            - fi
      instanceId: '{{ ACS::TaskLoopItem }}'
      timeout: '{{ timeout }}'
      commandType: RunShellScript
    Loop:
      Items: '{{ getInstance.instanceIds }}'
      RateControl: '{{ rateControl }}'
      Outputs:
        commandOutputs:
          AggregateType: Fn::ListJoin
          AggregateField: commandOutput
    Outputs:
      commandOutput:
        Type: String
        ValueSelector: invocationOutput
Outputs:
  commandOutputs:
    Type: String
    Value: '{{ runCommand.commandOutputs }}'
Metadata:
  ALIYUN::OOS::Interface:
    ParameterGroups:
      - Parameters:
          - action
          - timeout
        Label:
          default:
            zh-cn: Configure Parameters
            en: Configure Parameters
      - Parameters:
          - regionId
          - targets
        Label:
          default:
            zh-cn: Select Instances
            en: Select Instances
      - Parameters:
          - rateControl
          - OOSAssumeRole
        Label:
          default:
            zh-cn: Advanced Options
            en: Advanced Options