varnish
Ansible Роль: Varnish
Устанавливает Varnish HTTP Cache на RedHat/CentOS или Debian/Ubuntu Linux.
Требования
Требуется репозиторий EPEL на RedHat/CentOS (вы можете установить его с помощью роли geerlingguy.repo-epel
).
Переменные роли
Доступные переменные перечислены ниже с умолчательными значениями (см. defaults/main.yml
):
varnish_package_name: "varnish"
Имя пакета Varnish, который вы хотите установить. См. apt-cache policy varnish
или yum list varnish
для получения списка доступных кандидатов.
varnish_version: "6.6"
Версия Varnish, которая должна быть установлена. См. репозитории Varnish Cache packagecloud.io для получения списка доступных версий. Некоторые примеры: 6.6
, 6.5
, 6.4
, 4.1
, 3.0
и 2.1
.
varnish_config_path: /etc/varnish
Путь, по которому будут храниться файлы конфигурации Varnish.
varnish_use_default_vcl: true
Использовать ли включенный (простой) стандартный Varnish VCL, используя бэкенд хост/порт, определенные следующими двумя переменными. Установите значение на false
и скопируйте ваш файл default.vcl
в varnish_config_path
, если хотите использовать более сложную настройку. Если эта переменная установлена на true
, все остальные настройки будут взяты из стандартного VCL Varnish.
varnish_default_vcl_template_path: default.vcl.j2
Стандартный файл VCL для копирования (если varnish_use_default_vcl
равно true
). По умолчанию — простой шаблон внутри templates/default.vcl.j2
. Этот путь должен быть относительным к директории, из которой вы запускаете свой плейбук.
varnish_listen_address: ""
varnish_listen_port: "80"
Адрес и порт, на которых Varnish будет слушать. По умолчанию Varnish будет слушать на всех интерфейсах на порту 80, но вы можете указать адрес и/или альтернативный порт, если необходимо.
varnish_default_backend_host: "127.0.0.1"
varnish_default_backend_port: "8080"
Некоторые настройки для стандартного шаблона "default.vcl", который будет скопирован в папку varnish_config_path
. Стандартный бэкенд хост/порт может быть Apache или Nginx (или другим HTTP-сервером), работающим на том же хосте или на другом хосте (в этом случае вы можете использовать порт 80).
varnish_limit_nofile: 131072
Лимит nofiles
, который Varnish попытается установить для открытых файлов. Нормальное значение по умолчанию — 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
Путь к PID файлу Varnish. Установите в пустую строку, если вы не хотите использовать PID файл.
varnishd_extra_options: ""
Дополнительные параметры или флаги, которые можно передать демону Varnish при его запуске (например, -p http_max_hdr=128
).
varnish_enabled_services:
- varnish
Сервисы, которые будут запущены при загрузке и должны работать после завершения этой роли. Возможно, вам придется добавить дополнительные сервисы, если это необходимо, например, varnishncsa
и varnishlog
. Если установить в пустой массив, ни один сервис не будет включен при старте.
varnish_packagecloud_repo_yum_repository_priority: "1"
(Только для RedHat/CentOS) Приоритет yum
для репозитория Packagecloud, используемого для установки Varnish. Явная установка этого значения заставляет 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.
varnish_yum_repo_baseurl: https://packagecloud.io/varnishcache/{{ varnish_packagecloud_repo }}/el/{{ ansible_distribution_major_version|int }}/$basearch
(Только для RedHat/CentOS) Базовый URL для 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
Вы можете настроить несколько бэкендов (и направлять трафик от нескольких виртуальных хостов к различным бэкендам), используя переменные varnish_backends
и varnish_vhosts
. Если вы используете только один бэкенд (определенный через varnish_default_backend_host
и varnish_default_backend_port
), то вам не нужно определять эти переменные. Не добавляйте www
к ключам vhosts
; он добавляется автоматически шаблоном VCL default.vcl.j2
.
Зависимости
Нет.
Пример Плейбука
- hosts: webservers
vars_files:
- vars/main.yml
roles:
- geerlingguy.varnish
Внутри vars/main.yml
:
varnish_secret: "[секрет, сгенерированный с помощью uuidgen]"
varnish_default_backend_port: 81
... и т.д. ...
Лицензия
MIT / BSD
Информация об авторе
Эта роль была создана в 2014 году Джеффом Гирлингом, автором Ansible for DevOps.
ansible-galaxy install geerlingguy/ansible-role-varnish