jobscore.passenger_nginx
Passenger NGINX
Ansible-Rolle zur Installation von Passenger und NGINX für Ruby-Apps
Anforderungen
Diese Rolle setzt voraus, dass Ruby bereits auf der Zielmaschine installiert ist. Der Pfad zur Ruby-Binärdatei kann mit der Variablen passenger_ruby
konfiguriert werden.
Rollenvariablen
Passenger-Konfiguration
passenger_app_root: /mnt/app/public
Der Pfad zum öffentlichen Ordner Ihrer Rails-App.
passenger_app_env: production
Die RAILS_ENV, unter der Passenger Ihre Rails-App ausführen wird.
passenger_root: /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini
Der Pfad zur Konfigurationsdatei von Passenger. Diese Datei wird nicht von dieser Rolle verwaltet. Änderungen sollten nur vorgenommen werden, wenn Sie eine manuelle Passenger-Konfiguration an anderer Stelle vorgenommen haben.
passenger_ruby: /usr/local/bin/ruby
Der Pfad zu Ihrer Ruby-Binärdatei.
passenger_extra_config: ''
In dieser Variable können Sie das Verhalten von Passenger für Ihre Apps anpassen (verwendet in mod-http-passenger.conf.j2). Weitere Informationen zu den Passenger-Parametern für NGINX finden Sie hier.
NGINX-Konfiguration
nginx_server_name: www.example.com
Der Servername, den NGINX für HTTP-Anfragen verwenden wird.
nginx_user: "www-data"
Der Benutzer, den NGINX zum Ausführen des Servers verwenden wird.
nginx_extra_config: ''
Zusätzliche Konfigurationsparameter, die Sie der nginx.conf Vorlage auf der obersten Ebene hinzufügen möchten.
nginx_events_extra_config: ''
Zusätzliche Konfigurationsparameter, die Sie der nginx.conf Vorlage im Abschnitt events hinzufügen möchten.
nginx_http_extra_config: ''
Zusätzliche Konfigurationsparameter, die Sie der nginx.conf Vorlage im Abschnitt http hinzufügen möchten.
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 }};
}
NGINX-Konfiguration für die Passenger-App. Die Standardkonfiguration funktioniert für alle Apps. Wenn Sie das Verhalten anpassen möchten, können Sie diese Variable bearbeiten. Sie können hier Variablen so verwenden, wie Sie es in einer Jinja-Vorlage tun würden.
nginx_worker_processes: "auto"
nginx_worker_connections: "768"
nginx_keepalive_timeout: "65"
Diese Werte werden verwendet, um die jeweiligen Werte in der nginx.conf Vorlage zu konfigurieren.
Beispiel-Playbooks
- 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 }};
Lizenz
Autoreninformation
Diese Rolle wurde von Eric Magalhães und Glauber Batista während ihrer Arbeit für JobScore Inc erstellt.