第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 | |
Python | |
Node.js | |
PHP | |
Perl | |
Java |
OpenShift Container Platform が提供する他のイメージには以下が含まれます。
さらに、JBoss ミドルウェアでは、xPaaS サービスの一部として、幅広い種類の「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 との統合
このようなアプリケーションの構築を例示するために、以下のセクションにはプロジェクトが含まれています。このプロジェクトには、ウェルカムページや現在の訪問者数 (データベースに保存) を提供するサンプルの Node.js アプリケーションが含まれています。
このトピックでは、「クイックスタート」と「インスタントアプリ」 のテンプレートとアプリケーションの両方について説明します。クイックスタートは、アプリケーション開発のスタート地点ではありますが、便利なアプリケーションを作成するには開発作業が必要です。反対に、Jenkins などのインスタントアプリは即座に利用できます。
4.1.1. ブラウザーの要件
Web コンソールへのアクセスに使用可能な、「ブラウザーのバージョンとオペレーティングシステム」を確認してください。
4.2. 作業を開始する前に
作業を開始する前に、以下を確認してください。
- 実行中の OpenShift Container Platform インスタントにアクセスできる必要があります。アクセスできない場合には、クラスター管理者にお問い合わせください。
- インスタンスは、クラスター管理者によって、「インスタントアプリのテンプレート」および「ビルダーイメージ」で事前設定されている必要があります。インスタンスが用意されていない場合には、クラスター管理者に「デフォルトのイメージストリームとテンプレートの読み込み」トピックを参照するように案内してください。
- OpenShift Container Platform CLI を 「ダウンロード、インストール」しておく必要があります。
4.3. サンプルリポジトリーのフォーク
GitHub にログインした状態で 「Ruby の例」 のページに移動します。
注記以下のトピックは、Ruby の例に沿っていますが、「OpenShift Container Platform GitHub プロジェクトで提供される」言語であればどれでも使用できます。
「リポジトリーをフォーク」します。
新規のフォークにリダイレクトされます。
- フォーク用のクローン URL をコピーします。
- ローカルのマシンにリポジトリーをクローンします。
4.4. プロジェクトの作成
アプリケーションを作成するには、最初に新規プロジェクトを作成してから、InstantApp テンプレートを選択します。そこから、OpenShift Container Platform はビルドプロセスを開始し、新規デプロイメントを作成します。
- ブラウザーから OpenShift Container Platform の Web コンソールに移動します。Web コンソールは、自己署名証明書を使用するので、プロンプトが表示されたら、ブラウザーの警告を OK で進みます。
- 管理者が推奨するユーザー名とパスワードを使用してログインします。
- 新規プロジェクトを作成するには、New Project をクリックします。
- 新規プロジェクトの一意の名前、表示名および説明を入力します。
Create をクリックします。
web コンソールの welcome 画面が読み込まれます。
4.5. アプリケーションの作成
Select Image または Template ページでは、公開されている git リポジトリーまたは、テンプレートのどちらをもとに作成するかのオプションが表示されます。
- 新規プロジェクトを作成しても、自動的に、Select Image または Template ページに自動的にリダイレクトされない場合には、Add to Project をクリックする必要がある場合があります。
- Browse をクリックしてから、ドロップダウンリストから ruby を選択します。
- ruby:latest ビルダーイメージをクリックします。
-
アプリケーションの 名前 を入力して、Git リポジトリーの URL を入力します。Git リポジトリーの URL は
https://github.com/<your_github_username>/ruby-ex.git
です。 - オプションで、Show advanced routing, build, and deployment options をクリックします。ただし、デフォルトでは、この例のアプリケーションでは自動的にルート、Webhook トリガー、ビルド変更トリガーが作成されます。
Create をクリックします。
注記作成後に、Web コンソールからこれらの設定の一部を変更できます。手順は、Browse、Builds をクリックしてビルドを選択してから、Actions をクリックして Edit または Edit YAML を選択します。
アプリケーションの作成には時間がかかる可能性があります。Web コンソールの Overview ページでは、作成した新規リソースを表示し、ビルドやデプロイメントの進捗を確認できます。
Ruby pod が作成されても、pod のステータスは保留中と表示されます。次に、Ruby pod が起動し、新たに割り当てられた IP アドレスが表示されます。Ruby pod が実行されると、ビルドが完了します。
4.6. アプリケーションの実行の確認
DNS が正しく設定されている場合には、新規アプリケーションは Web ブラウザーからアクセスできます。アプリケーションにアクセスできない場合には、システム管理者にお問い合わせください。
新規アプリケーションを表示するには以下を実行します。
-
Web コンソールでは、Overview ページを表示して、アプリケーションの Web アドレスを判断します。たとえば、SERVICE: RUBY-EX で、
ruby-ex-my-test.example.openshiftapps.com
とよく似た内容が表示されます。 - 新規アプリケーションの Web アドレスに移動します。
4.7. 自動化ビルドの設定
OpenShift Container Platform GitHub リポジトリー からこのアプリケーションのソースコードをフォークしたので、フォークしたリポジトリーにコードの変更がプッシュされるたびに、Webhook を使用して自動的にアプリケーションのリビルドをトリガーできます。
アプリケーションの Webhook を設定するには以下を実行します。
- Web コンソールで、作成したアプリケーションが含まれるプロジェクトに移動します。
- Browse タブをクリックしてから Builds をクリックします。
- ビルド名をクリックしてから、Configuration タブをクリックします。
- GitHub webhook URL の横にある をクリックして、webhook payload ペイロード URL をコピーします。
- GitHub のフォークされたリポジトリーに移動してから Settings をクリックします。
- Webhooks & Services をクリックします。
- Add webhook をクリックします。
- webhook URL を Payload URL フィールドにコピーします。
- Add webhook をクリックして保存します。
GitHub は、ping のペイロードを OpenShift Container Platform サーバーに送信して、通信が成功したことを確認します。Webhook URL の横に緑のチェックマークが表示された場合には、正しく設定されています。チェックマークの上にマウスをかざして、最終配信のステータスを表示します。
フォークされたリポジトリーにコード変更をプッシュする次回のタイミングで、アプリケーションが自動的に再ビルドされます。
4.8. コード変更の記述
ローカルで作業して、アプリケーションに変更をプッシュします。
- ローカルマシンで、テキストエディターを使用して、ruby-ex/config.ru ファイルのサンプルアプリケーションのソースを変更します。
-
コードの変更をアプリケーション内から表示できるようにします。 たとえば、行 229 で、タイトルを
Welcome to your Ruby application on OpenShift
からThis is my Awesome OpenShift Application
に変更してから、変更を保存します。 Git に変更をコミットして、フォークに変更をプッシュします。
webhook が正しく設定されている場合には、変更をもとに、アプリケーションは即座にリビルドされます。リビルドに成功した場合には、以前に作成したルートを使用すると、更新したアプリケーションが表示されます。
次に、必要な作業はコードの更新をプッシュするだけで、OpenShift Container Platform が残りを行います。
4.8.1. イメージの手動リビルド
Webook が機能しない場合や、ビルドに失敗して、コードを変更せずにビルドを再起動する場合には、イメージを手動でリビルドすると便利です。直近にコミットされた変更をもとに、イメージを手動でリビルドするには、フォークしたリポジトリーに移動します。
- Browse タブをクリックしてから Builds をクリックします。
- ビルドを探し出して、Start Build をクリックします。