Adoptable Cookbooks List

Looking for a cookbook to adopt? You can now see a list of cookbooks available for adoption!
List of Adoptable Cookbooks

Supermarket Belongs to the Community

Supermarket belongs to the community. While Chef has the responsibility to keep it running and be stewards of its functionality, what it does and how it works is driven by the community. The chef/supermarket repository will continue to be where development of the Supermarket application takes place. Come be part of shaping the direction of Supermarket by opening issues and pull requests or by joining us on the Chef Mailing List.

Select Badges

Select Supported Platforms

Select Status


squid (49) Versions 3.0.0

Installs/configures squid as a simple caching proxy

cookbook 'squid', '= 3.0.0', :supermarket
cookbook 'squid', '= 3.0.0'
knife supermarket install squid
knife supermarket download squid
Quality 100%

squid Cookbook

Build Status Cookbook Version

Installs and configures Squid as a caching proxy.



  • Debian 7+
  • Ubuntu 12.04+
  • RHEL/CentOS/Scientific 6+
  • Fedora
  • openSUSE / openSUSE Leap
  • FreeBSD 10+


  • Chef 12.1+


  • none



The default recipe installs squid and sets up simple proxy caching. As of now, the options you may change are the port (node['squid']['port']) and the network the caching proxy is available on the subnet from node.ipaddress (ie. "") but may be overridden with node['squid']['network']. The size of objects allowed to be stored has been bumped up to allow for caching of installation files. An optional (node['squid']['cache_peer']), if set, will be written verbatim to the template. On redhat based platforms, this cookbook supports customizing the max number of file descriptors that Squid may open (node['squid']['max_file_descriptors']). The default value is 1024.


Include the squid recipe on the server. Other nodes may search for this node as their caching proxy and use the node.ipaddress and node['squid']['port'] to point at it.

Databags are able to be used for storing host & url acls and also which hosts/nets are able to access which hosts/url

LDAP Authentication

  • Set (node['squid']['enable_ldap']) to true.
  • Modify the ldap attributes for your environment.

  • To create the ldap acls in squid.conf, you also need the two ldap_auth databag items as shown in the LDAP Databags below.

Example Databags

