]> git.openstreetmap.org Git - chef.git/blob - roles/web-frontend.rb
devices: enable nvme.poll_queues if supported
[chef.git] / roles / web-frontend.rb
1 name "web-frontend"
2 description "Role applied to all web/api frontend servers"
3
4 default_attributes(
5   :apache => {
6     :mpm => "event",
7     :event => {
8       :server_limit => 20,
9       :max_request_workers => 1000,
10       :threads_per_child => 50,
11       :min_spare_threads => 50,
12       :max_spare_threads => 450,
13       :async_request_worker_factor => 4
14     }
15   },
16   :logstash => {
17     :forwarder => {
18       "filebeat.inputs" => [
19         { "type" => "filestream", "id" => "apache", "paths" => ["/var/log/apache2/access.log"], "fields" => { "type" => "apache" }, "fields_under_root" => true },
20         { "type" => "filestream", "id" => "rails", "paths" => ["/var/log/web/rails-logstash.log"], "fields" => { "type" => "rails" }, "fields_under_root" => true }
21       ]
22     }
23   },
24   :memcached => {
25     :memory_limit => 8192
26   },
27   :networking => {
28     :firewall => {
29       :http_rate_limit => "s:5/sec:30"
30     }
31   },
32   :passenger => {
33     :max_pool_size => 50
34   },
35   :exim => {
36     :local_domains => ["messages.openstreetmap.org"],
37     :routes => {
38       :messages => {
39         :comment => "messages.openstreetmap.org",
40         :domains => ["messages.openstreetmap.org"],
41         :local_parts => ["${lookup{$local_part}lsearch*,ret=key{/etc/exim4/detaint}}"],
42         :command => "/usr/local/bin/deliver-message $local_part_data",
43         :user => "rails",
44         :group => "rails",
45         :home_directory => "/srv/www.openstreetmap.org/rails",
46         :path => "/bin:/usr/bin:/usr/local/bin",
47         :case_sensitive => true
48       }
49     }
50   }
51 )
52
53 run_list(
54   "role[web]",
55   "role[logstash-forwarder]",
56   "recipe[web::frontend]"
57 )