Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

第4章 Web コンソールを使用したイメージの作成およびビルド

4.1. 概要

このスタートガイドでは、最もシンプルな方法で、OpenShift Container Platform でサンプルプロジェクトを稼働させる手順を説明しています。プロジェクトでイメージを起動する方法は複数ありますが、このトピックでは、最もすばやく簡単に起動する方法に焦点を当てていきます。

本書から読み始めており、OpenShift Container Platform バージョン 3 (v3) のコアとなる概念に慣れていない場合には、「What's New」に先に目を通してください。本バージョンの OpenShift Container Platform は、バージョン 2 (v2) とは大きく異なります。

OpenShift Container Platform 3 では、開発者向けに、すぐにアプリケーション開発を開始していただけるように、適切な実装およびチュートリアルと、追加設定なしに使用できる一連の言語およびデータベースを提供しています。言語サポートは、クイックスタートテンプレートを軸として展開されており、このテンプレートは、ビルダーイメージを活用します。

言語実装およびチュートリアル

Ruby

Rails

Python

Django

Node.js

Node.js

PHP

CakePHP

Perl

Dancer

Java

 

OpenShift Container Platform が提供する他のイメージには以下が含まれます。

さらに、JBoss Middleware では広範囲に及ぶ OpenShift Container Platform テンプレートを利用できます。

特に xPaaS サービスで利用可能な技術は以下のとおりです。

  • JBoss EAP 6 が提供する Java EE 6 Application Server
  • JBoss Fuse および JBoss A-MQ が提供する統合およびメッセージサービス
  • JBoss Data Grid が提供する Data Grid サービス
  • JBoss BRMS が提供する Real Time Decision Service
  • Tomcat 7 および Tomcat 8 が提供する Java Web Server 3.0

上記の各オファリングについては、一連の組み合わせが提供されます。

  • HTTP のみ vs HTTP および HTTPS
  • データベースを必要としない場合や、MongoDB、PostgreSQL または MySQL のいずれかを使用する場合
  • A-MQ との統合 (必要な場合)

このようなアプリケーションの構築を例示するために、以下のセクションではプロジェクトの作成について説明します。このプロジェクトには、Welcome ページや現在の訪問者数 (データベースに保存) を提供するサンプルの Node.js アプリケーションが含まれています。

注記

このトピックでは、クイックスタートインスタントアプリのテンプレートとアプリケーションの両方について説明します。クイックスタートは、アプリケーション開発のスタート地点ではありますが、便利なアプリケーションを作成するには開発作業が必要です。これとは対照的に、Jenkins などのインスタントアプリは即座に利用できます。

4.1.1. ブラウザーの要件

ブラウザーのバージョンとオペレーティングシステムを使用して、Web コンソールにアクセスできることを確認します。

4.2. 作業を開始する前に

作業を開始する前に、以下を確認してください。

4.3. サンプルリポジトリーのフォーク

  1. GitHub にログインした状態で「Ruby の例」のページに移動します。

    注記

    以下のトピックは、Ruby の例に沿っていますが、OpenShift Container Platform GitHub プロジェクトで提供される言語であればどれでも使用できます。

  2. リポジトリーをフォークします。

    新規のフォークにリダイレクトされます。

  3. フォーク用のクローン URL をコピーします。
  4. ローカルのマシンにリポジトリーをクローンします。

4.4. プロジェクトの作成

アプリケーションを作成するには、最初に新規プロジェクトを作成してから、InstantApp テンプレートを選択します。そこから、OpenShift Container Platform はビルドプロセスを開始し、新規デプロイメントを作成します。

  1. ブラウザーから OpenShift Container Platform の Web コンソールに移動します。Web コンソールは、自己署名証明書を使用するので、プロンプトが表示されたら、ブラウザーの警告を OK にして進みます。
  2. 管理者が推奨するユーザー名とパスワードを使用してログインします。
  3. 新規プロジェクトを作成するには、New Project をクリックします。
  4. 新規プロジェクトの一意の名前、表示名および説明を入力します。
  5. Create をクリックします。

    Web コンソールの welcome 画面が読み込まれます。

4.5. アプリケーションの作成

