geerlingguy.varnish

Ansible 角色: Varnish

CI

在 RedHat/CentOS 或 Debian/Ubuntu Linux 上安装 Varnish HTTP Cache

要求

在 RedHat/CentOS 上需要 EPEL 仓库(可以使用 geerlingguy.repo-epel 角色来安装)。

角色变量

可用变量列在下面,并附带默认值(请参见 defaults/main.yml):

varnish_package_name: "varnish"

要安装的 Varnish 包名称。有关可用候选项的列表,请参见 apt-cache policy varnishyum list varnish

varnish_version: "6.6"

要安装的 Varnish 版本。有关可用版本的列表,请参见 Varnish Cache packagecloud.io 仓库。一些示例包括: 6.66.56.44.13.02.1

varnish_config_path: /etc/varnish

Varnish 配置文件将存储的路径。

varnish_use_default_vcl: true

是否使用包含的(简单的)默认 Varnish VCL,使用接下来两个变量定义的后端主机/端口。如果希望使用更复杂的设置,请将此设置为 false,并将自己的 default.vcl 文件复制到 varnish_config_path。如果该变量设置为 true,所有其他配置将来自 Varnish 自己的 默认 VCL

varnish_default_vcl_template_path: default.vcl.j2

将被复制的默认 VCL 文件(如果 varnish_use_default_vcltrue)。默认为 templates/default.vcl.j2 中的简单模板。该路径应相对于运行 playbook 的目录。

varnish_listen_address: ""
varnish_listen_port: "80"

Varnish 监听的地址和端口。默认情况下,Varnish 在所有接口上监听 80 端口,但可以根据需要指定地址和/或备用端口。

varnish_default_backend_host: "127.0.0.1"
varnish_default_backend_port: "8080"

将要复制到 varnish_config_path 文件夹中的默认 "default.vcl" 模板的一些设置。默认的后端主机/端口可以是运行在同一主机或其他主机上的 Apache 或 Nginx(在这种情况下,您可以使用 80 端口)。

varnish_limit_nofile: 131072

Varnish 尝试设置的 nofiles PAM 限制。正常的默认值为 1024,这对 Varnish 的使用来说低得多。

varnish_secret: "14bac2e6-1e34-4770-8078-974373b76c90"

用于连接 Varnish 管理后端(例如清除请求等)的秘密/密钥。

varnish_admin_listen_host: "127.0.0.1"
varnish_admin_listen_port: "6082"

Varnish 将接受管理请求(如清除和状态请求)的主机和端口。

varnish_storage: "file,/var/lib/varnish/varnish_storage.bin,256M"

Varnish 存储缓存条目的方式(作为 -s 的参数传递)。如果要使用内存存储,可以改为使用 malloc,256M。有关更多信息,请阅读 Varnish 的 入门指南

varnish_pidfile: /run/varnishd.pid

Varnish PID 文件路径。如果不想使用 PID 文件,请将其设置为空字符串。

varnishd_extra_options: ""

启动 Varnish 守护进程时传递的额外选项或标志(例如 -p http_max_hdr=128)。

varnish_enabled_services:
  - varnish

在启动时将启动的服务,并且在角色完成后应继续运行。如果需要,可以添加其他服务,例如 varnishncsavarnishlog。如果设置为空数组,则不会在启动时启用任何服务。

varnish_packagecloud_repo_yum_repository_priority: "1"

(仅限 RedHat/CentOS)用于安装 Varnish 的 Packagecloud 仓库的 yum 优先级。显式设置此值将强制 yum 使用 Packagecloud 仓库来安装 Varnish,即使在其他仓库的优先级高于默认值的环境(例如 Amazon Linux)中也是如此。

varnish_apt_repo: deb https://packagecloud.io/varnishcache/{{ varnish_packagecloud_repo }}/{{ ansible_distribution | lower }}/ {{ ansible_distribution_release }} main

(仅限 Debian/Ubuntu)apt 仓库的 repo

varnish_yum_repo_baseurl: https://packagecloud.io/varnishcache/{{ varnish_packagecloud_repo }}/el/{{ ansible_distribution_major_version|int }}/$basearch

(仅限 RedHat/CentOS)yum 仓库的 baseurl

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

您可以使用 varnish_backendsvarnish_vhosts 变量配置多个后端(并将来自多个虚拟主机的流量定向到不同的后端)。如果您只使用一个后端(通过 varnish_default_backend_hostvarnish_default_backend_port 定义),则无需定义这些变量。请勿在 vhosts 键中添加 www,它会由 default.vcl.j2 VCL 模板自动添加。

依赖

无。

示例 Playbook

- hosts: webservers
  vars_files:
    - vars/main.yml
  roles:
    - geerlingguy.varnish

vars/main.yml

varnish_secret: "[由 uuidgen 生成的秘密]"
varnish_default_backend_port: 81
... 等等 ...

许可证

MIT / BSD

作者信息

该角色由 Jeff Geerling 创建于 2014 年,他是 Ansible for DevOps 的作者。

安装
ansible-galaxy install geerlingguy.varnish
许可证
mit
下载
582.5k
拥有者
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns