]> git.openstreetmap.org Git - chef.git/blob - roles/ironbelly.rb
geodns: enable include_optional_ns to please picky DNS servers
[chef.git] / roles / ironbelly.rb
1 name "ironbelly"
2 description "Master role applied to ironbelly"
3
4 default_attributes(
5   :apt => {
6     :sources => ["ubuntugis-unstable"]
7   },
8   :bind => {
9     :clients => "equinix"
10   },
11   :dhcpd => {
12     :first_address => "10.0.63.1",
13     :last_address => "10.0.63.254"
14   },
15   :elasticsearch => {
16     :cluster => {
17       :routing => {
18         :allocation => {
19           :disk => {
20             :watermark => {
21               :low => "95%",
22               :high => "98%",
23               :flood_stage => "99%"
24             }
25           }
26         }
27       }
28     },
29     :path => {
30       :data => "/store/elasticsearch"
31     }
32   },
33   :networking => {
34     :interfaces => {
35       :internal_ipv4 => {
36         :interface => "bond0",
37         :role => :internal,
38         :family => :inet,
39         :address => "10.0.48.10",
40         :bond => {
41           :slaves => %w[eth0 eth1]
42         }
43       },
44       :external_ipv4 => {
45         :interface => "bond0.2",
46         :role => :external,
47         :family => :inet,
48         :address => "130.117.76.10"
49       },
50       :external_ipv6 => {
51         :interface => "bond0.2",
52         :role => :external,
53         :family => :inet6,
54         :address => "2001:978:2:2C::172:A"
55       }
56     }
57   },
58   :openvpn => {
59     :address => "10.0.16.2",
60     :tunnels => {
61       :ic2ucl => {
62         :port => "1194",
63         :mode => "server",
64         :peer => {
65           :host => "ridley.openstreetmap.org"
66         }
67       },
68       :aws2ic => {
69         :port => "1195",
70         :mode => "server",
71         :peer => {
72           :host => "fafnir.openstreetmap.org"
73         }
74       },
75       :ic2bm => {
76         :port => "1196",
77         :mode => "client",
78         :peer => {
79           :host => "grisu.openstreetmap.org",
80           :port => "1194"
81         }
82       }
83     }
84   },
85   :planet => {
86     :replication => "enabled"
87   },
88   :rsyncd => {
89     :modules => {
90       :hosts => {
91         :comment => "Host data",
92         :path => "/home/hosts",
93         :read_only => true,
94         :write_only => false,
95         :list => false,
96         :uid => "tomh",
97         :gid => "tomh",
98         :transfer_logging => false,
99         :hosts_allow => [
100           "212.110.172.32",                      # shenron
101           "2001:41c9:1:400::32",                 # shenron
102           "212.159.112.221"                      # grant
103         ]
104       },
105       :logs => {
106         :comment => "Log files",
107         :path => "/store/logs",
108         :read_only => false,
109         :write_only => true,
110         :list => false,
111         :uid => "www-data",
112         :gid => "www-data",
113         :transfer_logging => false,
114         :hosts_allow => [
115           "193.60.236.0/24",          # ucl external
116           "10.0.48.0/20",             # equinix internal
117           "130.117.76.0/27",          # equinix external
118           "2001:978:2:2C::172:0/112", # equinix external
119           "10.0.32.0/20",             # bytemark internal
120           "89.16.162.16/28",          # bytemark external
121           "2001:41c9:2:d6::/64",      # bytemark external
122           "127.0.0.0/8",              # localhost
123           "::1"                       # localhost
124         ],
125         :nodes_allow => "roles:tilecache"
126       }
127     }
128   }
129 )
130
131 run_list(
132   "role[equinix]",
133   "role[gateway]",
134   "role[web-storage]",
135   "role[supybot]",
136   "role[backup]",
137   "role[planet]",
138   "role[planetdump]",
139   "role[logstash]",
140   "recipe[rsyncd]",
141   "recipe[dhcpd]",
142   "recipe[openvpn]",
143   "recipe[tilelog]"
144 )