OpenShiftを使ってみる - 2

OpenShiftのアカウント登録からデプロイ用リポジトリのCloneまでが前回の手順ですが、今度はDBの作成を行います。

コマンドラインクライアントツールの導入(必要であれば)

公式ドキュメントを参照のこと
http://docs.redhat.com/docs/en-US/OpenShift/2.0/html-single/Getting_Started_Guide/index.html

OpenShiftClientToolをインストールする

#(その1をクリアしているならきっと入ってる…!)
$ sudo apt-get install git-core

# Rubyインタプリタを入れる。自力コンパイルでもRVMでも何でも良い。
$ sudo apt-get install ruby1.9.1
$ sudo apt-get install rubygems

# RubyGemでOpenShiftClientToolを入れる。
# sudoは環境に応じて。
$ sudo gem install rhc

rhcコマンドのPATHが通っていなければ~/.profile or ~/.bash_profileに追記

vi .profile
export PATH=/var/lib/gems/1.8/bin:$PATH

データベースを追加する(PostgreSQL8.4)

コンソール画面からアプリケーションを選択する。

「Add +」よりカートリッジの追加画面へ。

PostgreSQL Database 8.4」を選択する。

「Add Catridge」でカートリッジを追加する。

完了画面が表示されるので、接続情報などを確認する。
また、OpenShiftクライアントコンソールでのPostgreSQLの操作方法もあるのであわせて確認する。

You can get a list of cartridges by running

rhc app cartridge list

You can manage the cartridge by running one of these commands

rhc app cartridge start -a $APP_NAME -c postgresql-8.4
rhc app cartridge stop -a $APP_NAME -c postgresql-8.4
rhc app cartridge restart -a $APP_NAME -c postgresql-8.4
rhc app cartridge reload -a $APP_NAME -c postgresql-8.4
rhc app cartridge status -a $APP_NAME -c postgresql-8.4

You can remove the cartridge by running the following command.
Warning: make sure you've backed up any data you wish to keep before running this command

rhc app cartridge remove -a $APP_NAME -c postgresql-8.4

JBossのデータソース設定を確認する

OpenShiftからクローンしたデプロイ用のローカルリポジトリに移動する。

cd $LOCAL_REPO/.openshift/config
vi standalone.xml

すぐに利用できる形でデータソースが設定されている。必要に応じてJNDI名を変更等する。
環境変数はOpenShift側ですでに持っているため、このままで動作する。

<datasource jndi-name="java:jboss/datasources/PostgreSQLDS" enabled="${postgresql.enabled}" use-java-context="true" pool-name="PostgreSQLDS" use-ccm="true">
  <connection-url>jdbc:postgresql://${env.OPENSHIFT_DB_HOST}:${env.OPENSHIFT_DB_PORT}/${env.OPENSHIFT_GEAR_NAME}</connection-url>
  <driver>postgresql</driver>
  <security>
    <user-name>${env.OPENSHIFT_DB_USERNAME}</user-name>
    <password>${env.OPENSHIFT_DB_PASSWORD}</password>
  </security>
</datasource>

これでDBの利用準備が完了しました。