すべてのプロダクト
Search
ドキュメントセンター

CloudOps Orchestration Service:ACS-ECS-ConfigurePackage

最終更新日:Dec 21, 2025

テンプレート名

ACS-ECS-ConfigurePackage は、パッケージを一括でインストールまたはアンインストールします。

今すぐ実行

テンプレートの説明

複数の Elastic Compute Service (ECS) インスタンスに Yellowdog Updater Modified (YUM) または Advanced Packaging Tool (APT) パッケージを一度にインストールまたはアンインストールします。

テンプレートの種類

自動化

所有者

Alibaba Cloud

入力パラメーター

パラメーター

説明

種類

必須

デフォルト値

制限

action

操作タイプ

String

はい

targets

ターゲットインスタンス

Json

はい

packageName

インストールする YUM または APT パッケージの名前。

String

はい

regionId

リージョン ID。

String

いいえ

{{ ACS::RegionId }}

installer

インストールソース

String

いいえ

apt-get

rateControl

タスクの同時実行率

Json

いいえ

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

OOSAssumeRole

CloudOps Orchestration Service (OOS) がアシュームする Resource Access Management (RAM) ロール。

String

いいえ

""

出力パラメーター

パラメーター

説明

種類

commandOutput

String

テンプレートを実行するために必要な権限ポリシー

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

詳細

詳細については、GitHub の ACS-ECS-ConfigurePackage.yml をご参照ください。

テンプレートコンテンツ

FormatVersion: OOS-2019-06-01
Description:
  en: このテンプレートを使用して、ECS インスタンスにパッケージをインストールまたはアンインストールします。
  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: リージョン ID
      zh-cn: Region ID
    AssociationProperty: RegionId
    Default: '{{ ACS::RegionId }}'
  installer:
    Type: String
    Label:
      en: インストーラー
      zh-cn: Installer
    Default: apt-get
    AllowedValues:
      - apt-get
      - yum 
  action:
    Type: String
    Label:
      en: 操作
      zh-cn: Action
    AllowedValues:
      - install
      - uninstall
  targets:
    Type: Json
    Label:
      en: ターゲットインスタンス
      zh-cn: Target Instance
    AssociationProperty: Targets
    AssociationPropertyMetadata:
      ResourceType: 'ALIYUN::ECS::Instance'
      RegionId: regionId
  packageName:
    Type: String
    Label:
      en: パッケージ名
      zh-cn: Package Name
  rateControl:
    Label:
      en: レート制御
      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: ECS インスタンスを取得します。
      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: パラメーターの設定
      - Parameters:
          - regionId
          - targets
        Label:
          default:
            zh-cn: Select Instances
            en: インスタンスの選択
      - Parameters:
          - rateControl
          - OOSAssumeRole
        Label:
          default:
            zh-cn: Advanced Options
            en: 詳細オプション