Adding your Squid to Shoal

This post describes how to install, configure, and run shoal-agent to add your squid cache to shoal. If you are interested in shoal itself we published a description of the system here:

Dynamic web cache publishing for IaaS clouds using Shoal
I Gable, M Chester, P Armstrong, F Berghaus, A Charbonneau, C Leavett-Brown, M Paterson, R Prior, R Sobie, R Taylor.
Proceedings of the 2013 CHEP Conference, Journal of Physics: Conference Series 513 (2013) 062035 Amsterdam 2013

Squid Installation

If you already have a squid installed, move on to the next part. Otherwise, follow the instructions for installing the frontier squid variant. The frontier squid is nicely packaged and optimized for Frontier and CVMFS.

Shoal Agent Installation

If you want to set up Shoal Agent very quickly, do:

curl https://raw.github.com/hep-gc/shoal/master/scripts/production-agent-install-for-hep.sh | bash
service shoal-agent start

More extensive instructions are available as Github documentation. In particular, note the shoal_agent.conf recommended for ATLAS. Once the shoal agent is running you should see your squid cache appear on shoal.

Squid Agent Configuration


The recommended modus operandi when using Shoal is to allow client connections to the squid from anywhere, but restrict destinations to the known CVMFS and Frontier servers. This way, CVMFS and Frontier access can be provided via the squid to any location, without the need for configuring specific ACLs for each known group of users. If the risk of DOS is a concern, you can employ rate limiting.

Here are good references for the syntax to use in customize.sh:
You should have this in customize.sh

uncomment("acl MAJOR_CVMFS")
uncomment("acl ATLAS_FRONTIER")
insertline("^# http_access deny !RESTRICT_DEST", "http_access allow MAJOR_CVMFS")
insertline("^# http_access deny !RESTRICT_DEST", "http_access allow ATLAS_FRONTIER")
setoption("acl NET_LOCAL src", "192.168.0.0/16")

This will allow connections that are either from the specified NET_LOCAL subnet(s) to anywhere or from anywhere to a CVMFS or Frontier server

These instructions were originally posted by Ryan on our twiki.

Comments

Popular posts from this blog

Grid-mapfile based authentication for DynaFed

Monitoring Dynafed with ELK

Glint Version 2 Enters Production