ginsys.nginx
nginx
この役割は https://github.com/bennojoy/nginx から派生したものです。パラメータを定義するための異なる「API」を実装しています。
この役割は nginx ウェブサーバをインストールおよび構成します。ユーザーは、サイトに適用したい任意の HTTP 構成パラメータを指定できます。任意の数のサイトを追加し、お好きな構成を設定できます。
要件
この役割には、Ansible 1.4 以上が必要で、プラットフォームの要件はメタデータファイルに記載されています。
役割変数
この役割に渡すことができる変数とその簡単な説明は以下の通りです。
# 許可される最大クライアント数
nginx_max_clients: 512
# HTTP パラメータのハッシュ。ここには有効な
# nginx HTTP パラメータを追加できます。
# (詳細は nginx ドキュメントを参照してください。)
nginx_http_params:
sendfile: "on"
tcp_nopush: "on"
tcp_nodelay: "on"
keepalive_timeout: "65"
access_log: "/var/log/nginx/access.log"
error_log: "/var/log/nginx/error.log"
# nginx のサーバを定義するハッシュのリスト。
# HTTP パラメータと同様に、有効なサーバパラメータを
# ここに定義できます。
nginx_sites:
- server:
file_name: foo
listen: 8080
server_name: localhost
root: "/tmp/site1"
location:
- name: /
try_files: "$uri $uri/ /index.html"
- name: /images/
try_files: "$uri $uri/ /index.html"
- server:
file_name: bar
listen: 9090
server_name: ansible
root: "/tmp/site2"
location:
- name: /
try_files: "$uri $uri/ /index.html"
- name: /images/
try_files: "$uri $uri/ /index.html"
例
サイトが設定されていない状態で、選択した HTTP ディレクティブで nginx をインストールします。
- hosts: all
roles:
- {role: nginx, nginx_http_params: { sendfile: "on", access_log: "/var/log/nginx/access.log"}, nginx_sites: none }
- hosts: all
roles:
前の例とは異なる HTTP ディレクティブで nginx をインストールしますが、サイトは設定されていません。
- hosts: all
roles:
- {role: nginx, nginx_http_params: { tcp_nodelay: "on", error_log: "/var/log/nginx/error.log"}, nginx_sites: none }
- hosts: all
roles:
注意: 渡される HTTP ディレクティブが有効であることを確認してください。これはこの役割ではディレクティブの有効性をチェックしません。詳細については nginx ドキュメントを参照してください。
nginx をインストールし、構成にサイトを追加します。
hosts: all
roles:
- role: nginx,
nginx_http_params:
sendfile: "on"
access_log: "/var/log/nginx/access.log"
nginx_sites:
- server:
file_name: bar
listen: 8080
location:
- name: "/" try_files: "$uri $uri/ /index.html"
- name: /images/ try_files: "$uri $uri/ /index.html"
- server:
file_name: bar
listen: 8080
location:
- role: nginx,
nginx_http_params:
sendfile: "on"
access_log: "/var/log/nginx/access.log"
nginx_sites:
注意: 追加された各サイトはハッシュのリストで表現され、生成された構成は /etc/nginx/sites-available/
に記載され、その対応するシンボリックリンクが /etc/nginx/sites-enabled/
に作成されます。
特定のサイト構成のファイル名は、ハッシュのキー "file_name" で指定され、有効なサーバディレクティブをハッシュに追加することができます。ロケーションディレクティブを追加するには、"location" のキーの後にユニークな番号を追加し、ロケーションの値はハッシュです。有効なロケーションディレクティブであることを確認してください。
Nginx をインストールして 2 つのサイトを追加(別の方法)
- hosts: all
roles:
- role: nginx
nginx_http_params:
sendfile: "on"
access_log: "/var/log/nginx/access.log"
nginx_sites:
- server:
file_name: foo
listen: 8080
server_name: localhost
root: "/tmp/site1"
location:
- name: / try_files: "$uri $uri/ /index.html"
- name: /images/ try_files: "$uri $uri/ /index.html"
- server:
file_name: bar
listen: 9090
server_name: ansible
root: "/tmp/site2"
location:
- name: / try_files: "$uri $uri/ /index.html"
- name: /images/ try_files: "$uri $uri/ /index.html"
- server:
file_name: foo
listen: 8080
server_name: localhost
root: "/tmp/site1"
location:
- role: nginx
nginx_http_params:
sendfile: "on"
access_log: "/var/log/nginx/access.log"
nginx_sites:
- hosts: all
roles:
依存関係
なし
ライセンス
BSD
著者情報
元の役割の著者: Benno Joy
Ginsys フォークの著者: Serge van Ginderachter serge@vanginderachter.be
This ansible role manages installation and configuration of nginx. It can both configure general options, as well as virtual hosts. This role is a fork of https://github.com/bennojoy/nginx and implements a different API for configuring locations within a
ansible-galaxy install ginsys.nginx