2015年5月30日土曜日

chef(berkshelf)でelasticsearchをインストール

アプリにelasticsearchを導入したので忘備録的なメモ。
以前、この記事で利用方法をまとめましたが、こちらもナレッジを追加修正して随時更新していきます。
なお、今回elasticsearchの導入にはchefを使いました。

環境

  • rails(ruby2.2.2, rails4.2.1)
  • vagrant centOS6.5
  • chef11
  • elasticsearch1.5.2

berkshelf

Berksfileファイルに以下のcookbookを記載します。


cookbook 'elasticsearch'
cookbook 'java'

javaはversion8を使いたいので、cookbookに記載しました。version7で問題ない場合は、このcookbookは不要です。

berks vendor cookbooks


// 以前のcookbookは破棄する
rm -rf cookbooks
berks vendor cookbooks

roleの設定

role/elasticsearch.jsonを作成します。


{
  "name":"elasticsearch",
  "chef_type": "role",
  "json_class":"Chef::Role",
  "description":"tool server role",
  "run_list": [
    "recipe[java]",
    "recipe[elasticsearch]",
    "recipe[elasticsearch::plugins]"
  ],
  "default_attributes": {
    "java": {
      "install_flavor": "oracle",
      "jdk_version": 8,
      "java_home": "/usr/local/java",
      "oracle" : {
        "accept_oracle_download_terms": true
      }
    },
    "elasticsearch": {
        "version": "1.5.2"
    }
  }
}

elasticsearchは1.5.3を指定します。elasticsearch::pluginsでプラグインも指定しています。

pluginの設定

elasticsearchにはkuromojiを始めとして、様々なpluginが存在します。
これらのpluginを利用するために、installに必要な設定を記述します。


mkdir -p data_bugs/elasticsearch/

touch data_bugs/elasticsearch/plugins.json

plugins.jsonの記述

必要となるpluginを記載します。


{
    "id": "plugins",
    "_default": {
        "plugins": {
            "elasticsearch/elasticsearch-analysis-kuromoji": { "version": "2.5.0" },
            "royrusso/elasticsearch-HQ": {},
            "elasticsearch/marvel/latest": {},
            "polyfractal/elasticsearch-inquisitor": {}
        }
    }
}

chef-soloを実行

あとはいつも通りにchefを実行するだけです。


knife solo cook localhost

無事に実行が完了したら、localhost:9200に接続すると以下のjsonが表示されます。


{
  "status" : 200,
  "name" : "192.168.33.12",
  "cluster_name" : "elasticsearch",
  "version" : {
    "number" : "1.5.2",
    "build_hash" : "62ff9868b4c8a0c45860bebb259e21980778ab1c",
    "build_timestamp" : "2015-04-27T09:21:06Z",
    "build_snapshot" : false,
    "lucene_version" : "4.10.4"
  },
  "tagline" : "You Know, for Search"
}

続いてpluginのinstallを確認します。

urlにhttp://localhost:9200/_nodes/_all?plugin=true&prettyを指定します。


      // something(長いので省略) 

      "plugins" : [ {
        "name" : "analysis-kuromoji",
        "version" : "2.5.0",
        "description" : "Kuromoji analysis support",
        "jvm" : true,
        "site" : false
      }, {
        "name" : "marvel",
        "version" : "1.3.1",
        "description" : "Elasticsearch Management & Monitoring",
        "url" : "/_plugin/marvel/",
        "jvm" : true,
        "site" : true
      }, {
        "name" : "inquisitor",
        "version" : "NA",
        "description" : "No description found.",
        "url" : "/_plugin/inquisitor/",
        "jvm" : false,
        "site" : true
      }, {
        "name" : "HQ",
        "version" : "NA",
        "description" : "No description found.",
        "url" : "/_plugin/HQ/",
        "jvm" : false,
        "site" : true
      } ]

指定した4つのpluginがinstallされているのが確認できました。

以上

参考サイト

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...