geerlingguy.varnish
Ansible Rolle: Varnish
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.
Varnish for Linux.
ansible-galaxy install geerlingguy.varnish