開発者は、変更をコミットするたびにオンプレミスの GitHub インスタンスから自動化クラウド テンプレートを取得するパイプラインを必要とします。このパイプラインは、WordPress アプリケーションを Amazon Web Services (AWS) EC2 またはデータセンターに展開するために必要です。 Code Stream は、パイプラインからクラウド テンプレートを呼び出し、アプリケーションの展開用にそのクラウド テンプレートの継続的インテグレーションおよび継続的デリバリ (CICD) を自動化します。

パイプラインを作成してトリガするには、VMware クラウド テンプレートが必要です。

Code Stream クラウド テンプレート タスクの [クラウド テンプレート ソース] で、次のいずれかを選択します。

  • ソース制御としての [Cloud Assembly テンプレート]。この場合、GitLab または GitHub リポジトリは必要ありません。
  • ソース制御に GitLab または GitHub を使用している場合、[ソース制御]。この場合は Git Webhook が必要であり、Webhook を介してパイプラインをトリガーする必要があります。

GitHub リポジトリに YAML クラウド テンプレートがあり、パイプラインでそのクラウド テンプレートを使用する場合は、次の操作を実行します。

  1. VMware Cloud Assembly で、クラウド テンプレートを GitHub リポジトリにプッシュします。
  2. Code Stream で、Git エンドポイントを作成します。次に、この Git エンドポイントとパイプラインを使用する Git Webhook を作成します。
  3. パイプラインをトリガーするには、GitHub リポジトリ内のファイルを更新し、変更をコミットします。

GitHub リポジトリに YAML クラウド テンプレートがなく、ソース制御のクラウド テンプレートを使用する場合は、この手順を使用してその方法を学習してください。ここでは、WordPress アプリケーション向けにクラウド テンプレートを作成し、オンプレミスの GitHub リポジトリから起動する方法について説明します。YAML クラウド テンプレートに変更を加えると、パイプラインによってアプリケーションのリリースがトリガおよび自動化されます。

  • VMware Cloud Assembly で、クラウド アカウントを追加し、クラウド ゾーンを追加して、クラウド テンプレートを作成します。
  • Code Stream で、クラウド テンプレートをホストするオンプレミスの GitHub リポジトリにエンドポイントを追加します。次に、クラウド テンプレートをパイプラインに追加します。

このユースケースの例では、オンプレミスの GitHub リポジトリにあるクラウド テンプレートを使用する方法を示します。

YAML クラウド テンプレートから展開するアプリケーションのリリースを自動化するためのワークフロー。

前提条件

  • VMware Cloud Assembly インフラストラクチャにクラウド アカウントとクラウド ゾーンを追加します。『VMware Cloud Assembly』のクラウド アカウントとはおよびクラウド ゾーンとはを参照してください。
  • 次の手順でクラウド テンプレートを作成するには、WordPress YAML コードをクリップボードにコピーします。『VMware Cloud Assembly』のWordPress の使用事例:基本的なブループリントの作成を参照してください。
  • WordPress アプリケーションの YAML コードを GitHub インスタンスに追加します。
  • YAML コードに変更内容をコミットするたびにパイプラインがその YAML コードをプルできるように、Git トリガ用の Webhook を追加します。 Code Stream で、[トリガ] > [Git] > [Git 用 Webhook] の順にクリックします。
  • Code Stream をオンプレミスの GitHub エンドポイントに接続するには、クラウド プロキシを追加します。例については、リリース プロセスをモデリングするための VMware Code Stream の設定を参照してください。
  • アプリケーションをオンプレミス データセンターにプロビジョニングする場合は、 Code Stream が接続できるようにクラウド プロキシをインストールして使用する必要があります。例については、リリース プロセスをモデリングするための VMware Code Stream の設定およびCode Stream でのエンドポイントとはを参照してください。
  • クラウド テンプレート タスクを使用するには、Cloud Assembly のいずれかのロールを持っている必要があります。

