[Ruby] Chefで”application_java”クックブックを使ってTomcatにwarファイルをデプロイする際にはまったこと

2014年5月13日火曜日

Ruby 開発

t f B! P L C

2013-10-21 20.28.59

猫と一緒にガジェットライフ♪ムチャ(@mutoj_rdm821)です。

前回に続き、ChefでJavaアプリケーションのデプロイを行うクックブック”application_java”を使っていたときに遭遇した問題とその解決方法です。

前回記事はこちら↓

[Ruby] Chefで”database”クックブックを使ってCentOSにPostgreSQLを構成する際にはまったこと | 羽根帽子の太公望



クックブック”application_java”とは

Tomcatへのwarファイルのデプロイを自動化するものです。

どうも一般的にはChefのお仕事はミドルウェアの構成までで、その上で動くアプリケーションの構成については別のツール(Capistrano:カピストラーノなど)を使うようですが、今回は事情あってChefで全て行うというお達しでした。

クックブックは公式のコミュニティで配布されています。

そこからリンクされているgithubの方へ行くと、サンプルレシピが書いてあります。

application 'my-app' do
  path         '/usr/local/my-app'
  repository   '/nas/distro/my-app.war'
  revision     '...'
  scm_provider Chef::Provider::File::Deploy
  java_webapp do
    database_master_role 'database_master'
    database do
      driver     'org.gjt.mm.mysql.Driver'
      database   'name'
      port       5678
      username   'user'
      password   'password'
      max_active 1
      max_idle   2
      max_wait   3
    end
  end
  tomcat
end

別途”java”、”tomcat”、”application”クックブックも必要になります。これらもコミュニティで配布されています。



謎のエラーが発生

サンプル通りにchef-soloを実行すると、こんなエラーが出ました。

Error executing action `deploy` on resource 'deploy_revision[solr]'

コードを探ってもよくわからず・・・。



解決方法

色々探し回った結果、解決方法を見つけました。

配布元のリポジトリから別の人がforkしたリポジトリの、さらにtestというブランチに対応済みのコードがアップされていました。

こちらのクックブック一式を使うと正常にデプロイができました。

クックブックによっては、公式のコミュニティで配布されているものでも長いこと放置されていたりするので注意が必要です。かといって、bashリソースとかでシェルスクリプトをゴリゴリ書いてしまうと汎用性が失われるので、難しい所です。


今度技術評論社からChefの本が出るようなので、利用している人はチェックしてみてはいかがでしょうか。

それではみなさま良きガジェットライフを(´∀`)ノ



▼ブログを気に入っていただけたらRSS登録をお願いします!
▼ブログランキング参加中!応援よろしくお願いします。

ブログ内検索

自己紹介

猫とガジェットが好きなJava屋さんです。うつ病で休職後退職し、1年半の休養後に社会復帰。・・・が、いろいろあって再び退職。さらに1年休職の後に復帰して、なんとかSE続けてます。茶トラのすずと一緒に生活していましたが、2014年9月4日に亡くなって1人に。

より詳細なプロフィールはこちら↓

↓更新情報を受け取るにはフォローをお願いします!

Instagramでフォロー

※ヘッダー及びアイコンで使用しているドロイド君は、googleが作成、提供しているコンテンツをベースに複製したものです。

▼ココナラでメンターサービスを販売しています。招待コード「C3VG3」で1000ポイントもらえます。
▼欲しい物リスト

ブログ アーカイブ

QooQ