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サービスブローカーのソースコードを入手したら:
-
サービスブローカーアプリケーションをデプロイします。
cf push contrast-security-service-broker
-
サービスブローカーがPCFに表示されるはずです。デフォルトでは、サービスブローカーにはプランがありません。
CONTRAST_SERVICE_PLANS
という環境変数を使用して、プランを設定します。Pivotal Ops Managerを使用して、環境変数を設定することもできます。IBM Cloudを使用している場合、アプリケーションのコンソールページでRuntimeを選択したらEnvironment Variablesを選択し、値を設定します。 -
コマンドラインから値を設定するには、以下の例を参考にしてください。
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' } } "
-
環境変数を変更したら、アプリケーションをを再ステージングします。
cf restage contrast-security-service-broker
-
アプリケーションには、ユーザ名とパスワードの環境変数も必要です。
cf set-env contrast-security-service-broker SECURITY_USER_NAME aSecureUsername cf set-env contrast-security-service-broker SECURITY_USER_PASSWORD aSecurePassword
-
サービスブローカーのインスタンスを作成します。サービスプランを少なくとも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
-
全てのサービスブローカーは最初はプライベートです。そのためパブリックに変更します。
cf enable-service-access contrast-security-service-broker
-
サービスブローカーが動作するようになったので、サービスのインスタンスを作成し、アプリケーションにバインドします。サービスのインスタンスを作成するには、以下のコマンドを実行します。
cf create-service contrast-security-service-broker ServicePlan1 <name_of_service>
-
そのインスタンスをアプリケーションにバインドするために、以下のコマンドを実行します。
cf bind-service <app_name> <name_of_service>
-
エージェントを有効にしてアプリケーションが起動します。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サービスブローカータイルを追加するには:
-
VMware Tanzu NetworkからContrastサービスブローカータイルをダウンロードします。
-
Ops ManagerでImport a Product(プロダクトをインポート)ボタンを選択して、ダウンロードしたcontrast-security-service-broker-#.#.#.pivotal タイルを選択します。
注:
ダウンロードしたファイルの拡張子がZIPの場合は、ファイル名をcontrast-security-service-broker-#.#.#.pivotal に変更してください。
-
タイルをデプロイするには、設定がいくつか必要です。デフォルトでは、サービスブローカーにはサービスプランがありません。サービスプランを追加するには、ContrastサービスブローカーのService Plans(サービスプラン)を選択し、Add(追加)ボタンをクリックします。
-
サービプランで以下の設定パラメータを入力します。
-
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:プロキシのパスワード
-
-
サービスプランを定義したら、Save(保存)を選択します。アプリケーションを別の組織に入れたいたい場合は、必要となる他のプランを定義してください。
-
ダッシュボードでApply Changes(変更を適用)を選択します。完了までに時間がかかる場合があります。
-
サービスブローカーをデプロイしたら、アプリケーションに認証情報をバインドできます。Marketplace(マーケットプレイス)にアクセスし、"Contrast Security service broker"(サービスブローカー)を検索します。
-
Contrast Security service brokerオプションを選択すると、Pivotal Ops Managerで作成した利用可能なプランが表示されます。
-
Select this Plan(このプランを選択)ボタンをクリックして、アプリケーションにバインドするプランを選択します。
-
プランのInstance Name(インスタンス名)を指定します。これは、サービスブローカーには影響しません。インスタンスには自由に名前を付けることができます。
-
Bind to App(アプリにバインド)ドロップダウンメニューで、このサービスにバインドするアプリケーションを選択します。そして、アプリケーションを再ステージングします。これにより、Contrastから最新のエージェントが取得され、アプリケーションにエージェントが組み込まれます。
-
アプリケーション名などのエージェントのプロパティを上書きする場合は、PCFで環境変数を設定することができます。以下は、コマンドラインの例です。
cf set-env APP-NAME JAVA_OPTS " -Dcontrast.app.name.override=PivotalSpringApp -Dcontrast.server=PivotalServerName "