Pivotal Cloud Foundry(現VMware Tanzu)でNode.jsエージェントを設定

  • 更新

 

Pivotal Cloud Foundry(現VMware Tanzu)では、デフォルトのNode.jsビルドパックを利用して、アプリケーションでContrastと様々なインテグレーションができます。

ユーザー提供サービスを作成し、そのサービスをアプリケーションにバインドすることによって、独自のビルドパックをインテグレーションとして利用することができます。サービスブローカーを使用すれば、複数のサービスプランを定義し、アプリケーションにバインドできるサービスインスタンスを複数作成できます。

ContrastはContrastサービスブローカータイルを提供しており、BOSH展開とContrastサービスブローカーの設定を自動化します。

重要

ContrastとPCFのインテグレーションでは、Node.jsエージェントはダウンロードされず、アプリケーションの起動も変更されません。Node.jsエージェントをダウンロードして手動でインストールする必要があります。

エージェントの設定は、インテグレーションで提供されるContrastサービスブローカータイルで行うこともできますし、ユーザー提供サービスで自動設定を使用することもできます。 

PCF環境にNode.jsエージェントをインストールするには、以下のいずれかのビルドパックをアプリケーションで使用する必要があります。

  • タイル利用の場合:Cloud Foundry NodeJSビルドパックのバージョン1.6.52以降

  • ユーザー提供サービス利用の場合:Cloud Foundry NodeJSビルドパックのバージョン1.6.56以降

    注:

    Contrastフレームワークのサポートが含まれていないビルドパックを使用する場合、フレームワークのサポートを追加できます。追加する場合は、フォークしたビルドパックで適切な変更が必要です。

    ビルドパックのオフライン版を使用している場合、アプリケーションで使用されているエージェントのバージョンは上書きされません。ビルドパック内に依存関係がバンドルされています。

Contrastフレームワークのサポート:Contrastエージェントのフレームワークにより、最新のエージェントが自動でダウンロードされ、設定ファイルが作成されます。ビルドパックのdetectスクリプト(検出スクリプト)は、タグを標準出力に出力します。

注:

detectスクリプトは、1つのバインドされたContrastサービスが存在するかを確認します。Contrastサービスが存在すると判断される基準は、VCAP_SERVICESペイロードにcontrast-securityを部分文字列として含むサービス名、ラベル、またはタグがある場合です。

ユーザー提供サービスを使用してContrastをバインドする場合は、contrast-security含む名前かタグが必要です。また、認証情報のペイロードに基本のYAMLオプションも含める必要があります。

以下は、ユーザー提供サービスを作成し、アプリケーションにバインドする例です。

cf create-user-provided-service contrast-security-service -p "teamserver_url, username, api_key, service_key"
cf bind-service spring-music contrast-security-service
cf restage spring-music

注:

teamserver_urlの箇所には、プロトコルとホスト名の身を指定してください。/Contrast//Contrast/apiは含めないでください。

Contrastサービスブローカーを追加

Contrastサービスブローカーを使用することで、Pivotal Cloud Foundry(PCF)のアプリケーションにサービスを簡単にバインドでき、Contrast Node.jsエージェントを使用できます。

