vcc_caeit.squid

Rola Ansible: squid

Celem tej roli jest skonfigurowanie Squid na Ubuntu 16.04 LTS, a w przyszłości również na nowszych wersjach LTS.

Dodatkowo, główną inspiracją do stworzenia tej roli była integracja wsparcia dla pakietu squid-deb-proxy (w momencie pisania).

Zmienne Roli

Dostępne zmienne są wymienione poniżej, wraz z wartościami domyślnymi (patrz defaults/main.yml):

Ustawiamy visible_hostname na wartość ansible_host.

squid_hostname: "{{ ansible_host }}"

W squid_allowed_networks definiujemy listę sieci, które mogą się łączyć. Domyślnie ustawiamy na IPv4 RFC1918, link-lokalny IPv6 oraz localhost dla obu rodzin.

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

Lista wpisów do listy dostępu, które chcesz dodać. Automatycznie przedrostek acl jest dodawany. Przykład: ['example srcdomain .example.com'].

squid_acls: []

Lista pasujących list dostępu do monitorowania i rejestrowania X-Forwarded-For jako host w dziennikach. Ta zmienna działa tylko, jeśli jest zdefiniowana.

squid_log_xff_acls: []

Ustaw squid_logformat, jeśli musisz zdefiniować format dziennika używanego przez squid.

squid_logformat: <fallback to default>

Ustaw tę zmienną na true, jeśli chcesz, aby proxy było zoptymalizowane do obsługi luster Ubuntu, a nie zwykłego proxy.

squid_deb_proxy: false

Aby Avahi ogłaszał Twoje proxy deb na sieci, ustaw to na true. Po zainstalowaniu squid-deb-proxy-client na klientach Twoje proxy będzie automatycznie używane, jeśli będzie dostępne w tej samej domenie multicast.

squid_deb_proxy_avahi: false

To są domyślne wartości dla części squid_deb_proxy i nie mają zastosowania, gdy zmienna squid_deb_proxy jest ustawiona na false. squid_mirror_debian i squid_mirror_ubuntu domyślnie wynoszą true lub false w zależności od hosta, na którym konfigurujesz Squid, z innymi opcjami (z wyjątkiem squid_mirror_custom), które zależą od tych ustawień. squid_mirror_custom powinno być listą.

squid_mirror_debian: true na serwerach Debian, false w przeciwnym razie
squid_mirror_ubuntu: true na serwerach Ubuntu, false w przeciwnym razie
squid_mirror_default: true
squid_mirror_3rdparty: true
squid_mirror_changelogs: true
squid_mirror_ppas: false
squid_mirror_custom: []

Jeśli nie jesteś pewien, które repozytoria będą używane przez Twoich użytkowników, możesz ustawić squid_mirror_match_all_repositories na true. To spróbuje dopasować ścieżkę URL do prawidłowych formatów repozytoriów w Regex. Ponieważ regex jest wolny, dodajemy to jako ostatnią opcję i domyślnie nie uwzględniamy tego.

squid_mirror_match_all_repositories: false

Gdy automatyczne przekierowanie OpenDNS/Cisco Umbrella jest używane w Twojej sieci, prawdopodobnie będziesz potrzebować serwera pamięci podręcznej, aby wspierał te przekierowania.

squid_mirror_opendns: false

Oprócz tych zdefiniowanych zmiennych, istnieje kilka z domyślnymi wartościami w szablonach, które możesz dostosować. Wymieniamy je tutaj z ich wartościami domyślnymi w ogólnym bloku zmiennych:

Istnieje wsparcie dla peerów pamięci podręcznej, używając listy słowników. Domyślnie ta zmienna jest nieustawiona. Tutaj prezentujemy zestaw przykładów ze wszystkimi opcjami. Aby dowiedzieć się wartości tych opcji, powinieneś zapoznać się z dokumentacją Squid. query_port zostanie ustawiony na domyślną wartość w oparciu o query_type, jeśli nie jest ustawiony.

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

Jeśli nie chcesz określać squid_cache_peers, dołączamy kilka skrótów, które stosują rozsądne wartości domyślne dla innych powyższych wartości.

squid_parent_proxies: http://parent.example.org:8080
squid_sibling_proxies:
  - sibling.example.org
  - sibling.example.net:3129

