Upgrade bytemark machines to chef 13
[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   :git => {
26     :allowed_nodes => "fqdn:*",
27     :user => "chefrepo",
28     :group => "chefrepo",
29     :backup => "chef-git"
30   },
31   :networking => {
32     :interfaces => {
33       :internal_ipv4 => {
34         :interface => "eth0",
35         :role => :internal,
36         :family => :inet,
37         :address => "146.179.159.177"
38       },
39       :external_ipv4 => {
40         :interface => "eth1",
41         :role => :external,
42         :family => :inet,
43         :address => "193.63.75.107"
44       },
45       :external_ipv6 => {
46         :interface => "eth1",
47         :role => :external,
48         :family => :inet6,
49         :address => "2001:630:12:500:225:90ff:fec4:f6ef"
50       }
51     }
52   },
53   :openvpn => {
54     :address => "10.0.16.2",
55     :tunnels => {
56       :ic2ucl => {
57         :port => "1194",
58         :mode => "server",
59         :peer => {
60           :host => "ridley.openstreetmap.org"
61         }
62       },
63       :aws2ic => {
64         :port => "1195",
65         :mode => "server",
66         :peer => {
67           :host => "fafnir.openstreetmap.org"
68         }
69       },
70       :ic2bm => {
71         :port => "1196",
72         :mode => "client",
73         :peer => {
74           :host => "grisu.openstreetmap.org",
75           :port => "1194"
76         }
77       }
78     }
79   },
80   :planet => {
81     :replication => "enabled"
82   },
83   :rsyncd => {
84     :modules => {
85       :hosts => {
86         :comment => "Host data",
87         :path => "/home/hosts",
88         :read_only => true,
89         :write_only => false,
90         :list => false,
91         :uid => "tomh",
92         :gid => "tomh",
93         :transfer_logging => false,
94         :hosts_allow => [
95           "212.110.172.32",                      # shenron
96           "2001:41c9:1:400::32",                 # shenron
97           "212.159.112.221"                      # grant
98         ]
99       },
100       :logs => {
101         :comment => "Log files",
102         :path => "/store/logs",
103         :read_only => false,
104         :write_only => true,
105         :list => false,
106         :uid => "www-data",
107         :gid => "www-data",
108         :transfer_logging => false,
109         :hosts_allow => [
110           "193.60.236.0/24",      # ucl external
111           "146.179.159.160/27",   # ic internal
112           "193.63.75.96/27",      # ic external
113           "2001:630:12:500::/64", # ic external
114           "10.0.32.0/20",         # bytemark internal
115           "89.16.162.16/28",      # bytemark external
116           "2001:41c9:2:d6::/64",  # bytemark external
117           "127.0.0.0/8",          # localhost
118           "::1"                   # localhost
119         ],
120         :nodes_allow => "roles:tilecache"
121       }
122     }
123   }
124 )
125
126 run_list(
127   "role[ic]",
128   "role[gateway]",
129   "role[chef-server]",
130   "role[chef-repository]",
131   "role[web-storage]",
132   "role[supybot]",
133   "role[backup]",
134   "role[stats]",
135   "role[planet]",
136   "role[planetdump]",
137   "role[logstash]",
138   "role[letsencrypt]",
139   "recipe[rsyncd]",
140   "recipe[openvpn]",
141   "recipe[git::server]",
142   "recipe[tilelog]",
143   "recipe[serverinfo]"
144 )