Contrastサービスブローカーのソースコードについては、サポートにお問い合わせください。Contrastサービスブローカーのソースコードを入手したら:

  1. サービスブローカーアプリケーションをデプロイします。

    cf push contrast-security-service-broker
  2. サービスブローカーがPCFに表示されるはずです。デフォルトでは、サービスブローカーにはプランがありません。CONTRAST_SERVICE_PLANSという環境変数を使用して、プランを設定します。Pivotal Ops Managerを使用して、環境変数を設定することもできます。IBM Cloudを使用している場合、アプリケーションのコンソールページでRuntimeを選択したらEnvironment Variablesを選択し、値を設定します。

  3. コマンドラインから値を設定するには、以下の例を参考にしてください。

    cf set-env contrast-security-service-broker CONTRAST_SERVICE_PLANS
        " {
                "ServicePlan1": {
                     "name":"ServicePlan1",
                     "teamserver_url":"https://yourteamserverurl.com",
                     "username":"your_username",
                     "org_uuid":"00000000-1111-2222-3333-000000000000",
                     "api_key":"your_api_key",
                     "service_key":"your_service_key"
                 },
                 "AnotherServicePlan":{
                     "name":"AnotherServicePlan",
                     "teamserver_url":"https://yourteamserverurl.com",
                     "username":"your_username",
                     "org_uuid":"00000000-1111-2222-3333-000000000001",
                     "api_key":"your_api_key",
                     "service_key":"some_other_service_key"
                     }
                 } "

    注:

    IBM Cloudでエージェントを実行する場合、CONTRAST_SERVICE_PLANS環境変数の値は一重引用符で囲んでください。

        cf set-env contrast-security-service-broker CONTRAST_SERVICE_PLANS
        " {
                'ServicePlan1': {
                     'name':'ServicePlan1',
                     'teamserver_url':'https://yourteamserverurl.com',
                     'username':'your_username',
                     'org_uuid':'00000000-1111-2222-3333-000000000000',
                     'api_key':'your_api_key',
                     'service_key':'your_service_key'
                 },
                 'AnotherServicePlan':{
                     'name':'AnotherServicePlan',
                     'teamserver_url':'https://yourteamserverurl.com',
                     'username':'your_username',
                     'org_uuid':'00000000-1111-2222-3333-000000000000',
                     'api_key':'your_api_key',
                     'service_key':'some_other_service_key'
                     }
                 } "
  4. 環境変数を変更したら、アプリケーションをを再ステージングします。

    cf restage contrast-security-service-broker
  5. アプリケーションには、ユーザ名とパスワードの環境変数も必要です。

    cf set-env contrast-security-service-broker SECURITY_USER_NAME aSecureUsername
    cf set-env contrast-security-service-broker SECURITY_USER_PASSWORD aSecurePassword
  6. サービスブローカーのインスタンスを作成します。サービスプランを少なくとも1つ定義してください。ユーザ名とパスワードは上記と同じものを使用する必要があります。

    cf create-service-broker contrast-security-service-broker USER_NAME PASSWORD
    <URL of your application>

    注:

    IBM Cloudでは、コマンドの最後に--space-scoped を追加してください。例:

    cf create-service-broker contrast-security-service-broker USER_NAME PASSWORD
    <URL of your application> --space-scoped
  7. 全てのサービスブローカーは最初はプライベートです。そのためパブリックに変更します。

    cf enable-service-access contrast-security-service-broker
  8. サービスブローカーが動作するようになったので、サービスのインスタンスを作成し、アプリケーションにバインドします。サービスのインスタンスを作成するには、以下のコマンドを実行します。

    cf create-service contrast-security-service-broker ServicePlan1 <name_of_service>
  9. そのインスタンスをアプリケーションにバインドするために、以下のコマンドを実行します。

    cf bind-service <app_name> <name_of_service>
  10. エージェントを有効にしてアプリケーションが起動します。Contrast UIにアプリケーションが表示されるはずです。

 

Contrastサービスブローカータイルを追加

Contrastサービスブローカータイルを追加する前に、以下が必要です。

  • Pivotal Apps Manager、Ops Manager

  • 有効なContrastのアカウント

  • デフォルトのNode.jsビルドパック(Contrastを使用する全てのアプリケーションに必要)。カスタムのビルドパックを使用している場合は、Contrastフレームワークのサポートと設定をビルドパックにコピーしておく必要があります。

サービスブローカーを使用すると、Apps ManagerやコマンドラインからPivotal Cloud Foundry(PCF)のアプリケーションをサービスにバインドして、簡単にサービスを使用できるようになります。 Contrastサービスブローカーは、PCF上のNode.jsアプリケーションとしてデプロイすることができ、1つ以上のContrastアカウントを使用できます。ブローカーによって、ContrastサービスがPCFマーケットプレイスに公開されるので、サービスのインスタンスを直接作成して、アプリケーションにバインドすることができます。

タイルを追加すると、contrast-security-service-broker-orgという1つの組織が作成されます。この組織を使用して、 Contrastサービスブローカーのアプリケーションをデプロイします。これには512MBのメモリが必要です。

ヒント

まずはサンプルなどで手順を確認するのであれば、Spring Musicというサンプルアプリケーションでお試しください。以下のコマンドを実行して、サンプルアプリケーションをクローンし、ビルド・プッシュしてください。

git clone https://github.com/cloudfoundry-samples/spring-music.git
cd spring-music
./gradlew assemble
cf push spring-music

Node.jsのContrastサービスブローカータイルを追加するには:

  1. VMware Tanzu NetworkからContrastサービスブローカータイルをダウンロードします。

  2. Ops ManagerでImport a Product(プロダクトをインポート)ボタンを選択して、ダウンロードしたcontrast-security-service-broker-#.#.#.pivotal タイルを選択します。

    注:

    ダウンロードしたファイルの拡張子がZIPの場合は、ファイル名をcontrast-security-service-broker-#.#.#.pivotal に変更してください。

  3. タイルをデプロイするには、設定がいくつか必要です。デフォルトでは、サービスブローカーにはサービスプランがありません。サービスプランを追加するには、ContrastサービスブローカーのService Plans(サービスプラン)を選択し、Add(追加)ボタンをクリックします。

  4. サービプランで以下の設定パラメータを入力します。

    • TeamServer: ContrastサーバへのURL

    • TeamServer Service Key:組織の設定にあるサービスキー

    • TeamServer API Key:組織の設定にあるAPIキー

    • Organization UUID:アプリケーションが属している組織の組織ID

    • Username:Contrastユーザ名

    • Plan Name:Apps Managerで表示されるプラン名

    • Proxy Host:サービスブローカーがContrastと通信するプロキシのホスト名

    • Proxy Port:プロキシのポート

    • Proxy Username:認証が必要な場合のプロキシのユーザ名

    • Plan Password:プロキシのパスワード

  5. サービスプランを定義したら、Save(保存)を選択します。アプリケーションを別の組織に入れたいたい場合は、必要となる他のプランを定義してください。

  6. ダッシュボードでApply Changes(変更を適用)を選択します。完了までに時間がかかる場合があります。

  7. サービスブローカーをデプロイしたら、アプリケーションに認証情報をバインドできます。Marketplace(マーケットプレイス)にアクセスし、"Contrast Security service broker"(サービスブローカー)を検索します。

  8. Contrast Security service brokerオプションを選択すると、Pivotal Ops Managerで作成した利用可能なプランが表示されます。

  9. Select this Plan(このプランを選択)ボタンをクリックして、アプリケーションにバインドするプランを選択します。

  10. プランのInstance Name(インスタンス名)を指定します。これは、サービスブローカーには影響しません。インスタンスには自由に名前を付けることができます。

  11. Bind to App(アプリにバインド)ドロップダウンメニューで、このサービスにバインドするアプリケーションを選択します。そして、アプリケーションを再ステージングします。これにより、Contrastから最新のエージェントが取得され、アプリケーションにエージェントが組み込まれます。

  12. アプリケーション名などのエージェントのプロパティを上書きする場合は、PCFで環境変数を設定することができます。以下は、コマンドラインの例です。

    cf set-env APP-NAME JAVA_OPTS " -Dcontrast.app.name.override=PivotalSpringApp
    -Dcontrast.server=PivotalServerName "

この記事は役に立ちましたか?

0人中0人がこの記事が役に立ったと言っています

他にご質問がございましたら、リクエストを送信してください