]> git.openstreetmap.org Git - chef.git/blobdiff - roles/odin.rb
Configure odin as a tile server
[chef.git] / roles / odin.rb
index e31bc6923f408babd19303045e1a298ed3d69704..32791077da47f9069346d201500407cb9b332978 100644 (file)
@@ -2,6 +2,9 @@ name "odin"
 description "Master role applied to odin"
 
 default_attributes(
+  :apt => {
+    :sources => ["postgresql"]
+  },
   :networking => {
     :interfaces => {
       :internal_ipv4 => {
@@ -26,9 +29,52 @@ default_attributes(
         :address => "2001:978:2:2C::172:F"
       }
     }
+  },
+  :postgresql => {
+    :versions => ["10"],
+    :settings => {
+      :defaults => {
+        :shared_buffers => "8GB",
+        :maintenance_work_mem => "7144MB",
+        :effective_cache_size => "16GB"
+      }
+    }
+  },
+  :sysctl => {
+    :postgres => {
+      :comment => "Increase shared memory for postgres",
+      :parameters => {
+        "kernel.shmmax" => 9 * 1024 * 1024 * 1024,
+        "kernel.shmall" => 9 * 1024 * 1024 * 1024 / 4096
+      }
+    }
+  },
+  :sysfs => {
+    :md_tune => {
+      :comment => "Enable request merging for NVMe devices",
+      :parameters => {
+        "block/nvme0n1/queue/nomerges" => "1",
+        "block/nvme1n1/queue/nomerges" => "1"
+      }
+    }
+  },
+  :tile => {
+    :database => {
+      :cluster => "10/main",
+      :postgis => "2.4"
+    },
+    :node_file => "/store/database/nodes",
+    :styles => {
+      :default => {
+        :tile_directories => [
+          { :name => "/store/tiles/default", :min_zoom => 0, :max_zoom => 19 }
+        ]
+      }
+    }
   }
 )
 
 run_list(
-  "role[equinix]"
+  "role[equinix]",
+  "role[tile]"
 )