2 # Copyright 2013-2014, whitestar
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
8 # http://www.apache.org/licenses/LICENSE-2.0
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
17 $LOAD_PATH.push("#{File.dirname(__FILE__)}/_lib")
18 #${chef-repo}/roles/_lib/grid.rb
24 cluster_name = 'ptolemy'
25 cluster_sym = cluster_name.to_sym
26 datanode_prefix = 'dn4'
27 datanode_digit_nums = 4
29 name "#{cluster_name}-gm"
30 description "#{cluster_name.capitalize} ganglia gmetad node"
34 #'role[nameservice-client-grid]',
35 'role[ganglia-gmond]',
36 'role[ganglia-gmetad]',
42 this_subcluster = Grid::CLUSTERS[cluster_sym][:gmetads]
43 mcast_addr = this_subcluster[:mcast_addr]
45 polling_interval = '30'
47 udp_send_channels4ucast = []
48 this_subcluster[:nodes].first(2).each {|host|
49 udp_send_channels4ucast.push(
52 'host' => "#{host}.#{Grid::DOMAIN}",
53 #'host' => IPSocket.getaddress("#{host}.#{Grid::DOMAIN}"),
62 Grid::CLUSTERS[cluster_sym].select{|key| key != :datanodes}.each {|key, cluster|
65 :name => cluster[:alias],
66 :polling_interval => polling_interval,
68 :address_list => cluster[:nodes].first(2).map{|host| "#{host}.#{Grid::DOMAIN}"}
75 digit_nums = datanode_digit_nums
79 #(0...80).step(40) {|v|
80 first_head = v.to_s.rjust(digit_nums, padstr)
81 last_head = (v + head_node_nums -1).to_s.rjust(digit_nums, padstr)
84 :name => "DataNode#{first_head}",
85 :polling_interval => polling_interval,
87 :address_list => "#{datanode_prefix}{#{first_head}..#{last_head}}.#{Grid::DOMAIN}".expand
97 "from .#{Grid::DOMAIN}",
98 'from 192.168.0.0/16'],
99 'AuthType' => 'Kerberos',
101 'KrbAuthRealms' => Grid::REALM,
102 'Krb5Keytab' => '/etc/krb5.keytab'
110 if defined? Grid::CLUSTERS[cluster_sym][:nagioses][:nodes] then
111 nagios_nodes = Grid::CLUSTERS[cluster_sym][:nagioses][:nodes].map{|host| "#{host}.#{Grid::DOMAIN}"}
118 'name' => this_subcluster[:alias],
119 'owner' => Grid::DOMAIN
124 'udp_send_channels' => [
126 'mcast_join' => mcast_addr,
132 'udp_recv_channels' => [
134 'mcast_join' => mcast_addr,
141 'udp_send_channels' => udp_send_channels4ucast,
142 'udp_recv_channels' => [
151 'gridname' => cluster_name.capitalize,
152 'trusted_hosts' => ['127.0.0.1'] + nagios_nodes,
153 'data_sources' => data_sources + dn_data_sources