+Array(node[:squid][:cache_dir]).each do |cache_dir|
+ if cache_dir =~ /^coss (\S+) /
+ cache_dir = File.dirname(Regexp.last_match(1))
+ elsif cache_dir =~ /^\S+ (\S+) /
+ cache_dir = Regexp.last_match(1)
+ end
+
+ directory cache_dir do
+ owner "proxy"
+ group "proxy"
+ mode 0o750
+ recursive true
+ notifies :restart, "service[squid]"
+ end
+end
+
+systemd_tmpfile "/var/run/squid" do
+ type "d"
+ owner "proxy"
+ group "proxy"
+ mode "0755"
+end
+
+address_families = %w[AF_UNIX AF_INET]
+
+# address_families << "AF_INET6" unless node.interfaces(:family => :inet6).empty?
+
+systemd_service "squid" do
+ description "Squid caching proxy"
+ after ["network.target", "nss-lookup.target"]
+ type "forking"
+ limit_nofile 98304
+ exec_start_pre "/usr/sbin/squid -N -z"
+ exec_start "/usr/sbin/squid -Y"
+ 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
+ restrict_address_families address_families
+ restart "on-failure"
+ timeout_sec 0