geerlingguy.varnish
Rôle Ansible : Varnish
Installe le Varnish HTTP Cache sur les systèmes Linux RedHat/CentOS ou Debian/Ubuntu.
Exigences
Nécessite le dépôt EPEL sur RedHat/CentOS (vous pouvez l'installer en utilisant le rôle geerlingguy.repo-epel
).
Variables du rôle
Les variables disponibles sont listées ci-dessous, avec des valeurs par défaut (voir defaults/main.yml
) :
varnish_package_name: "varnish"
Nom du paquet Varnish que vous souhaitez installer. Consultez apt-cache policy varnish
ou yum list varnish
pour voir la liste des candidats disponibles.
varnish_version: "6.6"
Version de Varnish qui doit être installée. Consultez les dépôts packagecloud.io de Varnish Cache pour voir la liste des versions disponibles. Quelques exemples incluent : 6.6
, 6.5
, 6.4
, 4.1
, 3.0
, et 2.1
.
varnish_config_path: /etc/varnish
Le chemin où seront stockés les fichiers de configuration de Varnish.
varnish_use_default_vcl: true
Indique s'il faut utiliser le VCL par défaut fourni (simpliste) de Varnish, en utilisant le backend host/port défini avec les deux variables suivantes. Mettez ceci sur false
et copiez votre propre fichier default.vcl
dans le varnish_config_path
si vous souhaitez utiliser une configuration plus complexe. Si cette variable est définie sur true
, toutes les autres configurations seront prises du VCL par défaut de Varnish.
varnish_default_vcl_template_path: default.vcl.j2
Le fichier VCL par défaut à copier (si varnish_use_default_vcl
est true
). Par défaut, il utilise le modèle simple à l'intérieur de templates/default.vcl.j2
. Ce chemin doit être relatif au répertoire depuis lequel vous exécutez votre playbook.
varnish_listen_address: ""
varnish_listen_port: "80"
L'adresse et le port auxquels Varnish écoutera. Les valeurs par défaut indiquent à Varnish d'écouter sur toutes les interfaces sur le port 80, mais vous pouvez spécifier une adresse et/ou un port alternatif si désiré.
varnish_default_backend_host: "127.0.0.1"
varnish_default_backend_port: "8080"
Certaines paramètres pour le modèle par défaut "default.vcl" qui sera copié dans le dossier varnish_config_path
. L'hôte/port backend par défaut pourrait être Apache ou Nginx (ou un autre serveur HTTP) fonctionnant sur le même hôte ou un autre hôte (dans ce cas, vous pourriez utiliser le port 80 à la place).
varnish_limit_nofile: 131072
La limite nofiles
PAM que Varnish tentera de définir pour les fichiers ouverts. La valeur par défaut normale est 1024, qui est beaucoup trop basse pour l'utilisation de Varnish.
varnish_secret: "14bac2e6-1e34-4770-8078-974373b76c90"
Le secret/clé à utiliser pour se connecter à l'interface d'administration de Varnish (pour les requêtes de purge, etc.).
varnish_admin_listen_host: "127.0.0.1"
varnish_admin_listen_port: "6082"
L'hôte et le port par lesquels Varnish acceptera les requêtes d'administration (comme les requêtes de purge et d'état).
varnish_storage: "file,/var/lib/varnish/varnish_storage.bin,256M"
Comment Varnish stocke les entrées de cache (cela est passé en tant qu'argument pour -s
). Si vous souhaitez utiliser un stockage en mémoire, changez pour quelque chose comme malloc,256M
. Veuillez lire le guide de démarrage de Varnish pour plus d'informations.
varnish_pidfile: /run/varnishd.pid
Chemin du fichier PID de Varnish. Mettez sur une chaîne vide si vous ne souhaitez pas utiliser de fichier PID.
varnishd_extra_options: ""
Options ou drapeaux supplémentaires à passer au démon Varnish lors de son démarrage (par exemple, -p http_max_hdr=128
).
varnish_enabled_services:
- varnish
Services qui seront démarrés au démarrage et qui devront être en cours d'exécution après la fin de ce rôle. Vous devrez peut-être ajouter des services supplémentaires si nécessaire, par exemple varnishncsa
et varnishlog
. Si défini comme un tableau vide, aucun service ne sera activé au démarrage.
varnish_packagecloud_repo_yum_repository_priority: "1"
(Uniquement pour RedHat/CentOS) La priorité yum
pour le dépôt Packagecloud utilisé pour installer Varnish. La définir explicitement force yum à utiliser les dépôts Packagecloud pour installer Varnish même dans des environnements (par exemple, Amazon Linux) où d'autres dépôts peuvent avoir des priorités plus élevées que la valeur par défaut.
varnish_apt_repo: deb https://packagecloud.io/varnishcache/{{ varnish_packagecloud_repo }}/{{ ansible_distribution | lower }}/ {{ ansible_distribution_release }} main
(Uniquement pour Debian/Ubuntu) Le repo
pour le dépôt apt.
varnish_yum_repo_baseurl: https://packagecloud.io/varnishcache/{{ varnish_packagecloud_repo }}/el/{{ ansible_distribution_major_version|int }}/$basearch
(Uniquement pour RedHat/CentOS) Le baseurl
pour le dépôt 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
Vous pouvez configurer plusieurs backends (et diriger le trafic de plusieurs hôtes virtuels vers différents backends) en utilisant les variables varnish_backends
et varnish_vhosts
. Si vous n'utilisez qu'un seul backend (défini via varnish_default_backend_host
et varnish_default_backend_port
), alors vous n'avez pas besoin de définir ces variables. N'ajoutez pas de www
aux clés vhosts
; cela est ajouté automatiquement par le modèle VCL default.vcl.j2
.
Dépendances
Aucune.
Exemple de Playbook
- hosts: webservers
vars_files:
- vars/main.yml
roles:
- geerlingguy.varnish
À l'intérieur de vars/main.yml
:
varnish_secret: "[secret généré par uuidgen]"
varnish_default_backend_port: 81
... etc ...
Licence
MIT / BSD
Informations sur l'auteur
Ce rôle a été créé en 2014 par Jeff Geerling, auteur de Ansible for DevOps.
Varnish for Linux.
ansible-galaxy install geerlingguy.varnish