squid_urls - yubikey item

  "urls": [
  "id": "yubikey"

squid_hosts - bastion item

  "type": "src",
  "id": "bastion",
  "net": [

squid_acls - bastion item

  "id": "bastion",
  "acl": [

LDAP Databags

The following two data bags are only required if you are using LDAP Authentication.

squid_hosts - ldap_auth item

  "type": "proxy_auth",
  "id": "ldap_auth",
  "net": [

squid_acls - ldap_auth item

  "id": "ldap_auth",
  "acl": [

License & Authors

Author: Cookbook Engineering Team (

Copyright: 2012-2016, Chef Software, Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
See the License for the specific language governing permissions and
limitations under the License.

Dependent cookbooks

selinux_policy 1.0.0

Contingent cookbooks

There are no cookbooks that are contingent upon this one.

squid Cookbook CHANGELOG

This file is used to list changes made in each version of the squid cookbook.

3.0.0 (2016-11-25)

  • Expand testing and clarify supported platforms
  • Remove SmartOS from the readme since we don't test it
  • Add selinux compatibility with a new selinux recipe
  • Detect version of squid installed by shelling out instead of a fixed case statement

2.0.0 (2016-09-09)

  • Fixed crash on empty databag
  • Allow setting Squid's max file descriptors on redhat platforms
  • Allow more customization to localnets, safe ports and ssl ports config
  • Allow changing the logformat for access_log
  • Fixing a bootstrap timing issue
  • Use kitche-docker for integration testing in Travis CI and run foodcritic / cookstyle there as well
  • Move squid version parsing to a helper
  • Fix node attribute warning
  • Expand the specs to test more platforms
  • Require Chef 12.1+

v1.1.1 (2015-09-28)

  • Fix the cache directory initialization execute resource to correctly fire on all platforms
  • Update contributing and testing docs

v1.1.0 (2015-09-05)

  • Added FreeBSD support
  • Removed use of Ruby 1.8.7 hash rockets
  • Add Chefspec unit tests
  • Documented Chef requirement of 11+

v1.0.1 (2015-09-02)

  • Wrap the new source_issues and issues_url to retain compatibility with Chef 11
  • Update the contributing documentation to the latest version
  • Update Travis config to perform just linting and unit testing

v1.0.0 (2015-09-02)

  • Reorder config to place maximum_object_size before cache_dir so it's not ignored
  • Remove attributes for Ubuntu 10.04 which is now EoL
  • Remove attributes for Debian 6 which is now EoL
  • Merge Debian and Ubuntu attributes to properly assign Debian style directories on Debian systems
  • Add squid version attributes for Debian 7.X and 8.X
  • Remove RHEL 5.X support from the readme since the current configuration will not start
  • Update Test Kitchen for the latest platforms
  • Add Ruby 2.0 and 2.2 to Travis
  • Add source_url and issues_url to the metadata.rb
  • Update the development dependencies in the Gemfile to the latest releases
  • Add Travis and cookbook release badges to the readme
  • Add required platforms to the readme
  • Add rvm, rbenv and rubymine files to the gitignore file
  • Add a very basic Serverspec test to Test Kitchen to ensure Squid is up and listening on port 3128
  • Converge Test Kitchen instances with a very small memory and disk cache to avoid failures

v0.6.0 (2015-09-01)

  • 0.6.0 was folded into 1.0.0 when it was realized the breaking changes in the release better warranted a 1.0.0 release.

v0.5.4 (2015-05-19)

  • [#39] Update versions of squid for RHEL7
  • [#38] Added ability to use variable databags per environment, role, etc.

v0.5.3 (2015-02-04)

  • [#37] Fix errors on RHEL7, Fedora
  • [#36] Fix warning when squid >= 3.2
  • [#33] Miscellaneous cleanup
  • [#31] Remove node['ipaddress'] as the only way to get the ipaddress.
  • [#30] Add metadata for default recipe

v0.5.2 (2014-10-14)

  • Support LDAP. (@MattMencel)
  • Support multiple listen ports. (@MattMencel)
  • Support use of other ACL types other than url_regex. (@thoutenbos)
  • Fix test harness on Ubuntu. (@juliandunn)

v0.5.1 (2014-09-02)

  • Support Ubuntu 14.04. (@maciejmajewski)

v0.5.0 (2014-07-25)

  • Don't assume default interface is 'eth0' (@juliandunn)
  • Fix breakage on Fedora (@juliandunn)
  • Enable a simple way to add arbitrary directives to the bottom of the squid.conf (@dansweeting)
  • Add enable_cache_dir attribute to allow disabling the cache_dir (@phutchins)
  • Permit configuration of cache size (@dschlenk)
  • Fix all test harnesses, Rubocop violations

v0.4.2 (2014-03-27)

  • [COOK-4320] - Add support for ubuntu 13 to the squid cookbook

v0.4.0 (2014-02-27)

  • [COOK-4373] Add conditional output of optional attribute for cache_peer to template
  • [COOK-4376] remove duplicated attributes
  • [COOK-4377] Generate a sysconfig on Fedora

v0.3.0 (2014-02-18)

[COOK-4066] - squid attributes should be default and not set/normal



  • COOK-3936 - configure squid cache size on disk
  • updating style and test harness



  • COOK-3590 - Fix hard-coded daemon listen port


Cleanup in 5fc5df4 (v0.2.4) was a bit overzealous:

Ubuntu needs upstart provider specified for the service or reload failures may occur.



  • [COOK-2979]: squid cookbook has foodcritic failures
  • [COOK-3042]: squid acl incorrect for centos 5


Initial public release and migration from @mattray's repository. Changelog was not created/updated at this time.

Collaborator Number Metric

3.0.0 passed this metric

Contributing File Metric

3.0.0 passed this metric

Foodcritic Metric

3.0.0 passed this metric

License Metric

3.0.0 passed this metric

No Binaries Metric

3.0.0 passed this metric

Testing File Metric

3.0.0 passed this metric

Version Tag Metric

3.0.0 passed this metric