Add role for scorch
authorTom Hughes <tom@compton.nu>
Fri, 9 Dec 2016 09:04:06 +0000 (09:04 +0000)
committerTom Hughes <tom@compton.nu>
Fri, 9 Dec 2016 09:04:06 +0000 (09:04 +0000)
cookbooks/networking/templates/default/shorewall-zones.erb
roles/ovh.rb [new file with mode: 0644]
roles/scorch.rb [new file with mode: 0644]

index 345ebd8605414c5a7a87a6f4a0b78fd3e86e4609..65a7697a595d91bff3894b1d83a2a1a03d2621b8 100644 (file)
@@ -31,3 +31,4 @@ dh:osm                <%= @type %>
 aws:osm                <%= @type %>
 ds:osm         <%= @type %>
 uz:osm          <%= @type %>
+ovh:osm         <%= @type %>
diff --git a/roles/ovh.rb b/roles/ovh.rb
new file mode 100644 (file)
index 0000000..826fcc9
--- /dev/null
@@ -0,0 +1,27 @@
+name "ovh"
+description "Role applied to all servers at OVH"
+
+default_attributes(
+  :hosted_by => "OVH",
+  :location => "Paris, France",
+  :networking => {
+    :nameservers => [
+      "213.186.33.99"
+    ],
+    :roles => {
+      :external => {
+        :zone => "ovh"
+      }
+    }
+  }
+)
+
+override_attributes(
+  :ntp => {
+    :servers => ["0.fr.pool.ntp.org", "1.fr.pool.ntp.org", "europe.pool.ntp.org"]
+  }
+)
+
+run_list(
+  "role[fr]"
+)
diff --git a/roles/scorch.rb b/roles/scorch.rb
new file mode 100644 (file)
index 0000000..be1e75c
--- /dev/null
@@ -0,0 +1,89 @@
+name "scorch"
+description "Master role applied to scorch"
+
+default_attributes(
+  :apt => {
+    :sources => ["postgresql"]
+  },
+  :devices => {
+    :ssd_system => {
+      :comment => "Tune scheduler for system disk",
+      :type => "block",
+      :bus => "scsi",
+      :serial => "3600605b009bbf5601fc3206407a43546",
+      :attrs => {
+        "queue/scheduler" => "noop",
+        "queue/nr_requests" => "256",
+        "queue/read_ahead_kb" => "2048"
+      }
+    },
+    :ssd_database => {
+      :comment => "Tune scheduler for database disk",
+      :type => "block",
+      :bus => "scsi",
+      :serial => "3600605b009bbf5601fd931c6dfac767f",
+      :attrs => {
+        "queue/scheduler" => "noop",
+        "queue/nr_requests" => "256",
+        "queue/read_ahead_kb" => "2048"
+      }
+    }
+  },
+  :networking => {
+    :interfaces => {
+      :external_ipv4 => {
+        :interface => "eth0",
+        :role => :external,
+        :family => :inet,
+        :address => "176.31.235.79",
+        :prefix => "24",
+        :gateway => "176.31.235.254"
+      },
+      :external_ipv6 => {
+        :interface => "eth0",
+        :role => :external,
+        :family => :inet6,
+        :address => "2001:41d0:2:fc4f::",
+        :prefix => "64",
+        :gateway => "fe80::12bd:18ff:fee5:2280"
+      }
+    }
+  },
+  :postgresql => {
+    :versions => ["9.5"],
+    :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
+      }
+    }
+  },
+  :tile => {
+    :database => {
+      :cluster => "9.5/main"
+    },
+    :node_file => "/store/database/nodes",
+    :styles => {
+      :default => {
+        :tile_directories => [
+          { :name => "/store/tiles/default", :min_zoom => 0, :max_zoom => 19 }
+        ]
+      }
+    }
+  }
+)
+
+run_list(
+  "role[ovh]",
+  "role[tile]"
+)