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.
ansible-galaxy install vcc_caeit.squid