Ponieważ różne środowiska są różne, dodaliśmy squid_direct_connections, aby obsłużyć bezpośrednie połączenia z serwerami źródłowymi. Zawsze sprawdzamy, czy nasze pamięci podręczne zawierają wymagane dane przed podjęciem decyzji, jak spełnić żądanie, co sprawia, że ta opcja jest interesująca. always zawsze używa bezpośredniego połączenia i zawiedzie, gdy to nie zadziała. never zawsze używa proxy nadrzędnego dla żądania i zawiedzie, jeśli to nie zadziała. prefer preferuje połączenie z serwerem źródłowym, ale w razie awarii przechodzi do proxy nadrzędnego. fallback zawsze próbuje najpierw proxy nadrzędne, ale podczas awarii korzysta z bezpośrednich połączeń. Domyślnie ta opcja nie jest ustawiona, co wykorzysta domyślne ustawienia Twojej instalacji Squid.

squid_direct_connections: always never prefer fallback

Czasami musisz ominąć proxy nadrzędne dla niektórych serwerów. Teraz pozwalamy na pominięcie nadrzędnych pamięci podręcznych, ustawiając squid_bypass_parent, które jest listą nazw hostów.

squid_bypass_parent:
  - server1.example.net
  - server2.example.com

W niektórych przypadkach potrzebujesz wprowadzić zmiany w tym, co trafia do użytkownika. Squid wspiera ICAP (Internet Content Adaptation Protocol) w tym celu. Możesz zdefiniować usługi według podanego przykładu, chociaż tylko name jest wymagane, jeśli zgadzasz się z wartościami domyślnymi. bypass nie zostanie ustawione, chyba że to zdefiniujesz, a wtedy użyje domyślnej wartości Squid. Ta rola nie zajmie się konfiguracją usługi ICAP(ów).

squid_icap_policy:
  - name: service
    direction: in
    bypass: false
    url: icap://127.0.0.1:1344/service
    access:
      - acl: all
        allow: true

Na jakim porcie powinniśmy nasłuchiwać. Jeśli jesteśmy siostrzanym pamięcią podręczną, użyjemy zdefiniowanego portu zamiast zmiennej squid_http_port dla squid_deb_proxy. Gdy squid_deb_proxy nie jest ustawione, istnieje wsparcie dla tej zmiennej jako listy dyrektyw Listen.

squid_http_port: 3128

Jak dużych obiektów powinniśmy używać w pamięci podręcznej? Wartość domyślna jest dla squid-deb-proxy.

squid_maximum_object_size: "512 MB"

Skonfiguruj cache_dir, jeśli chcesz. Zwykle Squid pamiętuje dane w pamięci, ale podane domyślne są dla squid-deb-proxy. squid_cache_size jest w MB, więc 40 GB.

squid_cache_type: 'aufs'
squid_cache_path: '/var/spool/squid' 
squid_cache_size: 40000
squid_cache_options: '16 256'

Ile pamięci chcemy używać oraz jak dużych obiektów będziemy tam przechowywać.

squid_cache_mem: "200 MB"
squid_max_object_mem_size: "10240 KB"

Jeśli potrzebujesz, aby Squid korzystał z innych serwerów nazw niż systemowe, możesz zdefiniować squid_nameservers jako łańcuch dla pojedynczego serwera lub listę dla wielu. Domyślnie ta opcja nie jest ustawiona, więc używamy serwera nazw systemu.

squid_nameservers: 127.0.0.53

Przykładowy Playbook

- hosts: proxies
  vars:
    squid_deb_proxy: true
    squid_mirror_custom:
      - .ftp.acc.umu.se
    squid_cache_size: 8000
  roles:
    - vcc_caeit.squid

Licencja

GPLv2

Informacje o autorze

Ta rola została stworzona w 2018 roku przez Nafallo Bjälevika, podczas pracy konsultacyjnej dla Volvo Cars Corporation.

O projekcie

Squid for Ubuntu, with squid-deb-proxy support

Zainstaluj
ansible-galaxy install vcc_caeit.squid
Licencja
gpl-2.0
Pobrania
15.6k
Właściciel
The CAE IT team handles HPC clusters and Linux applications at Volvo Cars