HowToCreateDbclsGalaxyAmiImage

提供:TogoWiki

2011年3月8日 (火) 08:48時点におけるT-hatakeyama (トーク | 投稿記録)による版
(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内, 検索

目次

DBCLS Galaxy用AMIイメージの作り方

既存のUbuntuのAMIイメージからDBCLS Galaxyのイメージを作成する方法を以下に示すsimesu。

セキュリティグループ

EC2イメージウィザード内ではカスタムポートを含んだセキュリティグループが作成できないため、事前にセキュリティグループを作成しておく。

- 名前「DBCLS Galaxy Security Group」 - SSH, tcp, 22, 22, 0.0.0.0/0 - - , tcp, 37180, 37180, 0.0.0.0/0

EC2のイメージ作成

- Community AMIsで「ami-c81f4f8d」を検索して選択 - Instance TypeはSmall - 鍵は新規に作っても既存のものでもどちらでもOK - セキュリティグループでは「default」と「DBCLS Galaxy Security Gropu」を選択

作成した鍵(.pem)を~/.ssh/へ置いておく

- 権限を「自分のみ読み込み可能」にしておく -- chmod 400 ~/.ssh/t-hatakeyama_uswest.pem

SSHで接続

- 起動したインスタンスのPublic DNSの値を調べる -- ec2-175-41-197-212.ap-northeast-1.compute.amazonaws.com - ssh -i ~/.ssh/t-hatakeyama_uswest.pem ubuntu@ec2-175-41-197-212.ap-northeast-1.compute.amazonaws.com

mkdir

{{{ $ sudo chmod 777 /opt/ $ mkdir -p /opt/services/galaxy/development $ mkdir -p /opt/services/galaxy/middleware $ sudo chmod 755 /opt/ }}}

インストールに必要なツール

{{{ $ sudo aptitude update $ sudo aptitude install gcc $ sudo aptitude install g++ $ sudo aptitude install subversion $ sudo aptitude install mercurial $ sudo aptitude install rake $ sudo aptitude install postgresql }}}

Galaxyツールに必要なミドルウェア

{{{ $ sudo aptitude install emboss $ sudo aptitude install r-base-core $ sudo aptitude install ruby1.8-dev(json) $ sudo aptitude install libxml2-dev(nokogiri) $ sudo aptitude install libxslt-dev(nokogiri) }}}

(おまけ)全部まとめた

{{{ $ sudo aptitude install gcc g++ subversion mercurial rake emboss r-base-core ruby1.8-dev libxml2-dev libxslt-dev postgresql }}}

RubyGems

{{{ $ wget http://rubyforge.org/frs/download.php/70696/rubygems-1.3.7.tgz $ tar xf rubygems-1.3.7.tgz $ cd rubygems-1.3.7/ $ sudo ruby setup.rb $ hash -r $ gem1.8 env $ sudo gem1.8 install json $ sudo gem1.8 install nokogiri $ sudo gem1.8 install soap4r $ sudo gem1.8 install rubyrdf $ sudo gem1.8 install mechanize $ sudo gem1.8 install rdf_context $ sudo gem1.8 install fastercsv $ sudo gem1.8 install twitter4r $ sudo gem1.8 install sqlite3-ruby $ sudo gem1.8 install oauth }}}

(全部まとめた)

{{{ $ sudo gem1.8 install json nokogiri soap4r rubyrdf mechanize rdf_context fastercsv twitter4r sqlite3-ruby oauth --no-ri --no-rdoc }}}

postgresql

{{{ (まだ未インストールなら) $ sudo aptitude install postgresql

  1. ユーザpostgresのパスワードを変更

$ sudo passwd postgres (適当な新しいパスワードを入力する)

  1. postgresユーザになる

$ su postgres

  1. ユーザubuntuをDBへアクセスできるようにする

$ createuser ubuntu (スーパーユーザにしておく)

  1. postgresユーザから抜ける

$ exit

  1. データベース作成

$ createdb galaxy

  1. アクセス用のユーザの作成

$ createuser -P kusako (パスワードは kusako) }}}


httpd

{{{ $ wget http://archive.apache.org/dist/httpd/httpd-2.2.11.tar.bz2 $ tar xf httpd-2.2.11.tar.bz2 $ cd httpd-2.2.11/ $ ./configure --prefix=/opt/services/galaxy/middleware/httpd-2.2.11 --enable-mods-shared=most --enable-proxy $ make $ make install }}}

libopkele

{{{ $ sudo aptitude install libopkele-dev }}}

mod_auth_openid

{{{ $ wget http://butterfat.net/releases/mod_auth_openid/mod_auth_openid-0.5.tar.gz $ tar xf mod_auth_openid-0.5.tar.gz $ cd mod_auth_openid-0.5 $ ./configure --prefix=/opt/services/galaxy/middleware/httpd-2.2.11 --with-apr-config=/opt/services/galaxy/middleware/httpd-2.2.11/bin/apr-1-config --with-apxs=/opt/services/galaxy/middleware/httpd-2.2.11/bin/apxs --with-pic $ make $ make install }}}


DBCLS Galaxyをインストールする

{{{ $ cd /opt/services/galaxy/development $ svn co http://kiban.dbcls.jp/svn/eiwa19pj/dbcls_galaxy_patch/trunk dbcls_galaxy_patch --username t-hatakeyama --password t-hatakeyama $ cd dbcls_galaxy_patch $ rake update $ cat > /opt/services/galaxy/middleware/httpd-2.2.11/conf/stage.conf <Location "/">

   AuthOpenIDEnabled On
  1. AuthOpenIDServerName http://galaxy.dbcls.jp
  2. AuthOpenIDTrusted ^https://openid.dbcls.jp/server$
   AuthOpenIDLoginPage /login

</Location> $ rake setup_development }}}

これでApacheが起動してるはずなので、Galaxyも起動してあげる。


Galaxyの設定

が、その前にGalaxyの設定をちょっと修正する

{{{ vi /opt/services/galaxy/development/current/universe_wsgi.ini


database_connection = postgres://kusako:kusako@localhost:37654/galaxy ↓ database_connection = postgres://kusako:kusako@localhost:5432/galaxy


}}}

Galaxyを起動

{{{ $ rake run_galaxy }}}


仮想マシン起動時にGalaxyも起動するようにする

Galaxyのpidの置き場所を作成

mkdir -p /opt/services/galaxy/development/current/tmp/pids


起動スクリプトを作成

起動スクリプトを /etc/init.d/ へ作成する。

{{{ $ sudo vi /etc/init.d/galaxy $ ls -la /etc/init.d/galaxy -rw-r--r-- 1 root root 1338 2010-11-15 08:27 /etc/init.d/galaxy $ sudo chmod 755 /etc/init.d/galaxy }}}


ソースはこんな感じ。

stop

作成した起動スクリプトを現在のランレベルへ登録する

まずはランレベルを確認する。

{{{ $ runlevel N 2 }}}

ランレベルは2なので、/etc/rc2.d/ へ起動スクリプトを登録する

{{{ $ cd /etc/rc2.d/ $ sudo ln -s ../init.d/galaxy S99galaxy }}}

また、シャットダウン時にGalaxyを終了させるため、ランレベル6(/etc/rc6.d/)へ終了スクリプトを登録する

{{{ $ cd /etc/rc6.d/ $ sudo ln -s ../init.d/galaxy K11galaxy }}}


AMIイメージの作成

- EC2のインスタンスを停止して、「Instance Actions - Instance Management - Create Image(EBS AMI)」を選択 - ImageNameに「dbcls-galaxy-2011-03-07」、descriptionに「dbcls galaxy」と入力して「Create This Image」を押す - しばらく待つとAMIsに出てくる(10分くらい?)