geerlingguy.varnish

Ansibleロール: Varnish

CI

RedHat/CentOSまたはDebian/Ubuntu LinuxにレバースプロキシキャッシュVarnishをインストールします。

必要条件

RedHat/CentOSではEPELリポジトリが必要です(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.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内のシンプルなテンプレートになります。このパスは、プレイブックを実行するディレクトリからの相対パスである必要があります。

varnish_listen_address: ""
varnish_listen_port: "80"

Varnishがリッスンするアドレスとポート。デフォルトではポート80のすべてのインターフェースでリッスンしますが、必要に応じて指定できます。

varnish_default_backend_host: "127.0.0.1"
varnish_default_backend_port: "8080"

varnish_config_pathフォルダーにコピーされる「default.vcl」のデフォルト設定です。デフォルトのバックエンドホスト/ポートは、同じホスト上で稼働するApacheやNginx(あるいは他のHTTPサーバー)である場合に使用されます。

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優先度。これを明示的に設定することで、他のリポジトリの優先度がデフォルトより高い環境(例:Amazon Linux)でも、yumがPackagecloudリポジトリを使用してVarnishをインストールするようになります。

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_backendsおよびvarnish_vhosts変数を使用して、複数のバックエンドや異なるバーチャルホスト間でのトラフィックの振り分けを設定できます。もしバックエンドが一つだけなら(varnish_default_backend_hostvarnish_default_backend_portで定義された場合)、これらの変数を定義する必要はありません。vhostsのキーにwwwを加えないでください;これはdefault.vcl.j2 VCLテンプレートで自動的に追加されます。

依存関係

なし。

例プレイブック

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

vars/main.yml

varnish_secret: "[uuidgenによって生成された秘密]"
varnish_default_backend_port: 81
... その他 ...

ライセンス

MIT / BSD

著者情報

このロールは2014年にJeff Geerlingによって作成されました。彼は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