Switch to emergency frontend only setup
authorTom Hughes <tom@compton.nu>
Mon, 9 Mar 2015 18:02:01 +0000 (18:02 +0000)
committerTom Hughes <tom@compton.nu>
Mon, 9 Mar 2015 18:37:39 +0000 (18:37 +0000)
cookbooks/web/recipes/frontend.rb
cookbooks/web/recipes/rails.rb
cookbooks/web/templates/default/apache.frontend.erb
roles/db.rb
roles/spike-01.rb
roles/spike-02.rb
roles/web-frontend.rb

index f0508f8e88af88c282318db8a41e875e989a23e7..4c50df6681246edf05242ecc1a8f902667a9cb29 100644 (file)
 # limitations under the License.
 #
 
+include_recipe "memcached"
 include_recipe "apache::ssl"
 include_recipe "web::rails"
+include_recipe "web::cgimap"
 
 web_passwords = data_bag_item("web", "passwords")
 
@@ -26,6 +28,7 @@ apache_module "alias"
 apache_module "deflate"
 apache_module "expires"
 apache_module "headers"
+apache_module "proxy_fcgi"
 apache_module "proxy_http"
 apache_module "proxy_balancer"
 apache_module "lbmethod_byrequests"
@@ -63,3 +66,25 @@ end
 munin_plugin "api_waits_#{node[:hostname]}" do
   target "api_waits_"
 end
+
+node.set[:memcached][:ip_address] = node.external_ipaddress
+
+firewall_rule "accept-memcache-tcp" do
+  action :accept
+  family "inet"
+  source "ic"
+  dest "fw"
+  proto "tcp"
+  dest_ports "11211"
+  source_ports "1024:"
+end
+
+firewall_rule "accept-memcache-udp" do
+  action :accept
+  family "inet"
+  source "ic"
+  dest "fw"
+  proto "udp"
+  dest_ports "11211"
+  source_ports "1024:"
+end
index 6616c49f0980434733d86e26d2968f2f40254110..29187b4e437e205265df1b4f44af939318bfb0ed 100644 (file)
@@ -62,7 +62,7 @@ rails_port "www.openstreetmap.org" do
   gpx_dir "/store/rails/gpx"
   attachments_dir "/store/rails/attachments"
   log_path "#{node[:web][:log_directory]}/rails.log"
-  memcache_servers %w(rails1 rails2 rails3)
+  memcache_servers %w(193.63.75.99 193.63.75.100 193.63.75.103)
   potlatch2_key web_passwords["potlatch2_key"]
   id_key web_passwords["id_key"]
   oauth_key web_passwords["oauth_key"]
index ef06eeb83de93bb64afa1e9bc16d07789e0606d0..ff014632566aea1f01b9863382931054688682a3 100644 (file)
   Alias /attachments /store/rails/attachments
 
   #
-  # Preserve the host name when forwarding to the proxy
+  # Pass supported calls to cgimap
   #
-  ProxyPreserveHost on
-
-  #
-  # Set a long timeout - changeset uploads can take a long time
-  #
-  ProxyTimeout 3600
-
-  #
-  # Allow all proxy requests
-  #
-  <Proxy *>
-    Allow from all
-  </Proxy>
-
-  #
-  # Pass some other API calls to the backends via a load balancer
-  #
-  ProxyPass /api/0.6/map balancer://backend/api/0.6/map
-  ProxyPass /api/0.6/tracepoints balancer://backend/api/0.6/tracepoints
-  ProxyPass /api/0.6/amf/read balancer://backend/api/0.6/amf/read
-  ProxyPass /api/0.6/swf/trackpoints balancer://backend/api/0.6/swf/trackpoints
-  ProxyPassMatch ^(/api/0\.6/changeset/[0-9]+/(upload|download))$ balancer://backend$1
-  ProxyPassMatch ^(/api/0\.6/(node|way|relation)/[0-9]+)$ balancer://backend$1
-  ProxyPassMatch ^(/api/0\.6/(node|way|relation)/[0-9]+/(full|history|search|ways))$ balancer://backend$1
-  ProxyPass /api/0.6/nodes balancer://backend/api/0.6/nodes
-  ProxyPass /api/0.6/ways balancer://backend/api/0.6/ways
-  ProxyPass /api/0.6/relations balancer://backend/api/0.6/relations
-  ProxyPassMatch ^(/trace/[0-9]+/data(|/|.xml))$ balancer://backend$1
+  RewriteRule ^/api/0\.6/map$ fcgi://127.0.0.1:8000$0 [P]
+  RewriteCond %{REQUEST_METHOD} ^(HEAD|GET)$
+  RewriteRule ^/api/0\.6/(node|way|relation)/[0-9]+$ fcgi://127.0.0.1:8000$0 [P]
+  RewriteRule ^/api/0\.6/(way|relation)/[0-9]+/full$ fcgi://127.0.0.1:8000$0 [P]
+  RewriteRule ^/api/0\.6/(nodes|ways|relations)$ fcgi://127.0.0.1:8000$0 [P]
 
   #
   # Redirect trac and wiki requests to the right places
   #
   RedirectPermanent /images/osm_logo.png http://www.openstreetmap.org/assets/osm_logo.png
   RedirectPermanent /images/cc_button.png http://www.openstreetmap.org/assets/cc_button.png
-
-  #
-  # Define a load balancer for the backends
-  #
-  <Proxy balancer://backend>
-    ProxySet lbmethod=bybusyness
-<% if port == 443 -%>
-    BalancerMember https://rails1 disablereuse=on
-    BalancerMember https://rails2 disablereuse=on
-    BalancerMember https://rails3 disablereuse=on
-<% else -%>
-    BalancerMember http://rails1
-    BalancerMember http://rails2
-    BalancerMember http://rails3
-<% end -%>
-  </Proxy>
 <% if port == 80 -%>
 
   #
index 6fcb9bd676b4da0209be354c593fea660000b847..e3df5d3d796b4869fa09c16bbee24223196afc63 100644 (file)
@@ -44,7 +44,8 @@ default_attributes(
         :checkpoint_completion_target => "0.8",
         :cpu_tuple_cost => "0.1",
         :late_authentication_rules => [
-          { :address => "146.179.159.160/27" }
+          { :address => "146.179.159.160/27" },
+          { :address => "193.63.75.96/27" }
         ]
       }
     }
index 3b4622e916302745f865b2b7574b2f1393892f91..335a81a6e2efecce20016028a0f5853361f91684 100644 (file)
@@ -4,13 +4,6 @@ description "Master role applied to spike-01"
 default_attributes(
   :networking => {
     :interfaces => {
-      :internal_ipv4 => {
-        :interface => "eth0",
-        :role => :internal,
-        :family => :inet,
-        :address => "146.179.159.162",
-        :hwaddress => "00:1a:4b:a5:0f:ca"
-      },
       :external_ipv4 => {
         :interface => "eth1",
         :role => :external,
index d741f68be7bb5f3cf8a26c25015c391ed37c52f3..05626dc5f5cb386a8e01b0e0146f30c1c113704b 100644 (file)
@@ -4,13 +4,6 @@ description "Master role applied to spike-02"
 default_attributes(
   :networking => {
     :interfaces => {
-      :internal_ipv4 => {
-        :interface => "eth0",
-        :role => :internal,
-        :family => :inet,
-        :address => "146.179.159.163",
-        :hwaddress => "00:1b:78:04:76:c0"
-      },
       :external_ipv4 => {
         :interface => "eth1",
         :role => :external,
index eab62f715dcc404b623c3d046b05cd0475021ff6..c08d7dc0c419bc00aa77f411c900bee68f382369 100644 (file)
@@ -13,6 +13,9 @@ default_attributes(
       :max_requests_per_child => 10000
     }
   },
+  :networking => {
+    :nameservers => ["193.63.75.107"]
+  },
   :passenger => {
     :max_pool_size => 50
   },