Tous les produits
Search
Centre de documentation

CloudOps Orchestration Service:ACS-ECS-InstallXDragonAndCloudMonitor

Dernière mise à jour :Aug 11, 2026

Nom du modèle

ACS-ECS-InstallXDragonAndCloudMonitor installe en lot les plug-ins X-Dragon et CloudMonitor.

Exécuter maintenant

Description du modèle

Installe le plug-in de détection matérielle SHENLONG, CloudMonitor et smartmontools sur plusieurs instances Elastic Compute Service (ECS). Permet également de désinstaller ou de mettre à jour le plug-in de détection matérielle SHENLONG.

Type de modèle

Automatisé

Propriétaire

Alibaba Cloud

Paramètres d'entrée

|
**Paramètre**
|
**Description**
|
**Type**
|
**Obligatoire**
|
**Valeur par défaut**
|
**Limite**
| | --- | --- | --- | --- | --- | --- | |
targets
|
Instance cible
|
Json
|
Oui
| | | |
action
|
Type d'opération
|
String
|
Oui
| | | |
regionId
|
ID de la région.
|
String
|
Non
|
{{ ACS::RegionId }}
| | |
timeout
|
Délai d'exécution de la commande sur les instances ECS.
|
Number
|
Non
|
600
| | |
rateControl
|
Concurrence d'exécution des tâches
|
Json
|
Non
|
{'Mode': 'Concurrency', 'MaxErrors': 0, 'Concurrency': 10}
| | |
OOSAssumeRole
|
Rôle RAM endossé par CloudOps Orchestration Service (OOS).
|
String
|
Non
|
""
| |

Paramètres de sortie

|
**Paramètre**
|
**Description**
|
**Type**
| | --- | --- | --- | |
commandOutputs
| |
String
|

Stratégie d'autorisation requise pour exécuter le modèle

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

Détails

ACS-ECS-InstallXDragonAndCloudMonitor : Détails

Contenu du modèle

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