varnish

Ansible Роль: Varnish

CI

Устанавливает 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
Лицензия
mit
Загрузки
563571
Владелец
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns