-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enable overriding mod-level parameters for apache::mod::passenger #687
Conversation
apache::mod::passenger didn't accept/pass (optional) mod parameters through to apache::mod, so only auto-generated module parameters were used. Without this option apache::mod::passenger could not be used in conjunction with passenger modules beyond those generated by OS package system (in particular, modules compiled via passenger-install-apache2-module, which use differing paths). This commit enables passing in all parameters used with "apache::mod", documented in the passenger README includes basic spec/acceptance tests; verifying a default installation as well as passing in module loading parameters. new tests revealed undocumented Redhat dependencies on a passenger- specific repository as well as the EPEL repository; as a first step these dependencies are being manually resolved during setup for the acceptance testing suite.
Apache::mod::passenger didn't accept/pass (optional) mod parameters through to apache::mod, so only auto-generated module parameters were used. Without this option, apache::mod::passenger could not be used in conjunction with passenger modules beyond those generated by the OS package system (in particular, modules compiled via passenger-install-apache2-module, which uses differing paths). This commit enables passing in all parameters used with "apache::mod", documented in the passenger README file. Modified default RedHat passenger parameters for cleaned-up installation (prior parameters worked with Apache, but broke passenger-* utilities, incl. passenger-status & passenger-root). Updated spec/class tests to verify mod-level parameters; also, updated RedHat tests to accomodate updated default parameters. Added spec/acceptance tests for passenger, verifying default installations for RedHat and Debian systems. RedHat installation test installs (required) EPEL and http://passenger.stealthymonkeys.com package repositories.
…abs-apache into mod-passenger-2 Conflicts: manifests/mod/passenger.pp manifests/params.pp
This is a cleaned-up version of my PR #607, removing proxy-pass commits inadvertently incorporated. The history is obviously not pristine (I'm still new to git); if this needs to be re-done again, links to appropriate tutorials will be much appreciated. |
BTW, I wasn't sure which nodesets were higher priority to verify working with spec/acceptance tests, so I tested (almost) all the included nodesets. passing*:
failing:
* Note: while all passenger tests are passing, there are a few spec/acceptance tests failed for each node. This seems fine as these same tests are failing in up-to-date master as well. |
Enable overriding mod-level parameters for apache::mod::passenger
Thanks! |
FYI this breaks the Foreman use case where we rely on not overwriting passenger.conf. We ship a newer passenger and would prefer to not hardcode the version number in puppet. |
Yeah, the changes I made in #563 were specifically so we didn't rely on a hardcoded PassengerRoot when the mod_passenger package provides an accurate path in its passenger.conf. |
Sorry, I wasn't aware of the foreman use case when adding the spec/acceptance test for passenger; passenger-status (used in that spec) is broken when both passenger.conf and passenger_extra.conf files are present. That said, it sounds like passenger-status broken by default is less important than the foreman use case. RedHat is already on its own branch in that spec test, so it shouldn't be hard to revert the apache:params and package details without losing spec coverage. If you provide a brief foreman example that I can reference I could work on this. |
That's ok, thanks for the response. You'll find Foreman's Passenger RPMs in this repo: http://yum.theforeman.org/releases/1.4/el6/x86_64/ (version 4.0.5). The issue comes in Passenger 4, as Passenger no longer loads if the PassengerRoot isn't accurate (you'll notice that remarkably this isn't an issue when using EPEL6's 3.0.21, even though pl-apache writes 3.0.19 into the config file). In error_log you'll see this: [Fri Apr 04 15:41:48 2014] [error] *** Passenger could not be initialized because of this error: Unable to start the Phusion Passenger watchdog because its executable (/usr/lib/ruby/gems/1.8/gems/passenger-3.0.19/agents/PassengerWatchdog) does not exist. This probably means that your Phusion Passenger installation is broken or incomplete, or that your 'PassengerRoot' directive is set to the wrong value. Please reinstall Phusion Passenger or fix your 'PassengerRoot' directive, whichever is applicable. I've not been able to reproduce an issue with passenger-status on plain EL6 with EPEL6's passenger 3.0.21 and the separate passenger.conf, passenger_extra.conf and passenger.load files - is it a gem or source install instead of packages? I could see then that passenger.conf doesn't get installed. -bash-4.1# ll /etc/httpd/conf.d/passenger* -rw-r--r--. 1 root root 771 Nov 7 15:46 /etc/httpd/conf.d/passenger.conf -rw-r--r--. 1 root root 151 Apr 4 15:35 /etc/httpd/conf.d/passenger_extra.conf -rw-r--r--. 1 root root 53 Apr 4 15:34 /etc/httpd/conf.d/passenger.load -bash-4.1# passenger-status ----------- General information ----------- max = 6 count = 0 active = 0 inactive = 0 Waiting on global queue: 0 ----------- Application groups ----------- |
Thanks for clarifying the foreman issues, I'll look into patching this ASAP. Regarding the passenger-status error, it was occurring during spec/acceptance runs on the Centos nodeset (can't recall whether 64 or 64, may have been both) with the stealthmonkeys RPM, and seemed related to having multiple LoadModule declarations for passenger. Regarding the spec acceptance test, would it make more sense to reference foreman's passenger RPM over the steathmonkeys RPM? I'm not particularly invested in either and figure the tests should reflect the most common solution (or the most stable!). |
I'm hitting a delay with automated testing due to yumrepo being broken in puppet 3.5.0; it looks like a fix is forthcoming, and I'll get back to this ASAP. |
Worked around the yumrepo issue and submitted a PR to correct the errors from this PR; please let me know if this corrects the issue for you (ideally I'd add a spec/acceptance test verifying installation of passenger via the foreman repo, but I figured a faster response would be more important). |
pdksync - (feat) - Bump Puppet boundary
Apache::mod::passenger didn't accept/pass (optional) mod parameters
through to apache::mod, so only auto-generated module parameters were
used. Without this option, apache::mod::passenger could not be used in
conjunction with passenger modules beyond those generated by the OS
package system (in particular, modules compiled via
passenger-install-apache2-module, which uses differing paths). This
commit enables passing in all parameters used with "apache::mod",
documented in the passenger README file.
Modified default RedHat passenger parameters for cleaned-up
installation (prior parameters worked with Apache, but broke
passenger-* utilities, incl. passenger-status & passenger-root).
Updated spec/class tests to verify mod-level parameters; also,
updated RedHat tests to accomodate updated default parameters.
Added spec/acceptance tests for passenger, verifying default
installations for RedHat and Debian systems. RedHat installation test
installs (required) EPEL and http://passenger.stealthymonkeys.com
package repositories.