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