jobscore.passenger_nginx
Passenger NGINX
Rôle Ansible pour installer Passenger et NGINX pour les applications Ruby
Exigences
Ce rôle suppose que Ruby est déjà installé sur la machine cible. Le chemin du binaire Ruby peut être configuré en utilisant la variable passenger_ruby
.
Variables du Rôle
Configuration de Passenger
passenger_app_root: /mnt/app/public
Le chemin du dossier public de votre application Rails.
passenger_app_env: production
L'environnement RAILS_ENV dans lequel Passenger exécutera votre application Rails.
passenger_root: /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini
Le chemin du fichier de configuration racine de Passenger. Ce fichier n'est pas géré par ce rôle, donc vous devriez seulement le changer si vous avez configuré manuellement Passenger ailleurs.
passenger_ruby: /usr/local/bin/ruby
Le chemin de votre binaire Ruby.
passenger_extra_config: ''
Dans cette variable, vous pouvez ajouter ou personnaliser le comportement de Passenger pour vos applications (utilisé dans mod-http-passenger.conf.j2). Plus d'informations sur les paramètres de Passenger pour NGINX peuvent être trouvées ici.
Configuration de NGINX
nginx_server_name: www.example.com
Le nom du serveur que NGINX utilisera pour écouter les requêtes HTTP.
nginx_user: "www-data"
L'utilisateur que NGINX utilisera pour exécuter le serveur.
nginx_extra_config: ''
Paramètres de configuration supplémentaires que vous pourriez vouloir ajouter au modèle nginx.conf à la racine.
nginx_events_extra_config: ''
Paramètres de configuration supplémentaires que vous pourriez vouloir ajouter au modèle nginx.conf sous la section events.
nginx_http_extra_config: ''
Paramètres de configuration supplémentaires que vous pourriez vouloir ajouter au modèle nginx.conf sous la section 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 }};
}
Configuration de NGINX pour l'application Passenger. La configuration par défaut fonctionne pour toutes les applications. Si vous souhaitez ajouter ou personnaliser le comportement, vous pouvez modifier cette variable. Vous pouvez utiliser des variables ici comme dans un modèle Jinja.
nginx_worker_processes: "auto"
nginx_worker_connections: "768"
nginx_keepalive_timeout: "65"
Ces valeurs sont utilisées pour configurer leurs valeurs respectives dans le modèle nginx.conf.
Exemples de 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 }};
Licence
Informations sur l'Auteur
Ce rôle a été créé par Eric Magalhães et Glauber Batista pendant leur travail pour JobScore Inc.