[[FrontPage]]
 
 ** wakame 0.5.1 の ubuntu-server 10.04 へのインストール [#a7cb7894]
 
 [[wakameのubuntu用セットアップスクリプト:https://github.com/hansode/wakame-fuel-builder/blob/master/ubuntu/10.04/01_setup-base.sh]]が存在する。
 
 しかしながら、このまま使用したのでは以下の二つのエラーを出してインストールが完了しない。
 
  ERROR:  Error installing multi_json:
          multi_json requires RubyGems version >= 1.3.6
  ERROR:  Error installing jeweler:
          bundler requires RubyGems version >= 1.3.6
 
 両者ともにgemのversion1.3.6を要求する。
 apt-getで提供されるgemはrubygems1.8 rubygems1.9 rubygems1.9.1であり、全てversionが1.3.5である。
 
 wakameとの依存性により以下のパッケージが使用する。
 multi_json を rubigen が使用
 bundler を jeweler が使用
 
 解決するためにwakameを入れる前にmulti_jsonに依存しないversionのrubigenとbundlerに依存しないversionのjewelerをインストールしておく。
  /usr/bin/gem install rubigen --version 1.5.5 --no-rdoc --no-ri
  /usr/bin/gem install jeweler --version 1.4.0 --no-rdoc --no-ri
 
 この後で
  /usr/bin/gem install wakame --no-rdoc --no-ri
 とすればwakameのインストールが完了する。(最後にbundlerが無いというエラーが出るがwakame自体はインストールされている)
 
 パッチとしては以下のようになる。
 (ec2_ami_toolsは手動でインストールしたので除外してある)
 (aptのリポジトリのmultiverse追加はしないのでコメントアウト)
 (まだテスト状況なので/etc/init.dには登録しない)
 (gemコマンドをフルパスで使用しているのはruby1.9.2とgem1.3.7が入っており、それが優先されてしまうため)
 
  --- 01_setup-base.sh   2011-10-09 00:49:54.752028837 +0900
  +++ wakame-setup-base.sh       2011-10-09 04:26:13.302028366 +0900
   @@ -11,12 +11,11 @@
     ruby ruby1.8-dev rdoc1.8 ri1.8 rubygems1.8
     rabbitmq-server
     make g++ libopenssl-ruby libsqlite3-dev
   - ec2-ami-tools
    "
    
   -[ -f /etc/apt/sources.list ] && {
   -  perl -pi -e 's, multiverse,,g; s,$, multiverse,' /etc/apt/sources.list
   -}
   +#[ -f /etc/apt/sources.list ] && {
   +#  perl -pi -e 's, multiverse,,g; s,$, multiverse,' /etc/apt/sources.list
   +#}
    apt-get update
    apt-get -y install ${pkgs}
    
   @@ -31,9 +30,11 @@
    # wakame installation
    echo "#Setting up wakame ..."
    su - wakame -c "
   -  gem list | grep -q -w wakame || {
   +  /usr/bin/gem list | grep -q -w wakame || {
        #gem install /tmp/wakame-0.5.1.gem --no-rdoc --no-ri
   -    gem install wakame --no-rdoc --no-ri
   +    /usr/bin/gem install rubigen --version 1.5.5 --no-rdoc --no-ri
   +    /usr/bin/gem install jeweler --version 1.4.0 --no-rdoc --no-ri
   +    /usr/bin/gem install wakame --no-rdoc --no-ri
      }
   "
    [ -d /home/wakame/wakame.proj ] || {
   @@ -57,14 +58,14 @@
    EOS
    
    # add service
   -[ -L /etc/init.d/wakame-master ] || {
   -  ln -s /home/wakame/wakame.proj/config/init.d/wakame-master /etc/init.d/
   -  /usr/sbin/update-rc.d wakame-master defaults 40
   -}
   -[ -L /etc/init.d/wakame-agent ] || {
   -  ln -s /home/wakame/wakame.proj/config/init.d/wakame-agent /etc/init.d/
   -  /usr/sbin/update-rc.d wakame-agent  defaults 41
   -}
   +#[ -L /etc/init.d/wakame-master ] || {
   +#  ln -s /home/wakame/wakame.proj/config/init.d/wakame-master /etc/init.d/
   +#  /usr/sbin/update-rc.d wakame-master defaults 40
   +#}
   +#[ -L /etc/init.d/wakame-agent ] || {
   +#  ln -s /home/wakame/wakame.proj/config/init.d/wakame-agent /etc/init.d/
   +#  /usr/sbin/update-rc.d wakame-agent  defaults 41
   +#}
    
    # ssh key pair
    [ -d /home/wakame/config ] || {
 
 しかしこのままではwakame-masterもwakame-agentも起動しない。
 どちらもrabbitmq-serverが起動していないと動かないらしい。
 とりあえずwakame-masterとwakame-agentを起動できるようにしたパッチを作成。
 
 #blikimore()
 
 ec2-ami-toolsは手動で入れたので除外(multiverseならaptで入る)
 apparmorは消さない(通信に影響が出たら消す)
 環境を変えたのでgemがフルパスである必要はなくなった。
 rabbitmq-serverの起動順はwakame-master(40)の前(39)、終了順はwakame-agent(41)の後(42)
 
  --- 01_setup-base.sh    2011-10-09 00:49:54.752028837 +0900
  +++ wakame-setup-base.sh        2011-11-09 18:50:14.526578001 +0900
  @@ -11,12 +11,8 @@
    ruby ruby1.8-dev rdoc1.8 ri1.8 rubygems1.8
    rabbitmq-server
    make g++ libopenssl-ruby libsqlite3-dev
  - ec2-ami-tools
   "
   
  -[ -f /etc/apt/sources.list ] && {
  -  perl -pi -e 's, multiverse,,g; s,$, multiverse,' /etc/apt/sources.list
  -}
   apt-get update
   apt-get -y install ${pkgs}
   
  @@ -32,7 +28,8 @@
   echo "#Setting up wakame ..."
   su - wakame -c "
     gem list | grep -q -w wakame || {
  -    #gem install /tmp/wakame-0.5.1.gem --no-rdoc --no-ri
  +    gem install rubigen --version 1.5.5 --no-rdoc --no-ri
  +    gem install jeweler --version 1.4.0 --no-rdoc --no-ri
       gem install wakame --no-rdoc --no-ri
     }
   "
  @@ -83,17 +80,17 @@
     cat /home/wakame/config/root.id_rsa.pub >> /root/.ssh/authorized_keys
   }
   
  -# disable apparmor
  -[ -x /etc/init.d/apparmor ] && {
  -  /etc/init.d/apparmor stop
  -  /usr/sbin/update-rc.d -f apparmor remove
  -}
  -
  -# disable apparmor
  +# disable rabbitmq
   [ -x /etc/init.d/rabbitmq-server ] && {
     /etc/init.d/rabbitmq-server stop
     /usr/sbin/update-rc.d -f rabbitmq-server remove
  +  # starts before wakame and stop after wakame
  +  /usr/sbin/update-rc.d rabbimq-server defaults 39 42
  +  /usr/sbin/update-rc.d rabbitmq-server defaults 39 42
   }
   [ -d /var/lib/rabbitmq/mnesia ] && {
     rm -rf /var/lib/rabbitmq/mnesia
   }
  +
  +# enable rabbitmq
  +/etc/init.d/rabbitmq-server start
  +
 
 どうもデフォルトではus-eastしか対応していないらしい。
 Tokyoに対応させるために以下の変更を加えた。
 
  /home/wakame/wakame.proj/config/environments/ec2.rb:4:
  config.aws_endpoint='https://ap-northeast-1.ec2.amazonaws.com/'
 
  /home/wakame/.gem/ruby/1.8/gems/wakame-0.5.1/lib/wakame/master_managers/cluster_manager.rb:130:
    ec2 = RightAws::Ec2.new(Wakame.config.aws_access_key, Wakame.config.aws_secret_key, {:endpoint_url=>Wakame.config.aws_endpoint})
 
  /home/wakame/.gem/ruby/1.8/gems/wakame-0.5.1/lib/wakame/service.rb:133:
    ec2 = RightAws::Ec2.new(Wakame.config.aws_access_key, Wakame.config.aws_secret_key, {:endpoint_url=>Wakame.config.aws_endpoint})
 
  /home/wakame/.gem/ruby/1.8/gems/wakame-0.5.1/lib/wakame/actions/shutdown_vm.rb:43:
    ec2 = RightAws::Ec2.new(Wakame.config.aws_access_key, Wakame.config.aws_secret_key, {:cache=>false, :endpoint_url=>Wakame.config.aws_endpoint})
 
  /home/wakame/.gem/ruby/1.8/gems/wakame-0.5.1/lib/wakame/actions/launch_vm.rb:16:
    ec2 = RightAws::Ec2.new(Wakame.config.aws_access_key, Wakame.config.aws_secret_key, {:cache=>false, :endpoint_url=>Wakame.config.aws_endpoint})
 
 これでwakameadm statusでwakame-agentが認識されるようになった。
 ただし、service(apacheとか)の起動や新インスタンスのlaunchなどはできなかった。
 もっとソースをチェックするかwakameのupdateを待つか・・・
 
 #blikifooter()

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

アークウェブのサービスやソリューションはこちら