せっかくVagrantを入れたのでOpenShift-Originで遊んでみる

Redhatが提供するOpenShiftというPaaS型クラウドがありまして、先日正式サービスを開始しました。

OpenShiftといえばCloudFoundryと同じようにオープンPaaSとか呼ばれたりしている、要はソースコードが公開されているPaaSです。ソースコードが公開されているため、当然ローカルに同じような環境を作ることができます。

OpenShiftではオンプレミスにOpenShiftの環境を作成するためのコンポーネントとしてOpenShift-Originが提供されています。以前は自前で環境を用意するのはかなり面倒で、もっぱらLiveCDを用いた環境構築が行われていたようですが、最近ではVagrantを用いて簡単にVMインスタンスが作成できるようになっています。
(※インスタンス内部のセットアップにはpuppetが使われています。)

今回はVagrantを利用してOpenShift-Originの環境を構築し、簡単なNode.jsアプリケーションを走らせてみます。

インスタンスの構築

基本的には以下のページにしたがって構築を行います。
Installing OpenShift Origin using Vagrant

今回は以下のような環境で構築を行いました。

手順は以下のようになります

  1. OpenShift Origin Vagrant Templateをダウンロードして展開する

    curl -s https://nodeload.github.com/openshift/puppet-openshift_origin/legacy.tar.gz/master | tar zxf -

  2. 展開したフォルダ内にあるtestディレクトリに移動し、コマンドを実行する

    vagrant up

なんとこれだけです。若干時間がかかりますが、fedra ベースのOpenShift-Originが構成されます。無事に構築が完了したら rhc コマンドのセットアップを行い、アプリケーションを生成できるようにしましょう。

> vagrant ssh
$ rhc setup
...
Connect without checking the certificate? (yes|no): yes
Login to brocker.example.com: admin
Password: admin
...
Generate a token now? (yes|no): yes
...
Your public SSH key must be uploaded to the OpenShift Server to access code. Upload now? (yes|no): yes
...
Please enter a namespace (letters and numbers only) |<none>|: localns
...

これで rhc コマンドのセットアップも完了です。実際に rhc コマンドを利用してサンプルアプリを作成してみましょう。

$ rhc app create samplenode nodejs-0.6

はい、失敗しました。
なんでか分かりませんが、node.js用のカートリッジが用意されていないみたいです。たとえば以下のコマンドを実行してみましょう。

$ rhc cartridge list

Node.jsないですね…。しょうがないのでgithubから持ってくることにします。 新しいカートリッジの追加方法はこのスライドに書いてありました。

$ oo-admin-cartridge -a install -s cartridge

というわけでopenshiftのリポジトリからソースを落としてnode.jsのカートリッジを追加します。

$ cd /usr/local/src
$ git clone https://github.com/openshift/origin-server.git
$ cp origin-server/cartridges/openshift-origin-cartridge-nodejs /usr/libexec/openshift/cartridges/v2
$ cd /usr/libexec/openshift/cartridges/v2
$ mv openshift-origin-cartridge-nodejs nodejs
$ cp nodejs/metadata/menifest.yml.0.6 nodejs/metadata/manifest.yml
$ oo-admin-cartridge -a install -s nodejs

念のためいったんサーバーを再起動して、再度コマンドを実行します。

$ rhc app create samplenode nodejs-0.6

これでアプリケーションのひな形も完成しました。 http://samplenode-localns.example.com にアクセスするとアプリケーションが稼動していることを確認することができます。(ホストマシンから接続するにはブリッジ接続する必要がありそう)
やりましたね :)

Vagrant: Up and Running

Vagrant: Up and Running

Vagrant: Up and Running

Vagrant: Up and Running