r/squid: Support custom cache rules

Instead of hard-coding a single cache directory and a set of refresh
patterns, the *squid* role can now have custom cache rules defined with
the `squid_cache_dir` variable (which now takes a list of `cache_dir`
settings) and the `squid_refresh_pattern` variable (which takes a list
of refresh patterns).  If neither of these are defined, the default
configuration is used.

This is a breaking change, since `squid_cache_dir` used to refer to a
directory, and the previous default was to configure one cache path.
There are no extant users of this role, though, so it doesn't really
matter.
This commit is contained in:
2024-01-27 19:57:19 -06:00
parent af18a575d1
commit 1d94dc9528
4 changed files with 34 additions and 18 deletions

View File

@@ -78,11 +78,18 @@ maximum_object_size {{ squid_max_object_size }}
cache_replacement_policy {{ squid_cache_replacement_policy }}
# Uncomment and adjust the following to add a disk cache directory.
cache_dir {{ squid_cache_dir_type }} {{ squid_cache_dir }} {{ squid_cache_dir_max_size }} {{ squid_cache_dir_l1 }} {{ squid_cache_dir_l2 }}
{% if squid_cache_dir is not defined %}
#cache_dir ufs /var/spool/squid 100 16 256
{% else %}
{% for item in squid_cache_dir %}
cache_dir {{ item }}
{% endfor %}
{% endif %}
# Leave coredumps in the first cache dir
coredump_dir /var/spool/squid
{% if squid_refresh_pattern is not defined %}
# Never cache objects from internal servers
refresh_pattern \.{{ ansible_domain|replace('.', '\\.') }} 0 0% 0
# Never cache Yum repository metadata files
@@ -94,3 +101,8 @@ refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
{% else %}
{% for pattern in squid_refresh_pattern %}
refresh_pattern {{ pattern }}
{% endfor %}
{% endif %}