geerlingguy.varnish

Ansible Rolle: Varnish

CI

Installiert den Varnish HTTP Cache auf RedHat/CentOS oder Debian/Ubuntu Linux.

Anforderungen

Benötigt das EPEL-Repository auf RedHat/CentOS (kann mit der Rolle geerlingguy.repo-epel installiert werden).

Rollenvariablen

Verfügbare Variablen sind unten aufgelistet, zusammen mit den Standardwerten (siehe defaults/main.yml):

varnish_package_name: "varnish"

Der Name des Varnish-Pakets, das installiert werden soll. Siehe apt-cache policy varnish oder yum list varnish für eine Liste der verfügbaren Pakete.

varnish_version: "6.6"

Die Varnish-Version, die installiert werden soll. Siehe die Varnish Cache packagecloud.io-Repositories für eine Liste der verfügbaren Versionen. Einige Beispiele sind: 6.6, 6.5, 6.4, 4.1, 3.0 und 2.1.

varnish_config_path: /etc/varnish

Der Pfad, in dem die Varnish-Konfigurationsdateien gespeichert werden.

varnish_use_default_vcl: true

Ob die mitgelieferte (einfache) Standard-Varnish-VCL verwendet werden soll, die den nächsten beiden Variablen zugeordneten Backend-Host/Port nutzt. Setze dies auf false und kopiere deine eigene default.vcl-Datei in den varnish_config_path, wenn du eine kompliziertere Konfiguration verwenden möchtest. Wenn diese Variable auf true gesetzt ist, werden alle anderen Einstellungen aus Varnish's eigener Standard-VCL übernommen.

varnish_default_vcl_template_path: default.vcl.j2

Die Standard-VCL-Datei, die kopiert werden soll (wenn varnish_use_default_vcl auf true gesetzt ist). Standardsmäßig die einfache Vorlage innerhalb von templates/default.vcl.j2. Dieser Pfad sollte relativ zu dem Verzeichnis sein, aus dem du dein Playbook ausführst.

varnish_listen_address: ""
varnish_listen_port: "80"

Die Adresse und der Port, auf dem Varnish hören wird. Die Standardeinstellungen lassen Varnish auf allen Schnittstellen an Port 80 hören, aber du kannst eine Adresse und/oder einen anderen Port angeben, wenn gewünscht.

varnish_default_backend_host: "127.0.0.1"
varnish_default_backend_port: "8080"

Einige Einstellungen für die Standard-„default.vcl“-Vorlage, die in den varnish_config_path-Ordner kopiert wird. Der Standard-Backend-Host/Port könnte Apache oder Nginx (oder einen anderen HTTP-Server) sein, der auf dem gleichen Host oder einem anderen Host läuft (in diesem Fall könnte man Port 80 verwenden).

varnish_limit_nofile: 131072

Das nofiles PAM-Limit, das Varnish für geöffnete Dateien zu setzen versucht. Der normale Standardwert ist 1024, was für die Nutzung von Varnish viel zu niedrig ist.

varnish_secret: "14bac2e6-1e34-4770-8078-974373b76c90"

Der Schlüssel, der für die Verbindung zur Varnish-Admin-Oberfläche (für Löschanfragen usw.) verwendet wird.

varnish_admin_listen_host: "127.0.0.1"
varnish_admin_listen_port: "6082"

Der Host und der Port, über die Varnish Admin-Anfragen (wie Lösch- und Statusanfragen) akzeptiert.

varnish_storage: "file,/var/lib/varnish/varnish_storage.bin,256M"

Wie Varnish Cache-Einträge speichert (dies wird als Argument für -s übergeben). Wenn du In-Memory-Speicher verwenden möchtest, ändere es in etwas wie malloc,256M. Bitte lies Varnish's Getting Started Guide für weitere Informationen.

varnish_pidfile: /run/varnishd.pid

Pfad zur Varnish PID-Datei. Setze auf eine leere Zeichenfolge, wenn du keine PID-Datei verwenden möchtest.

varnishd_extra_options: ""

Zusätzliche Optionen oder Flags, die beim Start des Varnish-Daemons übergeben werden sollen (z. B. -p http_max_hdr=128).

varnish_enabled_services:
  - varnish

Dienste, die beim Booten gestartet werden und nach Abschluss dieser Rolle laufen sollten. Möglicherweise musst du zusätzliche Dienste hinzufügen, wenn erforderlich, z. B. varnishncsa und varnishlog. Wenn auf ein leeres Array gesetzt, werden beim Start keine Dienste aktiviert.

varnish_packagecloud_repo_yum_repository_priority: "1"

(Nur RedHat/CentOS) Die yum-Priorität für das Packagecloud-Repository, das zur Installation von Varnish verwendet wird. Durch das explizite Setzen wird yum gezwungen, die Packagecloud-Repositories zu verwenden, um Varnish zu installieren, selbst in Umgebungen (z. B. Amazon Linux), in denen andere Repositories höhere Prioritäten als das Standard-Repository haben.

varnish_apt_repo: deb https://packagecloud.io/varnishcache/{{ varnish_packagecloud_repo }}/{{ ansible_distribution | lower }}/ {{ ansible_distribution_release }} main

(Nur Debian/Ubuntu) Das repo für das APT-Repository.

varnish_yum_repo_baseurl: https://packagecloud.io/varnishcache/{{ varnish_packagecloud_repo }}/el/{{ ansible_distribution_major_version|int }}/$basearch

(Nur RedHat/CentOS) Die baseurl für das Yum-Repository.

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

Du kannst mehrere Backends konfigurieren (und den Verkehr von mehreren virtuellen Hosts an verschiedene Backends leiten) mit den Variablen varnish_backends und varnish_vhosts. Wenn du nur ein Backend verwendest (definiert über varnish_default_backend_host und varnish_default_backend_port), musst du diese Variablen nicht definieren. Füge keinen www zu den vhosts-Schlüsseln hinzu; dies wird automatisch von der default.vcl.j2 VCL-Vorlage hinzugefügt.

Abhängigkeiten

Keine.

Beispiel-Playbook

- hosts: webservers
  vars_files:
    - vars/main.yml
  roles:
    - geerlingguy.varnish

In vars/main.yml:

varnish_secret: "[secret generated by uuidgen]"
varnish_default_backend_port: 81
... usw. ...

Lizenz

MIT / BSD

Autorinformationen

Diese Rolle wurde 2014 von Jeff Geerling erstellt, dem Autor von Ansible for DevOps.

Installieren
ansible-galaxy install geerlingguy.varnish
Lizenz
mit
Downloads
582.5k
Besitzer
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns