geerlingguy.varnish

Rôle Ansible : Varnish

CI

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.

Installer
ansible-galaxy install geerlingguy.varnish
Licence
mit
Téléchargements
582.5k
Propriétaire
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns