geerlingguy.varnish
Rola Ansible: Varnish
Instaluje Varnish HTTP Cache na systemach RedHat/CentOS lub Debian/Ubuntu.
Wymagania
Wymaga repozytorium EPEL na RedHat/CentOS (możesz je zainstalować, używając roli geerlingguy.repo-epel
).
Zmienne Roli
Dostępne zmienne są wymienione poniżej, wraz z wartościami domyślnymi (zobacz defaults/main.yml
):
varnish_package_name: "varnish"
Nazwa pakietu Varnish, który chcesz zainstalować. Zobacz apt-cache policy varnish
lub yum list varnish
aby uzyskać listę dostępnych opcji.
varnish_version: "6.6"
Wersja Varnish, która powinna być zainstalowana. Zobacz repozytoria Varnish Cache na packagecloud.io aby uzyskać listę dostępnych wersji. Przykłady to: 6.6
, 6.5
, 6.4
, 4.1
, 3.0
i 2.1
.
varnish_config_path: /etc/varnish
Ścieżka, w której będą przechowywane pliki konfiguracyjne Varnish.
varnish_use_default_vcl: true
Czy używać domyślnego (proste) VCL Varnish, korzystając z zdefiniowanego hosta/portu dla backendu w dwóch kolejnych zmiennych. Ustaw na false
i skopiuj własny plik default.vcl
do varnish_config_path
, jeśli chcesz używać bardziej skomplikowanej konfiguracji. Jeśli ta zmienna jest ustawiona na true
, wszystkie inne ustawienia będą pochodzić z własnego domyślnego VCL Varnish.
varnish_default_vcl_template_path: default.vcl.j2
Domyślny plik VCL, który ma być skopiowany (jeśli varnish_use_default_vcl
to true
). Domyślnie wskazuje na prosty szablon wewnątrz templates/default.vcl.j2
. Ta ścieżka powinna być względna do katalogu, z którego uruchamiasz swój playbook.
varnish_listen_address: ""
varnish_listen_port: "80"
Adres i port, na którym Varnish będzie nasłuchiwał. Wartości domyślne informują Varnish, aby nasłuchiwał na wszystkich interfejsach na porcie 80, ale możesz określić adres i/lub inny port, jeśli chcesz.
varnish_default_backend_host: "127.0.0.1"
varnish_default_backend_port: "8080"
Niektóre ustawienia dla domyślnego szablonu "default.vcl", który zostanie skopiowany do folderu varnish_config_path
. Domyślny host/port backendu może być Apache lub Nginx (lub innym serwerem HTTP) działającym na tym samym hoście lub innym hoście (w takim przypadku możesz użyć portu 80).
varnish_limit_nofile: 131072
Limit nofiles
PAM, który Varnish spróbuje ustawić dla otwartych plików. Normalna wartość domyślna to 1024, co jest znacznie zbyt niskie dla użycia Varnisha.
varnish_secret: "14bac2e6-1e34-4770-8078-974373b76c90"
Sekret/klucz używany do łączenia się z administracyjnym backendem Varnisha (na przykład do żądań usunięcia itp.).
varnish_admin_listen_host: "127.0.0.1"
varnish_admin_listen_port: "6082"
Host i port, przez które Varnish będzie przyjmował żądania administracyjne (takie jak żądania usunięcia i statusu).
varnish_storage: "file,/var/lib/varnish/varnish_storage.bin,256M"
Jak Varnish przechowuje wpisy w pamięci podręcznej (przekazywane jako argument dla -s
). Jeśli chcesz używać pamięci operacyjnej, zmień na coś w stylu malloc,256M
. Proszę przeczytać przewodnik Wprowadzenie do Varnisha w celu uzyskania dodatkowych informacji.
varnish_pidfile: /run/varnishd.pid
Ścieżka do pliku PID Varnisha. Ustaw na pusty ciąg, jeśli nie chcesz używać pliku PID.
varnishd_extra_options: ""
Dodatkowe opcje lub flagi do przekazania do demona Varnish podczas uruchamiania (np. -p http_max_hdr=128
).
varnish_enabled_services:
- varnish
Usługi, które będą uruchamiane przy starcie i powinny działać po zakończeniu tej roli. Może być konieczne dodanie dodatkowych usług, jeśli zajdzie potrzeba, np. varnishncsa
i varnishlog
. Jeśli ustawisz to jako pustą tablicę, żadna usługa nie zostanie włączona przy starcie.
varnish_packagecloud_repo_yum_repository_priority: "1"
(Tylko RedHat/CentOS) Priorytet yum
dla repozytorium Packagecloud używanego do instalacji Varnisha. Ustawienie tego explicite zmusza yum do korzystania z repozytoriów Packagecloud do instalacji Varnisha, nawet w środowiskach (np. Amazon Linux), gdzie inne repozytoria mogą mieć wyższe priorytety niż domyślne.
varnish_apt_repo: deb https://packagecloud.io/varnishcache/{{ varnish_packagecloud_repo }}/{{ ansible_distribution | lower }}/ {{ ansible_distribution_release }} main
(Tylko Debian/Ubuntu) repo
dla repozytorium apt.
varnish_yum_repo_baseurl: https://packagecloud.io/varnishcache/{{ varnish_packagecloud_repo }}/el/{{ ansible_distribution_major_version|int }}/$basearch
(Tylko RedHat/CentOS) baseurl
dla repozytorium yum.
varnish_backends:
apache:
host: 10.0.2.2
port: 80
nodejs:
host: 10.0.2.3
port: 80
varnish_vhosts:
example.com:
backend: apache
nodejs.example.com:
backend: nodejs
Możesz skonfigurować wiele backendów (i kierować ruch z wielu wirtualnych hostów do różnych backendów) używając zmiennych varnish_backends
i varnish_vhosts
. Jeśli używasz tylko jednego backendu (zdefiniowanego poprzez varnish_default_backend_host
i varnish_default_backend_port
), to nie musisz definiować tych zmiennych. Nie dodawaj www
do kluczy vhosts
; jest to dodawane automatycznie przez szablon default.vcl.j2
.
Zależności
Brak.
Przykładowy Playbook
- hosts: webservers
vars_files:
- vars/main.yml
roles:
- geerlingguy.varnish
W pliku vars/main.yml
:
varnish_secret: "[sekret wygenerowany przez uuidgen]"
varnish_default_backend_port: 81
... itd ...
Licencja
MIT / BSD
Informacje o autorze
Ta rola została stworzona w 2014 roku przez Jeffa Geerlinga, autora Ansible for DevOps.
Varnish for Linux.
ansible-galaxy install geerlingguy.varnish