geerlingguy.varnish

Rol de Ansible: Varnish

CI

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.

Instalar
ansible-galaxy install geerlingguy.varnish
Licencia
mit
Descargas
582.5k
Propietario
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns