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.

Über das Projekt

Squid for Ubuntu, with squid-deb-proxy support

Installieren
ansible-galaxy install vcc_caeit.squid
GitHub Repository
Lizenz
gpl-2.0
Downloads
15.6k
Besitzer
The CAE IT team handles HPC clusters and Linux applications at Volvo Cars