geerlingguy.varnish

Rola Ansible: Varnish

CI

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.

Zainstaluj
ansible-galaxy install geerlingguy.varnish
Licencja
mit
Pobrania
582.5k
Właściciel
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns