class Vpsb::Resources::EsJson

Public Instance Methods

call(data) click to toggle source
# File lib/vpsb/resources/es_json.rb, line 6
def call(data)
  template(data)
end

Private Instance Methods

template(data) click to toggle source
# File lib/vpsb/resources/es_json.rb, line 12
def template(data)
  {
    name: "es",
    description: "Elasticsearch Server Role",
    chef_type: "role",
    json_class: "Chef::Role",
    default_attributes: {
      java: {

          install_flavor: "openjdk",
          jdk_version: "7"
      },
      elasticsearch: {
        version: data.get(:es_version),
        cluster:   { name: data.get(:es_cluster_name) },
        limits:    { nofile: data.get(:es_nofile).to_i, memlock: data.get(:es_memlock).to_i},
        bootstrap: { mlockall: false},
        discovery: { zen: { ping: { timeout: "3s" } } },
        logging:   { discovery: "TRACE", "index.indexing.slowlog" => "INFO, index_indexing_slow_log_file"},
        "node.name" => data.get(:es_node_name),
        "node.master" => true,
        "node.data"=> true,
        "http.port"              => "9200",
        "transport.tcp.port"     => "9300",
        "transport.tcp.compress" => "true",
        "index.search.slowlog.threshold.query.trace" => "1ms"
      }
    },
    run_list: [
      "recipe[apt]",
      "recipe[java]",
      "recipe[vim]",
      "recipe[elasticsearch]"
    ]
  }
end