jobscore.passenger_nginx
Passenger NGINX
Rubyアプリ用のPassengerとNGINXをインストールするためのAnsibleロール
要件
このロールでは、ターゲットマシンにRubyが既にインストールされていることを期待しています。Rubyのバイナリパスはpassenger_ruby
変数で設定できます。
ロール変数
Passenger設定
passenger_app_root: /mnt/app/public
Railsアプリの公開フォルダのパスです。
passenger_app_env: production
PassengerがRailsアプリを実行する際のRAILS_ENVです。
passenger_root: /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini
Passenger設定のルートファイルのパスです。このファイルはこのロールによって管理されていないため、手動で設定を行った場合のみ変更してください。
passenger_ruby: /usr/local/bin/ruby
Rubyバイナリのパスです。
passenger_extra_config: ''
この変数にアプリのPassengerの動作をカスタマイズするための設定を追加できます(mod-http-passenger.conf.j2で使用)。NGINX用のPassengerパラメータについての詳細はこちらで確認できます。
NGINX設定
nginx_server_name: www.example.com
NGINXがHTTPリクエストを受け付けるために使用するサーバー名です。
nginx_user: "www-data"
NGINXがサーバーを実行するために使用するユーザーです。
nginx_extra_config: ''
ルートレベルのnginx.confテンプレートに追加したい設定パラメータをここに追加できます。
nginx_events_extra_config: ''
eventsセクションに追加したい設定パラメータをここに追加できます。
nginx_http_extra_config: ''
httpセクションに追加したい設定パラメータをここに追加できます。
nginx_vhost_config: |
server {
listen 80 default_server;
server_name {{ nginx_server_name }};
passenger_enabled on;
passenger_app_env {{ passenger_app_env }};
root {{ passenger_app_root }};
}
Passengerアプリ用のNGINX設定です。デフォルトの設定はすべてのアプリに対応しています。動作をカスタマイズしたい場合は、この変数を編集できます。ここでもJinjaテンプレートのように変数を使用できます。
nginx_worker_processes: "auto"
nginx_worker_connections: "768"
nginx_keepalive_timeout: "65"
これらの値は、nginx.confテンプレート内でそれぞれの値を設定するために使用されます。
例プレイブック
- hosts: servers
roles:
- role: jobscore.ruby
- role: jobscore.passenger_nginx
- hosts: servers
pre_tasks:
- apt:
name: ruby-full
state: present
roles:
- role: jobscore.passenger_nginx
nginx_server_name: www.example.com
passenger_extra_config: |
passenger_max_pool_size 6;
passenger_min_instances 6;
passenger_pre_start {{ nginx_server_name }};
ライセンス
著者情報
このロールは、Eric MagalhãesとGlauber BatistaがJobScore Incで働いている際に作成されました。