「Select Image」または「Template」ページでは、公開されている git リポジトリーか、またはテンプレートのどちらを基に作成するかのオプションが表示されます。

  1. 新規プロジェクトを作成しても、「Select Image」または「Template」ページに自動的にリダイレクトされない場合には、「Add to Project」をクリックする必要がある場合があります。
  2. Browse」をクリックしてから、ドロップダウンリストから「ruby」を選択します。
  3. ruby:latest ビルダーイメージをクリックします。
  4. アプリケーションの「名前」を入力して、「Git リポジトリーの URL」を入力します。Git リポジトリーの URL は https://github.com/<your_github_username>/ruby-ex.git です。
  5. オプションで、「Show advanced routing, build, and deployment options」をクリックします。ただし、デフォルトでは、このアプリケーション例では自動的にルート、Webhook トリガー、ビルド変更トリガーが作成されます。
  6. Create をクリックします。

    注記

    作成後に、Web コンソールからこれらの設定の一部を変更できます。手順は、「Browse」、「Builds」をクリックしてビルドを選択してから、「Actions」をクリックして「Edit」または「Edit YAML」を選択します。

アプリケーションの作成には時間がかかる可能性があります。Web コンソールの「Overview」ページでは、作成した新規リソースを表示し、ビルドやデプロイメントの進捗を確認できます。

Ruby Pod が作成されても、Pod のステータスは保留中と表示されます。次に、Ruby Pod が起動し、新たに割り当てられた IP アドレスが表示されます。Ruby Pod が実行されると、ビルドが完了します。

4.6. アプリケーションの実行の確認

DNS が正しく設定されている場合には、新規アプリケーションは Web ブラウザーからアクセスできます。アプリケーションにアクセスできない場合には、システム管理者にお問い合わせください。

新規アプリケーションを表示するには以下を実行します。

4.7. 自動化ビルドの設定

OpenShift Container Platform GitHub リポジトリー からこのアプリケーションのソースコードをフォークしたので、フォークしたリポジトリーにコードの変更がプッシュされるたびに、Webhook を使用して自動的にアプリケーションのリビルドをトリガーできます。

アプリケーションの Webhook を設定するには以下を実行します。

  1. Web コンソールで、作成したアプリケーションが含まれるプロジェクトに移動します。
  2. Browse」タブをクリックしてから「Builds」をクリックします。
  3. ビルド名をクリックしてから、「Configuration」タブをクリックします。
  4. GitHub webhook URL」の横にある「 Copy 」をクリックして、webhook ペイロード URL をコピーします。
  5. GitHub のフォークされたリポジトリーに移動してから「Settings」をクリックします。
  6. Webhooks & Services」をクリックします。
  7. Add webhook をクリックします。
  8. webhook URL を「Payload URL」フィールドに貼り付けます。
  9. Content Typeapplication/json に設定します。
  10. Add webhook」をクリックして保存します。

GitHub は、ping のペイロードを OpenShift Container Platform サーバーに送信して、通信が成功したことを確認します。Webhook URL の横に緑のチェックマークが表示された場合には、正しく設定されています。チェックマークの上にマウスをかざして、最終配信のステータスを表示します。

フォークされたリポジトリーにコード変更をプッシュする次回のタイミングで、アプリケーションが自動的に再ビルドされます。

4.8. コード変更の記述

ローカルで作業して、アプリケーションに変更をプッシュするには、以下を実行します。

  1. ローカルマシンで、テキストエディターを使用して、ruby-ex/config.ru ファイルのサンプルアプリケーションのソースを変更します。
  2. コードの変更をアプリケーション内から表示できるようにします。 たとえば、行 229 で、タイトルを Welcome to your Ruby application on OpenShift から This is my Awesome OpenShift Application に変更してから、変更を保存します。
  3. Git に変更をコミットして、フォークに変更をプッシュします。

    webhook が正しく設定されている場合には、変更を基に、アプリケーションは即座にリビルドされます。リビルドに成功した場合には、先に作成したルートを使用して更新されたアプリケーションを表示します。

その後は、必要な作業はコードの更新をプッシュするだけで、OpenShift Container Platform が残りを行います。

4.8.1. イメージの手動リビルド

Webook が機能しない場合や、ビルドに失敗して、コードを変更せずにビルドを再起動する場合には、イメージを手動でリビルドすると便利です。直近にコミットされた変更を基にイメージを手動でリビルドするには、フォークしたリポジトリーに移動します。

  1. Browse」タブをクリックしてから「Builds」をクリックします。
  2. ビルドを探し出して、Start Build をクリックします。