OSDN Git Service

refactor node_commons role.
[metasearch/grid-chef-repo.git] / roles / grid-gm.rb
1 require 'rubygems'
2 require 'bracecomp'
3
4 name 'grid-gm'
5 description 'Grid Base ganglia gmetad node'
6
7 run_list(
8   'role[node_commons]',
9   'role[nameservice-client-grid]',
10   'role[ganglia-gmond]',
11   'role[ganglia-gmetad]',
12   'role[ganglia-web]'
13 )
14
15 this_domain = 'grid.example.com'
16 mcast_addr = '239.2.10.3'
17 port = '8649'
18 polling_interval = 30
19
20 #env_run_lists "prod" => ["recipe[apache2]"], "staging" => ["recipe[apache2::staging]"], "_default" => []
21
22 default_attributes(
23   'ganglia' => {
24     'web' => {
25       'Allow' => [
26         "from .#{this_domain}",
27         'from 192.168.0.0/16'],
28       'AuthType' => 'Kerberos',
29       'mod_auth_kerb' => {
30         'KrbAuthRealms' => 'GRID.EXAMPLE.COM',
31         'Krb5Keytab' => '/etc/krb5.keytab'
32       }
33     }
34   },
35 )
36
37 override_attributes(
38   'ganglia' => {
39     # gmond
40     'cluster' => {
41       'name' => 'Ganglia',
42       'owner' => this_domain
43     },
44     ## static multi-cast
45     'static' => {
46       'udp_send_channels' => [
47         {
48           'mcast_join' => mcast_addr,
49           'host' => '',
50           'port' => port,
51           'ttl' => '1'
52         }
53       ],
54       'udp_recv_channels' => [
55         {
56           'mcast_join' => mcast_addr,
57           'port' => port,
58           'bind' => mcast_addr
59         }
60       ]
61     },
62     # gmetad
63     'gridname' => 'Grid-Base',
64     'trusted_hosts' => ['127.0.0.1'] + "nm9{0..1}.#{this_domain}".expand,
65     'data_sources' => [
66       {
67         :name => 'AdministrativeStation',
68         :polling_interval => polling_interval,
69         :address_list => "adm0{0..1}.#{this_domain}".expand
70       },
71       {
72         :name => 'ProvisioningMaster',
73         :polling_interval => polling_interval,
74         :address_list => "gpm0{0..1}.#{this_domain}".expand
75       },
76       {
77         :name => 'NameService',
78         :polling_interval => polling_interval,
79         :address_list => "ns0{0..1}.#{this_domain}".expand
80       },
81       {
82         :name => 'ZooKeeper',
83         :polling_interval => polling_interval,
84         :address_list => "zk0{0..1}.#{this_domain}".expand
85       },
86       {
87         :name => 'Nagios',
88         :polling_interval => polling_interval,
89         :address_list => "nm9{0..1}.#{this_domain}".expand
90       },
91       {
92         :name => 'Ganglia',
93         :polling_interval => polling_interval,
94         :address_list => "gm9{0..1}.#{this_domain}".expand
95       },
96     ]
97   }
98 )