vcc_caeit.squid
Ansible Rolle: squid
Diese Rolle hat das Ziel, Squid auf Ubuntu 16.04 LTS und hoffentlich späteren LTS-Versionen zu konfigurieren.
Darüber hinaus integriert diese Rolle Unterstützung für das (zum Zeitpunkt des Schreibens) Universum-Paket squid-deb-proxy
, was die Hauptinspiration für die Erstellung dieser Rolle war.
Rollenvariablen
Verfügbare Variablen sind unten aufgeführt, zusammen mit Standardwerten (siehe defaults/main.yml
):
Wir setzen visible_hostname
auf das, was ansible_host
gesetzt ist.
squid_hostname: "{{ ansible_host }}"
In squid_allowed_networks
definieren wir eine Liste von Netzwerken, die sich verbinden dürfen. Standardmäßig nutzen wir IPv4 RFC1918, IPv6-Link-Local und localhost für beide Familien.
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 der Zugriffslisten, die Sie hinzufügen möchten. Wir fügen automatisch das acl-Schlüsselwort davor hinzu. Beispiel: ['example srcdomain .example.com']
.
squid_acls: []
Liste der Zugriffslisten, die verfolgt werden sollen, und logge X-Forwarded-For als Host in den Logs. Diese Variable wird nur verwendet, wenn sie definiert ist.
squid_log_xff_acls: []
Setzen Sie squid_logformat
, wenn Sie das Format der Logs von Squid definieren müssen.
squid_logformat: <fällt auf den Standard zurück>
Setzen Sie dies auf true, wenn Sie einen Proxy möchten, der für den Umgang mit Ubuntu-Spiegeln optimiert ist, anstatt einen regulären Proxy.
squid_deb_proxy: false
Um Avahi zu ermöglichen, Ihren deb Proxy im Netzwerk zu broadcasten, setzen Sie dies auf true. Mit squid-deb-proxy-client
, der auf den Clients installiert ist, wird Ihr Proxy dann automatisch verwendet, wenn er im gleichen Multicast-Domain verfügbar ist.
squid_deb_proxy_avahi: false
Dies sind Standardwerte für die Teile squid_deb_proxy
, die nicht gelten, wenn die Variable squid_deb_proxy
auf false gesetzt ist. squid_mirror_debian
und squid_mirror_ubuntu
sind je nach Host, auf dem Sie Squid einrichten, standardmäßig auf true oder false gesetzt, wobei die anderen Optionen (außer squid_mirror_custom
) von diesen Einstellungen abhängen. squid_mirror_custom
sollte eine Liste sein.
squid_mirror_debian: true auf Debian-Servern, false andernfalls
squid_mirror_ubuntu: true auf Ubuntu-Servern, false andernfalls
squid_mirror_default: true
squid_mirror_3rdparty: true
squid_mirror_changelogs: true
squid_mirror_ppas: false
squid_mirror_custom: []
Wenn Sie sich nicht sicher sind, welche Repositories Ihre Benutzer verwenden werden, können Sie squid_mirror_match_all_repositories
auf true setzen. Dies wird versuchen, den Pfad der URL auf gültige Repository-Formate mit Regex zu überprüfen. Da Regex langsam ist, fügen wir dies als letzten Versuch hinzu und standardmäßig nicht ein.
squid_mirror_match_all_repositories: false
Wenn OpenDNS/Cisco Umbrella automatische Umleitung in Ihrem Netzwerk verwendet wird, benötigen Sie wahrscheinlich, dass der Cache-Server die Umleitungen unterstützt.
squid_mirror_opendns: false
Abgesehen von diesen definierten Variablen gibt es einige mit Standardwerten in den Vorlagen, die Sie anpassen können. Wir listen sie hier mit ihren Standardwerten im allgemeinen Variablenblock auf:
Es gibt Unterstützung für Cache-Peers durch die Verwendung einer Liste von Diktaten. Standardmäßig ist diese Variable nicht gesetzt. Wir beinhalten eine Reihe von Beispielen mit allen Optionen hier. Um Werte für diese Optionen zu finden, sollten Sie die Squid-Dokumentation besuchen. query_port
wird auf den Standard basierend auf query_type
gesetzt, wenn nicht gesetzt.
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
Wenn Sie die squid_cache_peers
nicht angeben möchten, haben wir einige Abkürzungen eingefügt, die automatische Standards für die anderen oben genannten Werte anwenden.
squid_parent_proxies: http://parent.example.org:8080
squid_sibling_proxies:
- sibling.example.org
- sibling.example.net:3129
Da verschiedene Umgebungen unterschiedlich sind, haben wir squid_direct_connections
hinzugefügt, um zu steuern, wann wir direkt mit den Ursprungsservern verbinden. Wir überprüfen immer, ob es Cache-Hits bei unseren Cache-Peers gibt, bevor wir entscheiden, wie wir die Anfrage erfüllen, was dieser Option interessant macht. always
verwendet immer eine direkte Verbindung und schlägt fehl, wenn das nicht funktioniert. never
verwendet immer einen Eltern-Proxy für die Anfrage und schlägt fehl, wenn das nicht funktioniert. prefer
bevorzugt eine Verbindung zum Ursprungsserver, fällt aber bei einem Fehler auf die Eltern-Proxys zurück. fallback
wird immer zuerst die Eltern-Proxys ausprobieren, aber direkte Verbindungen als Rückfall verwenden, falls das fehlschlägt. Standardmäßig ist dies nicht gesetzt, was zu den Standardwerten führt, die Ihre Squid-Installation verwendet.
squid_direct_connections: always never prefer fallback
Manchmal müssen Sie den Eltern-Proxy für einige Server umgehen. Wir erlauben es Ihnen jetzt, Eltern-Caches zu umgehen, indem Sie squid_bypass_parent
setzen, was eine Liste von Hostnamen darstellt.
squid_bypass_parent:
- server1.example.net
- server2.example.com
In einigen Fällen müssen Sie externe Anpassungen an dem durchführen, was für den Datenverkehr bereitgestellt wird. Squid unterstützt ICAP (Internet Content Adaptation Protocol) dafür. Sie können Dienste gemäß dem Beispiel definieren, wobei nur name
erforderlich ist, wenn Sie mit den Standardwerten zufrieden sind. bypass
wird nicht gesetzt, es sei denn, es ist definiert und verwendet den Squid-Standardwert. Diese Rolle wird sich nicht um die Einrichtung des ICAP-Dienstes kümmern.
squid_icap_policy:
- name: service
direction: in
bypass: false
url: icap://127.0.0.1:1344/service
access:
- acl: all
allow: true
Auf welchem Port sollten wir hören? Wenn wir ein Cache-Sibling sind, verwenden wir den definierten Port anstelle der Variable squid_http_port
für squid_deb_proxy
. Wenn squid_deb_proxy
nicht gesetzt ist, gibt es jetzt Unterstützung dafür, dass diese Variable eine Liste von Listen-Direktiven sein kann.
squid_http_port: 3128
Wie große Objekte sollten wir cachen? Der Standardwert ist für squid-deb-proxy.
squid_maximum_object_size: "512 MB"
Richten Sie ein cache_dir
ein, wenn Sie möchten. Normalerweise speichert Squid den Cache im Speicher, aber die aufgelisteten Standardwerte sind für squid-deb-proxy. squid_cache_size
ist in MB, also 40 GB.
squid_cache_type: 'aufs'
squid_cache_path: '/var/spool/squid'
squid_cache_size: 40000
squid_cache_options: '16 256'
Wie viel Arbeitsspeicher möchten wir verwenden und wie große Objekte werden wir dort speichern?
squid_cache_mem: "200 MB"
squid_max_object_mem_size: "10240 KB"
Falls Sie möchten, dass Squid andere Nameserver als das System verwendet, können Sie squid_nameservers
als String für einen einzelnen oder als Liste für mehrere definieren. Standardmäßig ist diese Option nicht gesetzt und wir verwenden die System-Nameserver.
squid_nameservers: 127.0.0.53
Beispiel-Playbook
- hosts: proxies
vars:
squid_deb_proxy: true
squid_mirror_custom:
- .ftp.acc.umu.se
squid_cache_size: 8000
roles:
- vcc_caeit.squid
Lizenz
GPLv2
Autoreninformation
Diese Rolle wurde im Jahr 2018 von Nafallo Bjälevik erstellt, während er Beratungsarbeiten für Volvo Cars Corporation durchführte.
ansible-galaxy install vcc_caeit.squid