Split out default munin plugin installation to a new recipe
[chef.git] / roles / base.rb
1 name "base"
2 description "Base role applied to all servers"
3
4 default_attributes(
5   :accounts => {
6     :users => {
7       :grant => { :status => :administrator },
8       :tomh => { :status => :administrator },
9       :matt => { :status => :administrator },
10       :jburgess => { :status => :administrator }
11     }
12   },
13   :apt => {
14     :sources => ["openstreetmap"]
15   },
16   :munin => {
17     :plugins => {
18       :chrony => {
19         :systime => { :warning => "100", :critical => "250" }
20       }
21     }
22   },
23   :networking => {
24     :roles => {
25       :internal => { :metric => 200, :zone => "loc" },
26       :external => { :metric => 100 }
27     },
28     :search => ["openstreetmap.org"]
29   },
30   :sysctl => {
31     :panic => {
32       :comment => "Reboot automatically after a panic",
33       :parameters => { "kernel.panic" => "60" }
34     },
35     :blackhole => {
36       :comment => "Do TCP level MTU probing if we seem to have an ICMP blackhole",
37       :parameters => {
38         "net.ipv4.tcp_mtu_probing" => "1",
39         "net.ipv4.tcp_base_mss" => "1024"
40       }
41     },
42     :network_buffers => {
43       :comment => "Tune network buffers",
44       :parameters => {
45         "net.core.rmem_max" => "16777216",
46         "net.core.wmem_max" => "16777216",
47         "net.ipv4.tcp_rmem" => "4096\t87380\t16777216",
48         "net.ipv4.tcp_wmem" => "4096\t65536\t16777216",
49         "net.ipv4.udp_mem" => "3145728\t4194304\t16777216"
50       }
51     },
52     :network_backlog => {
53       :comment => "Increase maximum backlog for incoming network packets",
54       :parameters => {
55         "net.core.netdev_max_backlog" => "2500",
56         "net.core.netdev_budget" => "600"
57       }
58     },
59     :network_conntrack_established => {
60       :comment => "Only track established connections for four hours",
61       :parameters => {
62         "net.netfilter.nf_conntrack_tcp_timeout_established" => "14400"
63       }
64     },
65     :tcp_syncookies => {
66       :comment => "Turn on syncookies to protect against SYN floods",
67       :parameters => {
68         "net.ipv4.tcp_syncookies" => "1"
69       }
70     },
71     :default_qdisc => {
72       :comment => "Use fq as the default queuing discipline and bbr for congestion control",
73       :parameters => {
74         "net.core.default_qdisc" => "fq",
75         "net.ipv4.tcp_congestion_control" => "bbr"
76       }
77     },
78     :tune_cpu_scheduler => {
79       :comment => "Tune CPU scheduler for server scheduling",
80       :parameters => {
81         "kernel.sched_migration_cost_ns" => 50000000,
82         "kernel.sched_autogroup_enabled" => 0
83       }
84     }
85   }
86 )
87
88 run_list(
89   "recipe[accounts]",
90   "recipe[apt]",
91   "recipe[chef]",
92   "recipe[devices]",
93   "recipe[hardware]",
94   "recipe[munin::plugins]",
95   "recipe[networking]",
96   "recipe[exim]",
97   "recipe[ntp]",
98   "recipe[openssh]",
99   "recipe[sysctl]",
100   "recipe[sysfs]",
101   "recipe[tools]",
102   "recipe[fail2ban]"
103 )