Giter Site home page Giter Site logo

geerlingguy / ansible-role-passenger Goto Github PK

View Code? Open in Web Editor NEW
32.0 2.0 31.0 59 KB

Ansible Role - Passenger with Nginx

Home Page: https://galaxy.ansible.com/geerlingguy/passenger/

License: MIT License

Jinja 100.00%
ansible role passenger nginx ruby rails search

ansible-role-passenger's Introduction

Ansible Role: Passenger

CI

Installs Passenger (with Nginx) on RedHat/CentOS (soon) or Debian/Ubuntu linux servers.

Requirements

None.

Role Variables

Available variables are listed below, along with default values (see defaults/main.yml):

passenger_server_name: www.example.com

The server name (used in the Nginx virtual host configuration).

passenger_app_root: /opt/example/public

The passenger_root for your application (e.g. the public folder in a rails app).

passenger_app_env: production

The app environment passenger will load.

passenger_root: /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini
passenger_ruby: /usr/bin/ruby

Values for passenger configuration directives inside nginx.conf. These defaults should generally work correctly, but if you build ruby on its own (as an example), the path to ruby may be different.

nginx_worker_processes: "{{ ansible_processor_vcpus | default(ansible_processor_count) }}"
nginx_worker_connections: "768"
nginx_keepalive_timeout: "65"
nginx_remove_default_vhost: true

Nginx directives.

Dependencies

None.

Example Playbook

- hosts: server
  roles:
    - { role: geerlingguy.passenger }

License

MIT / BSD

Author Information

This role was created in 2015 by Jeff Geerling, author of Ansible for DevOps.

ansible-role-passenger's People

Contributors

djjuhasz avatar geerlingguy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

ansible-role-passenger's Issues

What happened to passenger_env_vars?

It looks like I need to specify RAILS_MASTER_KEY using passenger_env_vars. There was a previous request for this feature, but it was closed. It seems like this would still be helpful; any chance this could be added?

redmine env production and development

why give me multiple Phusion Passenger instances
in my redmine

redmine@172:~/4.11$ passenger-status 
*** Cleaning stale instance directory /tmp/passenger.UjIOTlH
    Warning: Operation not permitted @ rb_file_chown - /tmp/passenger.UjIOTlH/.
It appears that multiple Phusion Passenger instances are running. Please
select a specific one by running:

  passenger-status <NAME>

The following Phusion Passenger instances are running:

Name                       PID      Description
--------------------------------------------------------------------------
oR2Fxrti                   41650    nginx/1.18.0 Phusion_Passenger/6.0.6
XBKtMEPL                   89988    nginx/1.18.0 Phusion_Passenger/6.0.6

database

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "redmine"
  # Use "utf8" instead of "utfmb4" for MySQL prior to 5.7.7
  encoding: utf8mb4
  pool: 10
 
development:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "redmine"
  # Use "utf8" instead of "utfmb4" for MySQL prior to 5.7.7
  encoding: utf8mb4
  pool: 10

how i can let production and development in same app groub

Keyserver Timeout

When running this role, I get a timeout error when trying to add the passenger apt key in this step:

# Passenger repository setup.
- name: Add Passenger apt key.
apt_key:
keyserver: keyserver.ubuntu.com
id: 561F9B9CAC40B2F7
state: present

If i modify the keyserver item to use hkp://keyserver.ubuntu.com:80, the task does not timeout and I am able to grab the key successfully.

I'm not sure if this is isolated to my install only or others experiencing a similar issue?

system deets below:

OS:

root@ip-172-30-8-240:/usr/local/lib/ansible# cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.2 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.2 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

ansible version:

root@ip-172-30-8-240:/usr/local/lib/ansible# ansible --version
ansible 2.9.6
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3/dist-packages/ansible
  executable location = /usr/bin/ansible
  python version = 3.8.10 (default, Jun  2 2021, 10:49:15) [GCC 9.4.0]

Ability to include passenger_env_vars

Would it make sense to add the ability to have passenger_env_var entries, similar to how this post does it?

Or, perhaps, there's just a different/better way of including env vars that I'm not aware of.

unknown directive "passenger_root"

After running this Role, Nginx fails to start (rebooting the machine results in the same situation):

The error message is: unknown directive "passenger_root" in /etc/nginx/nginx.conf:65

If I comment this line out, then the same error message comes up for passenger_ruby.

Operating system: Ubuntu 18.04.1 LTS (bionic)

$ which passenger
/usr/bin/passenger

$ passenger --version
Phusion Passenger 5.3.4

Getting message 'The repository does not have a Release' file on Xenial

I'm getting an error similar to the one I used to get in node.js role:

ok: [box]
 _________________________________________________________
/ TASK [geerlingguy.passenger : Add Phusion apt repo.     \
| repo=deb                                                |
| https://oss-binaries.phusionpassenger.com/apt/passenger |
| {{ansible_distribution_release}} main, state=present,   |
\ update_cache=True]                                      /
 ---------------------------------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

fatal: [box]: FAILED! => {"changed": false, "failed": true, "module_stderr": "Shared connection to box closed.\r\n", "module_stdout": "Traceback (most recent call last):\r\n  File \"/tmp/ansible_DS1bEx/ansible_module_apt_repository.py\", line 538, in <module>\r\n    main()\r\n  File \"/tmp/ansible_DS1bEx/ansible_module_apt_repository.py\", line 527, in main\r\n    cache.update()\r\n  File \"/usr/lib/python2.7/dist-packages/apt/cache.py\", line 454, in update\r\n    raise FetchFailedException(e)\r\napt.cache.FetchFailedException: W:The repository 'http://ppa.launchpad.net/chris-lea/node.js/ubuntu xenial Release' does not have a Release file., W:Data from such a repository can't be authenticated and is therefore potentially dangerous to use., W:See apt-secure(8) manpage for repository creation and user configuration details., E:Failed to fetch http://ppa.launchpad.net/chris-lea/node.js/ubuntu/dists/xenial/main/binary-amd64/Packages  404  Not Found, E:Some index files failed to download. They have been ignored, or old ones used instead.\r\n", "msg": "MODULE FAILURE"}

I wonder how pulling passenger apt binaries https://oss-binaries.phusionpassenger.com/apt/passenger | | {{ansible_distribution_release}} main triggers pulling http://ppa.launchpad.net/chris-lea/node.js/ubuntu xenial Release?

Here are the role versions I use:

$ ansible-galaxy list
- composer, 1.5.0
- geerlingguy.nginx, 2.1.0
- geerlingguy.ntp, 1.4.1
- geerlingguy.passenger, 1.1.1
- geerlingguy.postgresql, 1.0.2
- geerlingguy.redis, 1.4.2
- geerlingguy.ruby, 2.4.2
- geerlingguy.security, 1.5.0
- security, 1.5.0

RedHat/CentOS (soon)

Installs Passenger (with Nginx) on RedHat/CentOS (soon) or Debian/Ubuntu linux servers.

Any update on the RedHat/CentOS support for this role? Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.