]> git.openstreetmap.org Git - chef.git/blob - roles/ironbelly.rb
70ae3b14e4c3ddfbed0630a27be1651851f9e1d9
[chef.git] / roles / ironbelly.rb
1 name "ironbelly"
2 description "Master role applied to ironbelly"
3
4 default_attributes(
5   :dhcpd => {
6     :first_address => "10.0.63.1",
7     :last_address => "10.0.63.254"
8   },
9   :elasticsearch => {
10     :cluster => {
11       :routing => {
12         :allocation => {
13           :disk => {
14             :watermark => {
15               :low => "95%",
16               :high => "98%",
17               :flood_stage => "99%"
18             }
19           }
20         }
21       }
22     },
23     :path => {
24       :data => "/store/elasticsearch"
25     }
26   },
27   :networking => {
28     :interfaces => {
29       :internal => {
30         :interface => "bond0",
31         :role => :internal,
32         :inet => {
33           :address => "10.0.48.10"
34         },
35         :bond => {
36           :mode => "802.3ad",
37           :lacprate => "fast",
38           :xmithashpolicy => "layer3+4",
39           :slaves => %w[enp2s0f0 enp2s0f1]
40         }
41       },
42       :external => {
43         :interface => "bond0.3",
44         :role => :external,
45         :inet => {
46           :address => "184.104.179.138"
47         },
48         :inet6 => {
49           :address => "2001:470:1:fa1::a"
50         }
51       }
52     }
53   },
54   :prometheus => {
55     :junos => {
56       "switch1" => { :address => "184.104.179.129", :labels => { "site" => "amsterdam" } }
57     },
58     :snmp => {
59       "pdu1" => { :address => "10.0.48.100", :modules => %w[apcups], :labels => { "site" => "amsterdam" } },
60       "pdu2" => { :address => "10.0.48.101", :modules => %w[apcups], :labels => { "site" => "amsterdam" } }
61     },
62     :metrics => {
63       :uplink_interface => {
64         :help => "Site uplink interface name",
65         :labels => { :site => "amsterdam", :name => "ge-[01]/2/[02]" }
66       }
67     }
68   },
69   :nginx => {
70     :cache => {
71       :proxy => {
72           :enable => true,
73           :keys_zone => "proxy_cache_zone:256M",
74           :inactive => "180d",
75           :max_size => "51200M"
76       }
77     }
78   },
79   :rsyncd => {
80     :modules => {
81       :logs => {
82         :comment => "Log files",
83         :path => "/store/logs",
84         :read_only => false,
85         :write_only => true,
86         :list => false,
87         :uid => "www-data",
88         :gid => "www-data",
89         :transfer_logging => false,
90         :hosts_allow => [
91           "193.60.236.0/24",          # ucl external
92           "10.0.48.0/20",             # amsterdam internal
93           "184.104.179.128/27",       # amsterdam external
94           "2001:470:1:fa1::/64",      # amsterdam external
95           "10.0.64.0/20",             # dublin internal
96           "184.104.226.96/27",        # dublin external
97           "2001:470:1:b3b::/64",      # dublin external
98           "10.0.32.0/20",             # bytemark internal
99           "89.16.162.16/28",          # bytemark external
100           "2001:41c9:2:d6::/64",      # bytemark external
101           "127.0.0.0/8",              # localhost
102           "::1"                       # localhost
103         ]
104       }
105     }
106   }
107 )
108
109 run_list(
110   "role[equinix-ams]",
111   "recipe[rsyncd]",
112   "recipe[dhcpd]",
113   "recipe[imagery::za_ngi_aerial]"
114 )