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

CloudOps Orchestration Service:カスタム拡張機能を一括管理する

最終更新日:Mar 25, 2025

CloudOps Orchestration Service (OOS) を使用すると、Elastic Compute Service (ECS) インスタンス上の Alibaba Cloud エージェント、ソフトウェア管理ツール、およびカスタム拡張機能を管理できます。カスタム拡張機能は、RPM、DEB、MSI などの標準パッケージをサポートしています。このトピックでは、OOS を使用して ECS インスタンス上のカスタム拡張機能を効果的に管理する方法について説明します。

準備

  1. 仮想プライベートクラウド ([VPC]) に ECS インスタンスを作成します。

    詳細については、「カスタム起動タブでインスタンスを作成する」をご参照ください。[VPC] 内の ECS インスタンスのみが、カスタム拡張機能のインストールとアンインストールをサポートしています。ECS インスタンスが [VPC] にデプロイされていることを確認してください。

    ECS インスタンスが VPC にデプロイされていることを確認します

    1. ECS コンソール にログインします。

    2. 左側のナビゲーションウィンドウで、[インスタンスとイメージ] > [インスタンス] を選択します。

    3. ECS インスタンスを見つけ、[VPC][ネットワークタイプ] 列に表示されていることを確認します。

  2. RAM ロールを作成し、そのロールを ECS インスタンスにアタッチします。

    詳細については、「インスタンス RAM ロール」をご参照ください。次のパラメーターに注意してください。

    1. カスタムポリシーを作成します。

      詳細については、「カスタムポリシーを作成する」をご参照ください。次の JSON スクリプトのポリシーが RAM ロールにアタッチされていることを確認してください。

      JSON スクリプト

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "oos:GetTemplate" // テンプレートを取得
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              },
              {
                  "Action": [
                      "oss:GetObject", // オブジェクトを取得
                      "oss:GetBucketAcl" // バケット ACL を取得
                  ],
                  "Effect": "Allow",
                  "Resource": "*"
              }
          ]
      }
    2. RAM ロールを作成します。

      詳細については、「標準サービスロールを作成する」をご参照ください。次のパラメーターに注意してください。

      • 信頼できるエンティティの選択: [alibaba Cloud サービス] を選択します。

      • ロールタイプ: [標準サービスロール] を選択します。

      • 信頼できるサービスの選択: [elastic Compute Service] を選択します。

    3. インスタンス RAM ロールに権限を付与します。

      RAM ロールに権限を付与する際に、[ポリシー]2.a カスタムポリシーを作成する で作成したポリシーに設定します。詳細については、「RAM ロールに権限を付与する」をご参照ください。

    4. RAM ロールを ECS インスタンスにアタッチします。

      前の手順で作成した [RAM ロール] を選択します。詳細については、「インスタンス RAM ロール」をご参照ください。

  3. カスタム拡張機能を保存する Object Storage Service (OSS) バケットを作成します。

    詳細については、「バケットを作成する」をご参照ください。[リージョン] を指定する場合は、ドロップダウンリストから [リージョンを指定] を選択し、OOS と同じリージョンを指定します。

