ブログ アーカイブ

自己紹介

本ブログをご覧いただき、ありがとうございます。
株式会社ヒューマンインタラクティブテクノロジー(HIT)の技術グループ担当者です。

弊社ホームページ

2015年4月28日火曜日

OpenShiftへローカルで作成したWebアプリケーションをデプロイする(Windows編)

最近は無料でお試し出来る便利なPaaSが増え、作成したWebアプリケーションを一先ずの状態でインターネットへ公開する手段としてそういったPaaSを使う機会が増えてきました。

今回はそんなPaaSの中からRedHatが提供しているOpenShiftにアプリケーションサーバとデータベースを建ててローカルのウェブアプリケーションをデプロイするまでをさらりと書いてみます。


アカウント登録

まずはOpenShiftのサイトへアクセスしアカウント登録します。
https://www.openshift.com/
Sign Upして確認メールでVerifyする一般的な流れなので特に悩むことはないと思いますが、Google Chromeでは何故かたまに失敗するのでFireFoxやIEでの登録をオススメします。

OpenShift上の環境構築

今回以下の構成で作ります。
Webアプリケーションサーバ WildFly Application Server 8.2.0.Final
RDBMS PostgreSQL9.2
  1. ログインして「Applications」タグを選択
  2. 「Add Application...」ボタンを押下
  3. 利用したいアプリケーションの構成を選択。
    今回の場合は「WildFly Application Server 8.2.0.Final」
  4. アプリケーション登録画面でアプリケーションの情報を入力
    • Public URL 1つ目
      これがアプリケーション名になります。
    • Public URL 2つ目
      ドメイン名です、初回のみ聞かれます。重複しないドメインを指定してください。
    • Source Code
      Githubなどにソース登録している場合は入力。ローカルのアプリをデプロイしたいだけの場合は未入力でOK
    • Scaling
      負荷が上がった際にscaleしてサーバインスタンス(OpenShiftの場合Gear)増やすかどうかの設定。
      無料枠では3Gearまでしか使う事が出来ずスケールされると困るのでNo scaling
    • Region
      OpenShift環境を作るAWSのリージョン設定。デフォルトでOK
  5. 「Create Application」ボタンを押下
    裏で環境構築スクリプトがゴリゴリ動くので結構待ちます
  6. 「Will you be changing the code of this application?」と聞かれますが、どっちにせよrhcのインストールが必要になるので今は「Not now, continue」を選択して先に進みます。
  7. この段階でWildFlyが乗ったOpenShiftの環境が作成されました。
    画面に表示されるUsername, PasswordはWildFlyの管理コンソールへログインするために必要です。メモしておきましょう。
    後述するrhcツールをインストールして「rhc port-forward [アプリ名]」コマンドを打つとローカル環境の特定ポートがOpenShiftへポートフォワーディングされローカル環境でOpenShiftの環境を弄られるようになります。
  8. 次にアプリケーションへPostgreSQLを追加します。
    このデータベースはWebアプリケーションサーバと同じGearの上に作られるためGearを消費しません。
  9. 「Add PostgreSQL9.2」を選択
  10. 「Add Cartridge」を選択
  11. 表示されるRoot User,Root Password, Database Nameは作成したデータベースへのアクセスに使用します。
    後述するrhcツールの「rhc port-forward [アプリ名]」コマンドでポートフォワードすればローカルからデータベースに接続出来ます。
    ちなみにこの段階でWildFlyへ自動的に
    • Name:PostgreSQLDS
    • JNDI:java:jboss/datasources/PostgreSQLDS
    のDatasorceが作成されています。
    データベースを使用するアプリ側のDatasorceへこのJNDIを使用すればデータベース側の設定を特に気にする必要なく疎通出来ます。
環境構築は以上。楽ですね。


管理ツール(rhc)のインストール

OpenShiftの管理を行うためにはrhcツールを使用します。
rhcはRubyで動作し、アプリケーションのデプロイにはgit環境が必要になるので双方をインストールする所から書いていきます。

