Tous les produits
Search
Centre de documentation

CloudOps Orchestration Service:ACS-ECS-ConfigurePackage

Dernière mise à jour :Aug 11, 2026

Nom du modèle

Le modèle ACS-ECS-ConfigurePackage installe ou désinstalle des packages par lots.

Execute Now

Description du modèle

Installe ou désinstalle un package YUM ou APT sur plusieurs instances ECS simultanément.

Type de modèle

Automatisé

Propriétaire

Alibaba Cloud

Paramètres d'entrée

Parameter

Description

Type

Required

Default value

Limit

action

Type d'opération. Valeurs valides : install, uninstall.

String

Yes

targets

Instances ECS cibles

Json

Yes

packageName

Nom du package à installer ou à désinstaller.

String

Yes

regionId

ID de la région.

String

No

{{ ACS::RegionId }}

installer

Gestionnaire de packages. Valeurs valides : apt-get, yum.

String

No

apt-get

rateControl

Contrôle du débit pour l'exécution des tâches.

Json

No

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

OOSAssumeRole

Rôle RAM endossé par OOS pour exécuter le modèle.

String

No

""

Paramètres de sortie

Parameter

Description

Type

commandOutput

String

Politique 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

Consultez le code source du modèle : ACS-ECS-ConfigurePackage.yml sur GitHub.

Contenu du modèle

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