このサンプルテンプレートは、Git を使用してコードをプルし、コードからソフトウェアパッケージをビルドし、Object Storage Service (OSS) にソフトウェアパッケージをアップロードし、複数の Elastic Compute Service (ECS) インスタンスに同時にソフトウェアパッケージをデプロイするために使用されます。システムは、既存の ECS インスタンスでソフトウェアパッケージをビルドするか、ソフトウェアパッケージをビルドするための ECS インスタンスを作成できます。ソフトウェアパッケージがビルドされた後、作成された ECS インスタンスは自動的にリリースされます。
前提条件
ECS インスタンスが作成され、ECS インスタンスがインターネットにアクセスできること。詳細については、「ECS インスタンスの作成」および「インターネットアクセスの有効化」をご参照ください。
重要このサンプルテンプレートは、Linux オペレーティングシステムのみをサポートしています。
OSS がアクティブ化され、OSS バケットが作成されていること。詳細については、「OSS のアクティブ化」および「バケットの作成」をご参照ください。
サンプルテンプレート
Object Storage Service (OSS) や GitHub など、コードソースを指定します。CloudOps Orchestration Service (OOS) は、コードソースからコードをプルするための一時 URL を生成します。
JAR パッケージなどのソフトウェアパッケージをビルドし、OSS にアップロードします。
ソフトウェアパッケージをプルし、複数の ECS インスタンスにデプロイします。
例
コードソースを準備する
この例では、Spring Boot プロジェクトのサンプルコードを使用します。コードは Gitee と GitHub にアップロードされています。コードを使用する場合は、コードを自分のリポジトリにフォークする必要があります。コードアドレス:
テンプレートを作成する
CloudOps Orchestration Service コンソールにログインします。
左側のナビゲーションウィンドウで、 を選択し、[テンプレートの作成] をクリックします。
[ビルドとデプロイ] セクションで、[acs-ecs-examplesoftwarepackagebuildanddeployfromgit] を選択し、[次へ] をクリックします。
[プロセス設定] タブで、パラメータを設定し、[テンプレートの作成] をクリックします。
一時的な承認リンクを生成するためのコードソースを指定します。
この例では、Gitee をコードソースとして使用します。[所有者]、[組織]、[リポジトリ]、[ブランチ] の各パラメータを設定します。
説明Alibaba Cloud に GitHub または Gitee リポジトリへのアクセスが承認されていない場合は、[必要な権限を付与する] をクリックします。
サンプルコードをフォークした場合、アカウントに属するすべてのリポジトリが [リポジトリ] ドロップダウンリストに自動的に表示されます。この場合、コードをフォークしたリポジトリを選択します。

JAR パッケージなどのソフトウェアパッケージをビルドし、OSS にアップロードします。
コードソースと ECS インスタンスを選択し、ビルドコマンドを入力します。

[コードリソース]: この例では、
gitが選択されています。前のタスクの出力であるauthorizedUrlが使用されます。[ビルド ECS の選択]: ECS インスタンスを選択します。[既存の ECS] または [新規 ECS] を選択できます。
説明[新規 ECS] を選択した場合は、従量課金制で課金されます。OOS は、ECS インスタンスに Docker がインストールされているかどうかを自動的にチェックします。Docker がインストールされていない場合、OOS は ECS インスタンスに Docker Community Edition を自動的にインストールします。
[ビルド設定]: 必要に応じてビルドコマンドを提供します。
このサンプルテンプレートを実行すると、最初に Maven がインストールされ、JAR パッケージが作成されます。JAR パッケージは
targetディレクトリにあります。サンプルを要件を満たすスクリプトに置き換えることができます。サンプルスクリプト (Alibaba Cloud Linux 3)
### sample build script set -e yum install -y maven-3.5.4 mvn packageサンプルスクリプト (Ubuntu)
### sample build script set -e apt install -y maven mvn packageサンプルスクリプト (CentOS)
### sample build script set -e yum install -y maven mvn package
パッケージパスとビルド名を入力します。
次の例では、パッケージパスは
target/です。OOS はパッケージを.tgzファイルに圧縮します。
ビルド出力を OSS にアップロードします。
ソフトウェアパッケージをアップロードする OSS バケットとオブジェクトパスを指定します。

[タスク出力 (オプション)] セクションで、後続のタスクのために
bucketName(OSS バケットの名前) とobjectName(バケット内のビルドの完全なパス。ディレクトリとビルドの名前を含む) を追加します。後続のタスクで出力を直接使用できます。Linux を実行している複数の ECS インスタンスにソフトウェアパッケージをデプロイします。

[ターゲットインスタンス]: パッケージをデプロイする ECS インスタンスを選択します。
[OSS]: ビルドが属する OSS バケットの情報。OSS バケット名と OSS オブジェクト名はデフォルトで参照されます。繰り返し指定する必要はありません。また、パッケージをダウンロードするディレクトリも指定する必要があります。この例では、
/home/admin/app/を使用しています。[デプロイスクリプト]: 要件に基づいてデプロイスクリプトを提供できます。
この例では、
.tgzファイルが指定されたパスに解凍され、java -jarコマンドを使用してポート 8080 で JAR パッケージが実行されます。
オプション。同時実行制御パラメータを設定して、複数の ECS インスタンスの同時実行率を制御します。
[テンプレートの作成] をクリックします。
テンプレートを実行する
CloudOps Orchestration Service コンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
[カスタムテンプレート] ページで、テンプレートを見つけ、[アクション] 列の [実行の作成] をクリックします。
[基本情報] ステップで、パラメータを設定し、[次のステップ: パラメータ設定] をクリックします。
[パラメータ設定] ステップで、使用可能なパラメータがない場合は [OK] をクリックします。
[作成] をクリックします。
[タスク実行管理] ページで、実行ステータスが [成功] の場合、実行は完了です。

ECS コンソール にログインします。
ECS インスタンスを見つけ、インスタンスに接続します。
詳細については、「Workbench を使用して SSH 経由で Linux インスタンスに接続する」をご参照ください。
次のコマンドを実行して、デプロイが成功したかどうかを確認します。
curl http://localhost:8080/hello次のメッセージが返された場合、デプロイは成功です。
説明Failed to connect to localhost port 8080:Connection refusedというメッセージが返された場合、考えられる原因は、ECS インスタンスに Java がインストールされていないことです。yum install javaコマンドを実行して、もう一度確認してください。
次のステップ
今後コードを更新する場合は、更新されたコードを対応する Git リポジトリにプッシュし、このテンプレートを再度実行するだけで済みます。最新のコードがリポジトリから自動的にプルされ、パッケージ化され、OSS にアップロードされて、ECS インスタンスにデプロイされます。テンプレートを変更する場合は、テンプレートを変更してから実行できます。