Rubyのインストール
Windowsでは「RubyInstaller」を利用すると簡単にRubyのインストールが行えます。
「RubyInstaller」を利用する際には「Rubyの実行ファイルへ環境変数PATHを設定する」チェックを付けてPATHを通さないとコマンドプロンプトで使えません。

gitのインストール
Windows環境でgitを使う場合はCUI操作用に「Git for Windows」GUI操作用に「SourceTree for Windows」辺りをオススメします。
「Git for Windows」インストールの途中で出てくる「Adjusting your PATH environment」では「Run Git from the Windows Command Prompt」を選択するとPATHが通りコマンドプロンプトでgitコマンドが使えるようになります。

rhcのインストール
Rubyがインストールされている場合は
  • gem install rhc
でインストールが行えます。


OpenSiftへウェブアプリケーションをデプロイする。

デプロイのためにはOpenShiftへローカルマシンのSSHキー登録、OpenShift上に自動で生成されたgit環境のクローンが必要です。
ローカルマシンのSSHキー生成からOpenShiftへの登録
以下のコマンドを発行します。
  • rhc setup
  • hostnameは「openshift.redhat.com」を使用するのでそのままEnter
  • OpenShiftのアカウント入力を求められた場合はアカウントを入力
  • ローカルマシンの公開SSH keyをOpenShiftのアクセスコードへアップロードしますか?と聞かれるので「yes」を入力

これでローカルマシンからrhcコマンドで自由にOpenShift環境へアクセス出来るようになります。

作成したOpenShift環境のgitをクローン
まずは以下のコマンドでgitリポジトリのURLを取得しておきます。
  • rhc show-app [アプリケーション名]
    ここで指定するアプリケーション名はOpenShiftで環境構築時に指定したアプリケーション名です。
上記コマンドで「Deployment: auto (on git push)」となっているためgitへpushされた時点で自動デプロイされることがわかります。

gitクローンを作成する任意のフォルダを作成し、コマンドプロンプトでカレントディレクトリをそのフォルダ以下に移動してから以下のコマンドを実行します。
  • git clone [Git URL]
作成済みのウェブアプリケーションをOpenShiftへデプロイ
今回WildFlyのQuickStartから「kitchensink-angularjs」を使用しました。
WildFlyのQuick Startにあるサンプルアプリケーションのpom.xmlにはOpenShiftのprofileも既に記述されているので、ソースの入れ替えをして「persistence.xml」のDatasourceだけ「java:jboss/datasources/PostgreSQLDS」に変更すればそのままビルドからデプロイまで出来ます。

以下のコマンドを実行します。
  • git add -A
  • git commit -m "first deploy"
  • git push
ローカルのウェブアプリケーションがOpenShift上のgitへpushされ、自動的にビルドとデプロイが走ります。
ビルドとデプロイに成功すれば公開完了です。
公開したサンプルアプリケーション↓
http://jbosswildfly-hittechblog.rhcloud.com/

warファイルで固めたウェブアプリケーションをデプロイしたい場合は「deployments」フォルダ以下に配置して上記のコマンドを実行してください。
「deployments」フォルダ以下のファイルは直接デプロイされます。

ちなみに自動でデプロイが走ってほしくない時は以下のコマンドで設定を変更できます。
  • rhc app-configure [アプリケーション名] --no-auto-deploy



おまけ:rhc管理コマンド

ポートフォワーディング:WildFlyコンソール、データベースの確認
以下コマンドを実行するとローカル環境のポートへOpenShiftの環境をポートフォワーディング出来ます。
  • rhc port-forward [アプリケーション名]
例えば上記の場合、WildFly管理コンソールを開きたい時は
  • http://localhost:9990
postgreSQLに接続したい時は
  • http://localhost:5433
で接続できます。

サーバログのtail
サーバログのtailをしたい場合は以下のコマンドを発行します。
  • rhc tail [アプリケーション名]
その他諸々
https://developers.openshift.com/en/managing-common-rhc-commands.html