3.7. データベースへの接続

national-parks-app アプリケーションが場所情報を保存する MongoDB データベースをデプロイして接続します。national-parks-app アプリケーションをマップ可視化ツールのバックエンドとしてマークすると、parksmap デプロイメントは OpenShift Container Platform の検出メカニズムを使用して地図を自動的に表示します。

前提条件

  • OpenShift Container Platform Web コンソールにログインしている。
  • Developer パースペクティブを使用している。
  • イメージがデプロイされている。

手順

  1. Developer パースペクティブの +Add ビューで、Container images をクリックしてダイアログを開きます。
  2. Image Name フィールドに quay.io/centos7/mongodb-36-centos7 を入力します。
  3. Runtime icon フィールドで、mongodb を検索します。
  4. General セクションまでスクロールダウンします。
  5. 現在の値が以下のようであることを確認します。

    1. アプリケーション:national-parks-app
    2. 名前:mongodb-nationalparks
  6. ResourceDeployment を選択します。
  7. Create route to the application の横にあるチェックボックスの選択を解除します。
  8. Advanced Options セクションで Deployment をクリックし、以下の環境変数を追加します。

    表3.2 環境変数の名前および値

    名前

    MONGODB_USER

    mongodb

    MONGODB_PASSWORD

    mongodb

    MONGODB_DATABASE

    mongodb

    MONGODB_ADMIN_PASSWORD

    mongodb

  9. Create をクリックします。

3.7.1. シークレットの作成

Secret オブジェクトはパスワード、OpenShift Container Platform クライアント設定ファイル、プライベートソースリポジトリーの認証情報などの機密情報を保持するメカニズムを提供します。シークレットは機密内容を Pod から切り離します。シークレットはボリュームプラグインを使用してコンテナーにマウントすることも、システムが Pod の代わりにシークレットを使用して各種アクションを実行することもできます。以下の手順では、シークレット nationalparks-mongodb-parameters を追加し、それを nationalparks ワークロードにマウントします。

前提条件

  • OpenShift Container Platform Web コンソールにログインしている。
  • Developer パースペクティブを使用している。
  • イメージがデプロイされている。

手順

  1. Developer パースペクティブで、左側のナビゲーションにある Secrets に移動し、Secrets をクリックします。
  2. CreateKey/value secret をクリックします。

    1. Secret name フィールドに nationalparks-mongodb-parameters を入力します。
    2. Key および Value に以下の値を入力します。

      表3.3 シークレットのキーおよび値

      キー

      MONGODB_USER

      mongodb

      DATABASE_SERVICE_NAME

      mongodb-nationalparks

      MONGODB_PASSWORD

      mongodb

      MONGODB_DATABASE

      mongodb

      MONGODB_ADMIN_PASSWORD

      mongodb

    3. Create をクリックします。
  3. Add Secret to workload をクリックします。

    1. ドロップダウンメニューから、追加するワークロードとして nationalparks を選択します。
    2. Save をクリックします。

設定をこのように変更すると、環境変数が適切に挿入された状態で nationalparks デプロイメントの新しいロールアウトがトリガーされます。

3.7.2. データの読み込みおよび国立公園の地図表示

parksmap および nationalparks アプリケーションをデプロイし、mongodb-nationalparks データベースをデプロイしました。ただし、データベース データが読み込まれていません。データを読み込む前に、mongodb-nationalparks および nationalparks デプロイメントに適切なラベルを追加します。

前提条件

  • OpenShift Container Platform Web コンソールにログインしている。
  • Developer パースペクティブを使用している。
  • イメージがデプロイされている。

手順

  1. Topology ビューから nationalparks デプロイメントに移動し、Resources をクリックしてルート情報を取得します。
  2. URL を Web ブラウザーにコピーアンドペーストし、URL の最後に以下を追加します。

    /ws/data/load

    出力例

    Items inserted in database: 2893

  3. Topology ビューから parksmap デプロイメントに移動し、Resources をクリックしてルート情報を取得します。
  4. URL をコピーして Web ブラウザーに貼り付けて、世界地図の国立公園を表示します。

図3.4 世界中の国立公園

getting started map national parks