手順

  1. VMware Cloud Assembly で、次の手順を実行します。
    1. [VMware Cloud Templates] をクリックし、WordPress アプリケーションのクラウド テンプレートと展開を作成します。
    2. クリップボードにコピーしておいた WordPress YAML コードをクラウド テンプレートに貼り付け、それを展開します。
      WordPress クラウド テンプレートのサンプル。
  2. Code Stream で、エンドポイントを作成します。
    1. YAML ファイルが配置されているオンプレミス GitHub リポジトリ用に Git エンドポイントを作成します。
      オンプレミス GitHub リポジトリ用の Git エンドポイントの作成。
    2. E メール エンドポイントを追加して、パイプラインの実行時のステータスがユーザーに通知されるようにします。
      E メール エンドポイントの追加。
  3. パイプラインを作成し、パイプラインの成否の通知を追加します。
    パイプラインの E メール通知とメール サーバの選択。
  4. 開発のステージを追加し、クラウド テンプレート タスクを追加します。
    1. マシンを展開するクラウド テンプレート タスクを追加して、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'
    2. マシンを破棄してリソースを解放するクラウド テンプレート タスクを追加します。
  5. 本番用のステージを追加し、承認タスクと展開タスクを含めます。
    1. WordPress アプリケーションを本番にプッシュするための承認を必要とするユーザー操作タスクを追加します。
    2. マシンを展開するためのクラウド テンプレート タスクを追加し、そこに WordPress アプリケーションのクラウド テンプレート YAML を設定します。
      [作成] を選択するときは、展開の名前を一意にする必要があります。名前を空白のままにすると、 Code Stream によって一意のランダムな名前が割り当てられます。
      ここでは、自分のユースケースで [ロールバック] を選択する場合に知っておく必要があることを示します。 [ロールバック] アクションを選択し、 [ロールバック バージョン] を入力する場合、バージョンは n-X という形式にする必要があります。たとえば、 n-1n-2n-3 などとします。 Code Stream 以外の場所で展開を作成して更新した場合、ロールバックは許可されません。
      Code Stream にログインすると、30 分間有効なユーザー トークンが取得されます。パイプラインの実行時間が長時間になる場合については、クラウド テンプレート タスクの前のタスクの実行に 30 分以上かかるとユーザー トークンの有効期限が切れます。その結果、クラウド テンプレート タスクは失敗します。
      パイプラインを 30 分以上実行できるようにするには、オプションの API トークンを入力します。 Code Stream がクラウド テンプレートを呼び出すと API トークンが維持され、クラウド テンプレート タスクは引き続きその API トークンを使用します。
      API トークンを変数として使用すると、そのトークンは暗号化されます。それ以外の場合は、プレーン テキストとして使用されます。
      WordPress アプリケーション展開用のクラウド テンプレート タスクの追加。
  6. パイプラインを実行します。

    各タスクが正常に完了したことを確認するには、実行中のタスクをクリックし、展開の詳細でステータスを確認して、詳細なリソース情報を確認します。

  7. GitHub で、WordPress サーバ インスタンスのフレーバーを small から medium に変更します。
    変更をコミットすると、パイプラインがトリガされます。これにより、更新されたコードが GitHub リポジトリからプルされて、アプリケーションがビルドされます。
    WebTier:
        type: Cloud.Machine    
        properties:     
            name: wordpress      
            image: 'ubuntu-16'      
            flavor: 'medium'      
            constraints:        
                - tag: zone:dev
  8. このパイプラインを再度実行します。パイプラインが正常に完了したことと、WordPress インスタンスのフレーバーが small から medium に変更されたことを確認します。

結果

完了です。YAML クラウド テンプレートから展開したアプリケーションのリリースが自動化されました。

次のタスク

Code Stream の使用方法の詳細については、VMware Code Stream を使用するためのチュートリアルを参照してください。

この他の参考情報については、VMware Code Stream 管理者および開発者向けのその他のリソースを参照してください。