Add support for squid 3.x
authorTom Hughes <tom@compton.nu>
Tue, 5 Jun 2018 19:42:23 +0000 (20:42 +0100)
committerTom Hughes <tom@compton.nu>
Tue, 5 Jun 2018 19:53:18 +0000 (20:53 +0100)
cookbooks/squid/attributes/default.rb
cookbooks/squid/recipes/default.rb
cookbooks/squid/templates/default/squid.conf.erb

index f26853fa82ae39309e7c4ae40344c0dbe16c9aa9..6a7c649d37b0be1d9a34e265e71927399604c94b 100644 (file)
@@ -1,4 +1,4 @@
-
+default[:squid][:version] = "2"
 default[:squid][:cache_mem] = "256 MB"
 default[:squid][:cache_dir] = "ufs /var/spool/squid 256 16 256"
 default[:squid][:access_log] = "/var/log/squid/access.log openstreetmap"
index c0e2401901f974fde8e3d66dcb2149d5f7a32052..720c159d7897a82ec23890a840f90660bacc6aa3 100644 (file)
 # limitations under the License.
 #
 
+if node[:squid][:version] == "3"
+  package "squid" do
+    action :remove
+    only_if "dpkg-query -W squid | fgrep -q 2."
+  end
+
+  package "squid-common" do
+    action :remove
+    only_if "dpkg-query -W squid-common | fgrep -q 2."
+  end
+
+  apt_package "squid" do
+    action :unlock
+  end
+
+  apt_package "squid-common" do
+    action :unlock
+  end
+
+  file "/store/squid/coss-01" do
+    action :delete
+  end
+end
+
 package "squid"
 package "squidclient"
 
@@ -40,21 +64,39 @@ directory "/etc/squid/squid.conf.d" do
   mode 0o755
 end
 
+if node[:squid][:cache_dir] =~ /^coss (\S+) /
+  cache_dir = File.dirname(Regexp.last_match(1))
+elsif node[:squid][:cache_dir] =~ /^\S+ (\S+) /
+  cache_dir = Regexp.last_match(1)
+end
+
+directory cache_dir do
+  owner "proxy"
+  group "proxy"
+  mode 0o750
+  recursive true
+end
+
+systemd_tmpfile "/var/run/squid" do
+  type "d"
+  owner "proxy"
+  group "proxy"
+  mode "0755"
+end
+
 systemd_service "squid" do
   description "Squid caching proxy"
   after ["network.target", "nss-lookup.target"]
+  type "forking"
   limit_nofile 65536
-  environment "SQUID_ARGS" => "-D"
-  environment_file "/etc/default/squid"
-  exec_start_pre "/usr/sbin/squid $SQUID_ARGS -z"
-  exec_start "/usr/sbin/squid -N $SQUID_ARGS"
+  exec_start_pre "/usr/sbin/squid -z"
+  exec_start "/usr/sbin/squid"
   exec_reload "/usr/sbin/squid -k reconfigure"
   exec_stop "/usr/sbin/squid -k shutdown"
   private_tmp true
   private_devices true
   protect_system "full"
   protect_home true
-  no_new_privileges true
   restart "on-failure"
   timeout_sec 0
 end
index f290f730d22b16f7f1174f435a03dc0e3552d064..b92ed1ec357f4cd39ca93099d5123bcdb29668ad 100644 (file)
@@ -12,14 +12,23 @@ icp_port 3130
 log_icp_queries off
 
 #FIXME - configurable
+<% if node[:squid][:version] == "2" -%>
 http_port 80 accel defaultsite=tile.openstreetmap.org tcpkeepalive=60,10,6 http11
+<% else -%>
+http_port 80 accel defaultsite=tile.openstreetmap.org tcpkeepalive=60,10,6
+
+#prefer IPv4 until everything is upgraded
+dns_v4_first on
+<% end -%>
 
 cache_effective_user proxy
 cache_effective_group proxy
 
 #FIXME - configurable
 cache_dir <%= node[:squid][:cache_dir] %>
+<% if node[:squid][:version] == "2" -%>
 cache_swap_log /var/spool/squid/%s
+<% end -%>
 
 cache_mgr webmaster@openstreetmap.org
 
@@ -39,7 +48,11 @@ persistent_request_timeout 1 minutes
 
 negative_ttl 15 seconds
 half_closed_clients off
+<% if node[:squid][:version] == "2" -%>
 pipeline_prefetch on
+<% else -%>
+pipeline_prefetch 1
+<% end -%>
 
 read_timeout 90 seconds
 request_timeout 90 seconds
@@ -84,8 +97,13 @@ http_access deny purge
 forwarded_for on
 follow_x_forwarded_for allow localhost
 
+<% if node[:squid][:version] == "2" -%>
 logformat openstreetmap %ts.%03tu %tr %>a %Ss/%03Hs %<st %rm %rp %Sh/%<A %mt "%{Referer}>h" "%{User-Agent}>h"
 access_log <%= node[:squid][:access_log] %>
+<% else -%>
+logformat openstreetmap %ts.%03tu %tr %>a %Ss/%03>Hs %<st %rm %>rp %Sh/%<A %mt "%{Referer}>h" "%{User-Agent}>h"
+access_log daemon:<%= node[:squid][:access_log] %>
+<% end -%>
 cache_log /var/log/squid/cache.log
 cache_store_log none
 buffered_logs on