vcc_caeit.squid
Rôle Ansible : squid
Ce rôle a pour but de configurer Squid sur Ubuntu 16.04 LTS, et de préférence sur les versions LTS suivantes.
De plus, et c'est la principale inspiration pour la création de ce rôle, nous intégrons le support du paquet squid-deb-proxy
(au moment de l'écriture, dans le dépôt universe).
Variables du Rôle
Les variables disponibles sont listées ci-dessous, avec leurs valeurs par défaut (voir defaults/main.yml
) :
Nous définissons visible_hostname
comme étant la valeur de ansible_host
.
squid_hostname: "{{ ansible_host }}"
Dans squid_allowed_networks
, nous définissons une liste des réseaux autorisés à se connecter.
Par défaut, cela inclut les plages IPv4 RFC1918, l’IPv6 link-local et localhost pour les deux familles.
squid_allowed_networks:
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
- 127.0.0.1
- fe80::/64
- ::1
Liste des entrées de liste d'accès que vous souhaitez ajouter. Nous ajoutons automatiquement le mot-clé acl devant.
Exemple : ['example srcdomain .example.com']
.
squid_acls: []
Liste des listes d'accès à suivre et à enregistrer X-Forwarded-For comme hôte dans les journaux. Cette variable ne sera utilisée que si elle est définie.
squid_log_xff_acls: []
Définissez squid_logformat
si vous avez besoin de définir le format de journal utilisé par Squid.
squid_logformat: <retour à la valeur par défaut>
Définissez ceci sur vrai si vous souhaitez un proxy optimisé pour gérer les miroirs Ubuntu plutôt qu'un proxy classique.
squid_deb_proxy: false
Pour faire en sorte qu'Avahi diffuse votre proxy deb sur le réseau, définissez ceci sur vrai. Avec squid-deb-proxy-client
installé sur les clients, votre proxy sera automatiquement utilisé s'il est disponible sur le même domaine multicast.
squid_deb_proxy_avahi: false
Ce sont des valeurs par défaut pour les parties squid_deb_proxy
et ne s'appliquent pas lorsque la variable squid_deb_proxy
est définie sur false.
Les valeurs par défaut de squid_mirror_debian
et squid_mirror_ubuntu
varient selon le serveur sur lequel vous configurez Squid, avec les autres options, sauf squid_mirror_custom
, dépendant de ces paramètres. squid_mirror_custom
doit être une liste.
squid_mirror_debian: true sur les serveurs Debian, false sinon
squid_mirror_ubuntu: true sur les serveurs Ubuntu, false sinon
squid_mirror_default: true
squid_mirror_3rdparty: true
squid_mirror_changelogs: true
squid_mirror_ppas: false
squid_mirror_custom: []
Si vous n'êtes pas sûr des dépôts que vos utilisateurs utiliseront, vous pouvez définir squid_mirror_match_all_repositories
sur vrai. Cela tentera de faire correspondre le chemin de l'URL aux formats de dépôt valides à l'aide d'expressions régulières.
Étant donné que les expressions régulières sont lentes, nous ajoutons cela comme un dernier recours et par défaut, ne pas inclure cette option.
squid_mirror_match_all_repositories: false
Lorsque la redirection automatique OpenDNS/Cisco Umbrella est utilisée sur votre réseau, vous aurez probablement besoin que le serveur de cache prenne en charge les redirections.
squid_mirror_opendns: false
En plus de ces variables définies, il en existe d'autres avec des valeurs par défaut dans les templates que vous pouvez personnaliser. Nous les listons ici avec leurs valeurs par défaut dans la section des variables communes :
Il y a un support pour les pairs de cache en utilisant une liste de dictionnaires. Par défaut, cette variable n'est pas définie. Nous incluons un ensemble d'exemples avec toutes les options ici.
Pour trouver les valeurs pour ces options, vous devez consulter la documentation de Squid. query_port
sera défini sur la valeur par défaut basée sur query_type
si non défini.
squid_cache_peers:
- host: parent.example.org
type: parent
port: 8080
query_type: htcp
query_port: 54213
options:
- default
- htcp
- host: sibling.example.org
type: sibling
port: 3128
query_type: icp
options: no-proxy
Si vous ne souhaitez pas spécifier les squid_cache_peers
, nous incluons des raccourcis qui appliquent des valeurs par défaut raisonnables pour les autres valeurs ci-dessus.
squid_parent_proxies: http://parent.example.org:8080
squid_sibling_proxies:
- sibling.example.org
- sibling.example.net:3129
Étant donné que différents environnements sont différents, nous avons inclus squid_direct_connections
pour gérer quand nous nous connectons directement aux serveurs d'origine.
Nous vérifions toujours les hits de cache sur nos pairs de cache avant de décider comment satisfaire la demande, c'est là que cette option devient intéressante.
always
utilisera toujours une connexion directe et échouera si cela ne fonctionne pas. never
utilisera toujours un proxy parent pour la demande et échouera si cela ne fonctionne pas. prefer
préférera se connecter au serveur d'origine, mais reviendra aux proxies parents en cas d'échec. fallback
essaiera toujours d'abord les proxies parents, mais utilisera des connexions directes comme solution de secours si cela échoue.
Par défaut, cela n'est pas défini, ce qui utilisera les valeurs par défaut que votre installation Squid utilise.
squid_direct_connections: always never prefer fallback
Parfois, vous devez contourner le proxy parent pour certains serveurs. Nous vous permettons maintenant de contourner les caches parents en définissant squid_bypass_parent
, qui est une liste de noms d'hôtes.
squid_bypass_parent:
- server1.example.net
- server2.example.com
Dans certains cas, vous devez effectuer des adaptations externes à ce qui est servi. Squid prend en charge ICAP (Internet Content Adaptation Protocol) pour cela.
Vous pouvez définir des services comme dans l'exemple, bien que seul name
soit requis si vous êtes satisfait des valeurs par défaut. bypass
ne sera pas défini, sauf s'il est précisé, et utilisera la valeur par défaut de Squid.
Ce rôle ne s'occupera pas de la configuration des services ICAP.
squid_icap_policy:
- name: service
direction: in
bypass: false
url: icap://127.0.0.1:1344/service
access:
- acl: all
allow: true
Quel port devrions-nous écouter ? Si nous sommes un cache sibling, nous utiliserons le port défini au lieu de la variable squid_http_port
pour squid_deb_proxy
.
Lorsque squid_deb_proxy
n'est pas défini, ce paramètre peut maintenant être une liste de directives Listen.
squid_http_port: 3128
Quelle taille d'objets devons-nous mettre en cache ? La valeur par défaut est pour squid-deb-proxy.
squid_maximum_object_size: "512 MB"
Configurez un cache_dir
si vous le souhaitez. Normalement, Squid met en cache en mémoire, mais les valeurs par défaut listées sont pour squid-deb-proxy.
squid_cache_size
est en Mo, soit 40 Go.
squid_cache_type: 'aufs'
squid_cache_path: '/var/spool/squid'
squid_cache_size: 40000
squid_cache_options: '16 256'
Quelle quantité de mémoire voulons-nous utiliser et quelle taille d'objets allons-nous y stocker.
squid_cache_mem: "200 MB"
squid_max_object_mem_size: "10240 KB"
Si vous avez besoin que Squid utilise des serveurs de noms différents de ceux du système, vous pouvez définir squid_nameservers
comme une chaîne pour un seul ou une liste pour plusieurs. Par défaut, cette option n'est pas définie et nous utilisons le(s) serveur(s) de noms système.
squid_nameservers: 127.0.0.53
Exemple de Playbook
- hosts: proxies
vars:
squid_deb_proxy: true
squid_mirror_custom:
- .ftp.acc.umu.se
squid_cache_size: 8000
roles:
- vcc_caeit.squid
Licence
GPLv2
Informations sur l'auteur
Ce rôle a été créé en 2018 par Nafallo Bjälevik, lors d'un travail de consultant pour Volvo Cars Corporation.
ansible-galaxy install vcc_caeit.squid