開発者は、変更をコミットするたびにオンプレミスの GitHub インスタンスから自動化クラウド テンプレートを取得するパイプラインを必要とします。このパイプラインは、WordPress アプリケーションを Amazon Web Services (AWS) EC2 またはデータセンターに展開するために必要です。Automation Pipelines は、パイプラインからクラウド テンプレートを呼び出し、アプリケーションの展開用にそのクラウド テンプレートの継続的インテグレーションおよび継続的デリバリ (CICD) を自動化します。
パイプラインを作成してトリガするには、Automation Assembler のクラウド テンプレートが必要です。
Automation Pipelines クラウド テンプレート タスクの [テンプレート ソース] で、次のいずれかを選択します。
- ソース制御として [Automation Assembler]。この場合、GitLab または GitHub リポジトリは必要ありません。
- ソース制御に GitLab または GitHub を使用している場合、[ソース制御]。この場合は Git Webhook が必要であり、Webhook を介してパイプラインをトリガーする必要があります。
GitHub リポジトリに YAML クラウド テンプレートがあり、パイプラインでそのクラウド テンプレートを使用する場合は、次の操作を実行します。
- Automation Assembler で、クラウド テンプレートを GitHub リポジトリにプッシュします。
- Automation Pipelines で、Git エンドポイントを作成します。次に、この Git エンドポイントとパイプラインを使用する Git Webhook を作成します。
- パイプラインをトリガーするには、GitHub リポジトリ内のファイルを更新し、変更をコミットします。
GitHub リポジトリに YAML クラウド テンプレートがなく、ソース制御のクラウド テンプレートを使用する場合は、この手順を使用してその方法を学習してください。ここでは、WordPress アプリケーション向けにクラウド テンプレートを作成し、オンプレミスの GitHub リポジトリから起動する方法について説明します。YAML クラウド テンプレートに変更を加えると、パイプラインによってアプリケーションのリリースがトリガおよび自動化されます。
- Automation Assembler で、クラウド アカウントを追加し、クラウド ゾーンを追加して、クラウド テンプレートを作成します。
- Automation Pipelines で、クラウド テンプレートをホストするオンプレミスの GitHub リポジトリにエンドポイントを追加します。次に、クラウド テンプレートをパイプラインに追加します。
このユースケースの例では、オンプレミスの GitHub リポジトリにあるクラウド テンプレートを使用する方法を示します。
前提条件
- WordPress アプリケーションの YAML コードを GitHub インスタンスに追加します。
- YAML コードに変更内容をコミットするたびにパイプラインがその YAML コードをプルできるように、Git トリガ用の Webhook を追加します。Automation Pipelines で、 の順にクリックします。
- クラウド テンプレート タスクを使用するには、Automation Assembler のいずれかのロールを持っている必要があります。
手順
- Automation Assembler で、次の手順を実行します。
- [テンプレート] をクリックし、WordPress アプリケーションのクラウド テンプレートと展開を作成します。
- クリップボードにコピーしておいた WordPress YAML コードをクラウド テンプレートに貼り付け、それを展開します。
- Automation Pipelines で、エンドポイントを作成します。
- YAML ファイルが配置されているオンプレミス GitHub リポジトリ用に Git エンドポイントを作成します。
- パイプラインの実行時のステータスをユーザーに通知する E メール エンドポイントを追加します。
- パイプラインを作成し、パイプラインの成否の通知を追加します。
- 開発のステージを追加し、クラウド テンプレート タスクを追加します。
- マシンを展開するクラウド テンプレート タスクを追加して、WordPress アプリケーションのクラウド テンプレート YAML を使用するように設定します。
resources:
DBTier:
type: Cloud.Machine
properties:
name: mysql
image: 'ubuntu-16'
flavor: 'small'
constraints:
- tag: zone:dev
WebTier:
type: Cloud.Machine
properties:
name: wordpress
image: 'ubuntu-16'
flavor: 'small'
constraints:
- tag: zone:dev
WP-Network-Private:
type: Cloud.Network
properties:
name: WP-Network-Private
networkType: existing
constraints:
- tag: 'type:isolated-net'
- tag: 'zone:dev'
- マシンを破棄してリソースを解放するクラウド テンプレート タスクを追加します。
- 本番用のステージを追加し、承認タスクと展開タスクを含めます。
- WordPress アプリケーションを本番にプッシュするための承認を要求するユーザー操作タスクを追加します。
- マシンを展開するためのクラウド テンプレート タスクを追加し、そこに WordPress アプリケーションのクラウド テンプレート YAML を設定します。
[作成] を選択するときは、展開の名前を一意にする必要があります。名前を空白のままにすると、
Automation Pipelines によって一意のランダムな名前が割り当てられます。
自分のユースケースで
[ロールバック] を選択する場合には、次のことを知っておく必要があります。
[ロールバック] アクションを選択し、
[ロールバック バージョン] を入力する場合、バージョンは
n-X という形式にする必要があります。たとえば、
n-1、
n-2、
n-3 などとします。
Automation Pipelines 以外の場所で展開を作成して更新した場合、ロールバックは許可されます。
- パイプラインを実行します。
各タスクが正常に完了したことを確認するには、実行中のタスクをクリックし、展開の詳細でステータスを確認して、詳細なリソース情報を調べます。
- GitHub で、WordPress サーバ インスタンスのフレーバーを
small
から medium
に変更します。
変更をコミットすると、パイプラインがトリガされます。これにより、更新されたコードが GitHub リポジトリからプルされて、アプリケーションがビルドされます。
WebTier:
type: Cloud.Machine
properties:
name: wordpress
image: 'ubuntu-16'
flavor: 'medium'
constraints:
- tag: zone:dev
- このパイプラインを再度実行します。パイプラインが正常に完了したことと、WordPress インスタンスのフレーバーが small から medium に変更されたことを確認します。
結果
完了です。YAML クラウド テンプレートから展開したアプリケーションのリリースが自動化されました。
次のタスク
Automation Pipelines の使用方法の詳細については、Automation Pipelines を使用するためのチュートリアルを参照してください。
詳細については、Getting Started with VMware Aria Automationのその他のリソースを参照してください。