geerlingguy.varnish
Rol de Ansible: Varnish
Instala el Varnish HTTP Cache en Linux RedHat/CentOS o Debian/Ubuntu.
Requisitos
Requiere el repositorio EPEL en RedHat/CentOS (puedes instalarlo usando el rol geerlingguy.repo-epel
).
Variables del Rol
Las variables disponibles se enumeran a continuación, junto con los valores predeterminados (ver defaults/main.yml
):
varnish_package_name: "varnish"
Nombre del paquete de Varnish que deseas instalar. Consulta apt-cache policy varnish
o yum list varnish
para ver la lista de candidatos disponibles.
varnish_version: "6.6"
Versión de Varnish que se debe instalar. Consulta los repositorios de Varnish Cache en packagecloud.io para ver la lista de versiones disponibles. Algunos ejemplos incluyen: 6.6
, 6.5
, 6.4
, 4.1
, 3.0
y 2.1
.
varnish_config_path: /etc/varnish
La ruta en la que se almacenarán los archivos de configuración de Varnish.
varnish_use_default_vcl: true
Si usar o no el VCL básico predeterminado de Varnish, utilizando el host/puerto backend definido con las siguientes dos variables. Establece esto en false
y copia tu propio archivo default.vcl
en el varnish_config_path
si deseas usar una configuración más complicada. Si esta variable se establece en true
, toda otra configuración se tomará del VCL predeterminado de Varnish.
varnish_default_vcl_template_path: default.vcl.j2
El archivo VCL predeterminado que se copiará (si varnish_use_default_vcl
es true
). Por defecto, utiliza la plantilla simple dentro de templates/default.vcl.j2
. Esta ruta debe ser relativa al directorio desde el cual ejecutas tu playbook.
varnish_listen_address: ""
varnish_listen_port: "80"
La dirección y puerto en los que Varnish escuchará. Los valores por defecto indican a Varnish que escuche en todas las interfaces en el puerto 80, pero puedes especificar una dirección y/o puerto alternativo si lo deseas.
varnish_default_backend_host: "127.0.0.1"
varnish_default_backend_port: "8080"
Algunas configuraciones para la plantilla "default.vcl" que se copiará en la carpeta varnish_config_path
. El host/puerto backend predeterminado podría ser Apache o Nginx (u otro servidor HTTP) que se ejecuta en el mismo host o en otro (en cuyo caso, podrías usar el puerto 80 en su lugar).
varnish_limit_nofile: 131072
El límite nofiles
de PAM que Varnish intentará establecer para archivos abiertos. El valor predeterminado normal es 1024, lo cual es demasiado bajo para el uso de Varnish.
varnish_secret: "14bac2e6-1e34-4770-8078-974373b76c90"
La clave/segredo que se utilizará para conectarse al backend de administración de Varnish (para solicitudes de purga, etc.).
varnish_admin_listen_host: "127.0.0.1"
varnish_admin_listen_port: "6082"
El host y el puerto a través de los cuales Varnish aceptará solicitudes administrativas (como solicitudes de purga y estado).
varnish_storage: "file,/var/lib/varnish/varnish_storage.bin,256M"
Cómo Varnish almacena las entradas de caché (esto se pasa como argumento para -s
). Si deseas utilizar almacenamiento en memoria, cambia a algo como malloc,256M
. Por favor, consulta la guía de inicio de Varnish para más información.
varnish_pidfile: /run/varnishd.pid
Ruta del archivo PID de Varnish. Establece a una cadena vacía si no deseas usar un archivo PID.
varnishd_extra_options: ""
Opciones o flags adicionales para pasar al demonio de Varnish al iniciar (por ejemplo, -p http_max_hdr=128
).
varnish_enabled_services:
- varnish
Servicios que se iniciarán al arranque y que deberían estar en funcionamiento después de que finalice este rol. Es posible que debas agregar servicios adicionales si es necesario, por ejemplo, varnishncsa
y varnishlog
. Si se establece en un array vacío, no se habilitarán servicios al inicio.
varnish_packagecloud_repo_yum_repository_priority: "1"
(Solo RedHat/CentOS) La prioridad yum
para el repositorio Packagecloud utilizado para instalar Varnish. Establecer esto explícitamente obliga a yum a utilizar los repositorios Packagecloud para instalar Varnish incluso en entornos (por ejemplo, Amazon Linux) donde otros repositorios pueden tener prioridades más altas que el predeterminado.
varnish_apt_repo: deb https://packagecloud.io/varnishcache/{{ varnish_packagecloud_repo }}/{{ ansible_distribution | lower }}/ {{ ansible_distribution_release }} main
(Solo Debian/Ubuntu) El repo
para el repositorio apt.
varnish_yum_repo_baseurl: https://packagecloud.io/varnishcache/{{ varnish_packagecloud_repo }}/el/{{ ansible_distribution_major_version|int }}/$basearch
(Solo RedHat/CentOS) La baseurl
para el repositorio 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
Puedes configurar múltiples backends (y dirigir el tráfico de múltiples hosts virtuales a diferentes backends) utilizando las variables varnish_backends
y varnish_vhosts
. Si solo utilizas un backend (definido mediante varnish_default_backend_host
y varnish_default_backend_port
), entonces no necesitas definir estas variables. No agregues un www
a las claves de vhosts
; se añadirá automáticamente por la plantilla VCL default.vcl.j2
.
Dependencias
Ninguna.
Ejemplo de Playbook
- hosts: webservers
vars_files:
- vars/main.yml
roles:
- geerlingguy.varnish
Dentro de vars/main.yml
:
varnish_secret: "[secreto generado por uuidgen]"
varnish_default_backend_port: 81
... etc ...
Licencia
MIT / BSD
Información del Autor
Este rol fue creado en 2014 por Jeff Geerling, autor de Ansible for DevOps.
Varnish for Linux.
ansible-galaxy install geerlingguy.varnish