全部产品
Search
文档中心

CloudOps Orchestration Service:ACS-ECS-ConfigurePackage

更新时间:Dec 21, 2025

Nama Template

Template ACS-ECS-ConfigurePackage menginstal atau menguninstal paket secara batch.

Eksekusi Sekarang

Deskripsi Template

Memasang atau menghapus paket Yellowdog Updater Modified (YUM) atau Advanced Packaging Tool (APT) 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

packageName

Nama paket YUM atau APT yang akan dipasang.

String

Ya

regionId

ID wilayah.

String

Tidak

{{ ACS::RegionId }}

installer

Sumber instalasi

String

Tidak

apt-get

rateControl

Laju konkurensi 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 Output

Parameter

Deskripsi

Tipe

commandOutput

String

Kebijakan Izin yang Dibutuhkan untuk Menjalankan Template

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

Detail

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

Isi Template

FormatVersion: OOS-2019-06-01
Description:
  en: Use this template to install or uninstall packages on ECS instances.
  zh-cn: Use this template to install or uninstall packages on ECS instances.
  name-en: ACS-ECS-ConfigurePackage
  name-zh-cn: Install or uninstall packages in batches
  categories:
    - run_command
Parameters:
  regionId:
    Type: String
    Label:
      en: Region ID
      zh-cn: Region ID
    AssociationProperty: RegionId
    Default: '{{ ACS::RegionId }}'
  installer:
    Type: String
    Label:
      en: Installer
      zh-cn: Installer
    Default: apt-get
    AllowedValues:
      - apt-get
      - yum 
  action:
    Type: String
    Label:
      en: Action
      zh-cn: Action
    AllowedValues:
      - install
      - uninstall
  targets:
    Type: Json
    Label:
      en: Target Instance
      zh-cn: Target Instance
    AssociationProperty: Targets
    AssociationPropertyMetadata:
      ResourceType: 'ALIYUN::ECS::Instance'
      RegionId: regionId
  packageName:
    Type: String
    Label:
      en: Package Name
      zh-cn: Package Name
  rateControl:
    Label:
      en: Rate Control
      zh-cn: Rate Control
    Type: Json
    AssociationProperty: RateControl
    Default:
      Mode: Concurrency
      MaxErrors: 0
      Concurrency: 10
  OOSAssumeRole:
    Label:
      en: OOSAssumeRole
      zh-cn: OOSAssumeRole
    Type: String
    Default: ''
RamRole: '{{ OOSAssumeRole }}'
Tasks:
  - Name: getInstance
    Description:
      en: Get ECS instances.
      zh-cn: Get 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'
    Properties:
      commandContent: |- 
        #!/bin/bash
        if [ "{{installer}}" = "yum" ]; then
            if [ "{{action}}" = "install" ]; then
                yum install -y {{packageName}}
                if [ $? -ne 0 ]; then
                    echo "Package installation failed. Check your command." >&2;
                    exit 1;
                fi
                exit 0;
            elif [ "{{action}}" = "uninstall" ]; then
                yum remove -y {{packageName}}
                if [ $? -ne 0 ]; then
                    echo "Package uninstallation failed. Check your command." >&2;
                    exit 1;
                fi
                exit 0;
            else
                echo "The action must be 'install' or 'uninstall'." >&2;
                exit 1;
            fi
        elif [ "{{installer}}" = "apt-get" ]; then
            if [ "{{action}}" = "install" ]; then
                apt-get -y install {{packageName}}
                if [ $? -ne 0 ]; then
                    echo "Package installation failed. Check your command." >&2;
                    exit 1;
                fi
                exit 0;
            elif [ "{{action}}" = "uninstall" ]; then
                apt-get -y remove {{packageName}}
                if [ $? -ne 0 ]; then
                    echo "Package uninstallation failed. Check your command." >&2;
                    exit 1;
                fi
                exit 0;
            else
                echo "The action must be 'install' or 'uninstall'." >&2;
                exit 1;
            fi
        else
            echo "Unknown package installer. Only 'yum' and 'apt-get' are supported." >&2;
            exit 1;
        fi
      instanceId: '{{ ACS::TaskLoopItem }}'
      regionId: '{{ regionId }}'
      commandType: RunShellScript
    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:
          - installer
          - action
          - packageName
        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