diff --git a/defaults/main.yml b/defaults/main.yml index 61ee652..fd580d3 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -81,6 +81,7 @@ nginx_source_modules_included: http_spdy_module: "--with-http_spdy_module" http_perl_module: "--with-http_perl_module" naxsi_module: "--add-module=/tmp/nginx_naxsi" + passenger_module: "--add-module=/tmp/nginx_passenger" nginx_source_modules_excluded: - mail_pop3_module diff --git a/tasks/modules.yml b/tasks/modules.yml index d349ce1..3ece800 100644 --- a/tasks/modules.yml +++ b/tasks/modules.yml @@ -35,3 +35,6 @@ - include: modules/naxsi_module.yml when: nginx_source_modules_included.naxsi_module is defined + +- include: modules/passenger_module.yml + when: nginx_source_modules_included.passenger_module is defined diff --git a/tasks/modules/passenger_module.yml b/tasks/modules/passenger_module.yml new file mode 100644 index 0000000..540affd --- /dev/null +++ b/tasks/modules/passenger_module.yml @@ -0,0 +1,28 @@ +--- +- name: Nginx | Modules | install dependencies + apt: + name: "{{ item }}" + state: latest + with_items: + - libcurl4-openssl-dev + - ruby-dev + - libgemplugin-ruby + +- name: Nginx | Modules | install passenger gem + sudo: yes + gem: + name: passenger + state: latest + user_install: no + +- name: Nginx | Modules | get passenger path + shell: passenger-config --root + register: passenger_path + +- name: Nginx | Modules | precompile passenger stuff + shell: rake nginx CACHING=false + args: + chdir: "{{ passenger_path.stdout }}" + +- name: Nginx | Modules | copy nginx_passenger to neutral location + shell: "cp -R {{ passenger_path.stdout }}/ext/nginx /tmp/nginx_passenger" diff --git a/tasks/source.yml b/tasks/source.yml index cf3cd33..6c25c73 100644 --- a/tasks/source.yml +++ b/tasks/source.yml @@ -41,6 +41,17 @@ make install when: nginx_flags.changed +- name: Nginx | get ruby path + shell: which ruby + register: ruby_path + when: nginx_source_modules_included.passenger_module is defined + +- name: Nginx | add passenger.conf + template: + src: passenger.conf.j2 + dest: /etc/nginx/conf.d/passenger.conf + when: nginx_source_modules_included.passenger_module is defined + - name: Nginx | Update the symbolic link to the nginx install file: path: /usr/local/nginx/default diff --git a/templates/passenger.conf.j2 b/templates/passenger.conf.j2 new file mode 100644 index 0000000..2b35519 --- /dev/null +++ b/templates/passenger.conf.j2 @@ -0,0 +1,2 @@ +passenger_root {{ passenger_path.stdout }}; +passenger_ruby {{ ruby_path.stdout }};