カスタム拡張機能を作成する

  1. OOS コンソール > サーバー管理 > 拡張機能 ページに移動し、[カスタム拡張機能] タブをクリックします。

  2. [カスタム拡張機能の作成] をクリックし、プロンプトに従って [基本情報] を設定し、[次のステップ] をクリックします。

    カスタム拡張機能を表示、インストール、およびアンインストールできるのは、作成者のみです。主なパラメーター:

    パラメーター

    説明

    拡張タイプ

    ドライバー、パフォーマンスアクセラレーション、アプリケーション、エージェントを選択できます。

    バージョンの説明

    初回作成時には V1 が自動的に使用されます。拡張機能の作成後、拡張機能の詳細ページでバージョン番号とバージョンの詳細を表示できます。

    説明

    拡張機能の更新機能を使用して、拡張機能を変更できます。拡張機能を更新すると、システムは自動的に v2 バージョンを生成します。以降のバージョンも同様に生成されます。

    拡張機能の適用範囲

    サポートされているインスタンスファミリ、イメージタイプ、オペレーティングシステムとバージョンなど、拡張機能の適用条件を指定します。このパラメーターを指定すると、ECS 購入ページまたは詳細ページで、条件を満たす拡張機能のみを選択できます。

    コマンドパラメーター

    拡張機能の入力パラメーターを指定します。複数のパラメーターを追加できます。パラメータータイプは、文字列、数値、またはブール値です。各パラメーターのパラメーター名、デフォルト値、およびパラメーターの説明を定義できます。ECS 購入ページまたは ECS インスタンスの詳細ページで拡張機能をインストールする場合は、これらのパラメーターに値を割り当てる必要があります。

  3. [拡張構成] ステップで、プロンプトに従ってパラメーターを設定します。

    説明

    複数の拡張機能の構成を追加できます。ECS インスタンスに拡張機能をインストールすると、システムは ECS インスタンスのオペレーティングシステムとアーキテクチャに適用可能な拡張機能構成を検索し、指定されたソフトウェアパッケージをダウンロードしてから、インストールまたはアンインストールスクリプトを実行します。

    脚本.png

    [インストールスクリプト][アンインストールスクリプト] の例:

    • インストールスクリプトのサンプル

      #!/bin/bash
      #######  単一プロセスソフトウェアパッケージのインストールスクリプトテンプレートの使用上の注意  #########
      #1. デフォルトでは、このスクリプトはルートディレクトリで実行されます。Linux を実行する ECS インスタンスのデフォルトディレクトリは /root です。
      #2. スクリプトを使用してソフトウェアがインストールされると、リモートダウンロードパスはデフォルトで削除されます。
      #3. job_start 関数を使用してソフトウェアをカスタマイズすることをお勧めします。
      #4. ソフトウェアパッケージのプロセス ID は、プロセス ID ストレージの制約に基づいて指定されたパスに保存する必要があります。
      
      #######  エラーコードの仕様  #########
      # 新しいエラーコードが追加された場合は、このドキュメントを更新してください。
      # 1   => インストール失敗
      # 2   => 健全性チェック失敗
      # 3   => プロセス ID の記録失敗
      # 4   => ユーザーシェル失敗
      
      function user_shell() {
          # カスタムインストールスクリプトを実行します。
          $nohup java -jar demo-1.0.0-SNAPSHOT.jar > /demo.log 2>&1 &
          # カスタムインストールスクリプトの実行を停止します。
      }
      
      ##### スクリプトの実行開始時に、この関数を呼び出してソフトウェアパッケージのタイムスタンプとプロセス ID を表示し、プロセス ID を指定されたパスに保存できます。
      function job_start() {
          user_shell
          if [ $?  -ne 0 ]; then
              exit4
          else
              # この制約は削除できません。
              now=$(date +'%Y-%m-%d %H:%M:%S')
              pid=$!
              echo "[$now][$pid] job_start" // 開始時刻とプロセスIDを表示
              pidPath="/etc/aliyun"
              if [ !  -d $pidPath ]; then
                  mkdir -p /etc/aliyun
                  echo "Create the $pidPath path to store the process ID." // プロセスIDを保存するパスの作成
              fi
              echo "$pid" > "$pidPath/main_process_id"
              if [ $?  -ne 0 ]; then
                  exit3
              fi
          fi
      }
      
      ##### この関数を呼び出して、サービスが期待どおりに実行されているかどうかを確認します。この関数では、プロセスステータスを確認したり、curl コマンドを呼び出したりできます。
      function check_health() {
          now=$(date +'%Y-%m-%d %H:%M:%S')
          echo "[$now][$$] check_health" // 健全性チェック
      }
      
      function exit1() {
        echo "exit code 1, install fail" // 終了コード 1、インストール失敗
        exit 1
      }
      
      function exit2() {
        echo "exit code 2, check health fail" // 終了コード 2、健全性チェック失敗
        exit 2
      }
      
      function exit3() {
        echo "exit code 3, record process id fail" // 終了コード 3、プロセス ID の記録失敗
        exit 3
      }
      
      function exit4() {
        echo "exit code 4, user shell fail" // 終了コード 4、ユーザーシェル失敗
        exit 4
      }
      
      
      ##### 0 が返された場合、実行は成功です。それ以外の場合、実行は失敗します。
      function main() {
          job_start
          if [ $?  -ne 0 ]; then
              exit1
          fi
          check_health
          if [ $?  -ne 0 ]; then
              exit2
          fi
      }
      
      ##### 実行がトリガーされます。OOS は実行のログを自動的に記録します。
      main
    • アンインストールスクリプトのサンプル

      #!/bin/bash
      ##### スクリプトの実行開始時に、関数を呼び出してタイムスタンプとプロセス ID を表示できます。
      function job_stop() {
          pid=$(cat /etc/aliyun/main_process_id)
          kill -9 $pid
          now=`date +'%Y-%m-%d %H:%M:%S'`
          echo "[$now][$pid] job_stop" // 停止時刻とプロセスIDを表示
      }
      
      job_stop
      if [ $?  -ne 0 ]; then
          echo "[$now][$$] job stop failed." // タスク停止失敗
          exit 1
      fi
  4. [作成] をクリックします。

    拡張機能が作成されると、[カスタム拡張機能] タブに表示されます。

    我的软件.png

カスタム拡張機能をインストールする

  1. OOS コンソール > 自動タスク > 共通 O&M タスク > バッチソフトウェア管理 ページに移動し、[作成] をクリックします。

  2. [タスクバッチソフトウェア管理の作成] ページで、プロンプトに従ってパラメーターを設定し、[作成] をクリックします。

    • [操作][インストール] に設定します。

    • [拡張機能名][カスタム拡張機能] に設定し、インストールするカスタム拡張機能を選択します。

    • [インスタンスの選択][インスタンスを手動で選択] に設定し、拡張機能をインストールする ECS インスタンスを選択します。ECS インスタンスが VPC にデプロイされていることを確認してください。

  3. [パラメーターの確認] ダイアログボックスで、パラメーターを確認し、[OK] をクリックします。

    カスタム拡張機能が作成されると、[タスク実行管理] ページでインストールタスクを表示できます。

    任务执行管理.png

カスタム拡張機能をアンインストールする

  1. OOS コンソール > 自動タスク > 共通 O&M タスク > バッチソフトウェア管理 ページに移動し、[作成] をクリックします。

  2. [タスクバッチソフトウェア管理の作成] ページで、プロンプトに従ってパラメーターを設定し、[作成] をクリックします。

    • [操作][アンインストール] に設定します。

    • [拡張機能名][カスタム拡張機能] に設定し、アンインストールするカスタム拡張機能を選択します。

    • [インスタンスの選択][インスタンスを手動で選択] に設定し、拡張機能をアンインストールする ECS インスタンスを選択します。

  3. [パラメーターの確認] ダイアログボックスで、パラメーターを確認し、[OK] をクリックします。

    カスタム拡張機能がアンインストールされると、[タスク実行管理] ページでアンインストールタスクを表示できます。

    任务执行管理.png