12.4. Red Hat OpenShift Service on AWS へのアプリケーションのデプロイ


アプリケーションを Red Hat OpenShift Service on AWS にデプロイできます。

rails-app プロジェクトの作成後、新規プロジェクトの namespace に自動的に切り替えられます。

Red Hat OpenShift Service on AWS へのアプリケーションのデプロイでは 3 つの手順を実行します。

  • Red Hat OpenShift Service on AWS の PostgreSQL イメージからデータベースサービスを作成します。
  • データベースサービスと連動する Red Hat OpenShift Service on AWS の Ruby 2.0 ビルダーイメージおよび Ruby on Rails ソースコードのフロントエンドサービスを作成します。
  • アプリケーションのルートを作成します。

12.4.1. データベースサービスの作成

手順

Rails アプリケーションには実行中のデータベースサービスが必要です。このサービスには、PostgreSQL データベースイメージを使用します。

データベースサービスを作成するために、oc new-app コマンドを使用します。このコマンドには、必要な環境変数を渡す必要があります。この環境変数は、データベースコンテナー内で使用します。これらの環境変数は、ユーザー名、パスワード、およびデータベースの名前を設定するために必要です。これらの環境変数の値を任意の値に変更できます。変数は以下のようになります。

  • POSTGRESQL_DATABASE
  • POSTGRESQL_USER
  • POSTGRESQL_PASSWORD

これらの変数を設定すると、以下を確認できます。

  • 指定の名前のデータベースが存在する
  • 指定の名前のユーザーが存在する
  • ユーザーは指定のパスワードで指定のデータベースにアクセスできる

手順

  1. データベースサービスを作成します。

    $ oc new-app postgresql -e POSTGRESQL_DATABASE=db_name -e POSTGRESQL_USER=username -e POSTGRESQL_PASSWORD=password

    データベース管理者のパスワードを設定するには、直前のコマンドに以下を追加します。

    -e POSTGRESQL_ADMIN_PASSWORD=admin_pw
  2. 進行状況を確認します。

    $ oc get pods --watch

12.4.2. フロントエンドサービスの作成

アプリケーションを Red Hat OpenShift Service on AWS にデプロイするには、アプリケーションが置かれるリポジトリーを指定する必要があります。

手順

  1. フロントエンドサービスを作成し、データベースサービスの作成時に設定されたデータベース関連の環境変数を指定します。

    $ oc new-app path/to/source/code --name=rails-app -e POSTGRESQL_USER=username -e POSTGRESQL_PASSWORD=password -e POSTGRESQL_DATABASE=db_name -e DATABASE_SERVICE_NAME=postgresql

    このコマンドを実行すると、Red Hat OpenShift Service on AWS が指定された環境変数を使用して、ソースコードの取得、ビルダーのセットアップ、アプリケーションイメージのビルド、新しく作成されたイメージのデプロイを実行します。このアプリケーションには rails-app という名前を指定します。

  2. rails-app デプロイメント設定の JSON ドキュメントを参照して、環境変数が追加されたかどうかを確認できます。

    $ oc get dc rails-app -o json

    以下のセクションが表示されるはずです。

    出力例

    env": [
        {
            "name": "POSTGRESQL_USER",
            "value": "username"
        },
        {
            "name": "POSTGRESQL_PASSWORD",
            "value": "password"
        },
        {
            "name": "POSTGRESQL_DATABASE",
            "value": "db_name"
        },
        {
            "name": "DATABASE_SERVICE_NAME",
            "value": "postgresql"
        }
    
    ],

  3. ビルドプロセスを確認します。

    $ oc logs -f build/rails-app-1
  4. ビルドが完了したら、Red Hat OpenShift Service on AWS で実行中の Pod を確認します。

    $ oc get pods

    myapp-<number>-<hash> で始まる行が表示されますが、これは Red Hat OpenShift Service on AWS で実行中のアプリケーションです。

  5. データベースの移行スクリプトを実行してデータベースを初期化してからでないと、アプリケーションは機能しません。これを実行する 2 種類の方法があります。

    • 実行中のフロントエンドコンテナーから手動で実行する

      • rsh コマンドでフロントエンドコンテナーに exec を実行します。

        $ oc rsh <frontend_pod_id>
      • コンテナー内から移行を実行します。

        $ RAILS_ENV=production bundle exec rake db:migrate

        development または test 環境で Rails アプリケーションを実行する場合には、RAILS_ENV の環境変数を指定する必要はありません。

    • デプロイメント前のライフサイクルフックをテンプレートに追する

12.4.3. アプリケーションのルートの作成

アプリケーションのルートを作成するためにサービスを公開できます。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.