Skip to content
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

use mod_lib_path with apache::mod::passenger for compatibility #47

Merged
merged 9 commits into from
Jul 22, 2014
Merged

use mod_lib_path with apache::mod::passenger for compatibility #47

merged 9 commits into from
Jul 22, 2014

Conversation

jonoterc
Copy link

Passes the OS-specific Apache/Passenger module path to the passenger configuration; fixes compatibility issues for cases where a standard location is note used. This relates to #18

Updates puppetlabs apache module dependency to 1.1.0 (first including mod_lib_path override support for passenger module)

Removes mention of apache from Modulefile (not causing real problems, but cuts out some dependency resolution noise)

Tweaks passenger/ubuntu required packages ('libcurl4-gnutls-dev' is needed; much of the time this is provided by other modules, but there are cases where those modules are not being used to ensure this package is present).

Adds spec/acceptance coverage for passenger 3.x and 4.x, including a new nodeset for Ubuntu 12.04 coverage. All tests are passing with all defined nodesets.

Works around spec/acceptance failure on all Centos nodesets (due to issues with "install_puppet" in beaker and current versions of the puppet package on red hat family OSes); tweaks in spec_acceptance_helper.rb force installing an older (non-breaking) puppet installation for Redhat-based OSs (this should be stripped out once there are usable Redhat packages again)

Clears out some unused templates.

Sorry it took so long to submit this (I originally brought this up in January), there was a long delay before the required mod-lib updates to puppetlabs-apache were included in a forge release

jonoterc added 7 commits July 17, 2014 15:10
RVM-based passenger installation was failing on Debian platforms as
the handling of passenger configuration (delegated to the
puppetlabs/puppetlabs-apache module) did not support apache::mod
-level overriding of module paths; this is required for passenger
installations handled outside the OS package system (i.e. compiled
via "passenger-install-apache2-module").

Changes to this module:
- additional parameters have been added to the the
  rvm::passenger::apache class to support passing through
  configuration to apache::mod
  - the puppetlabs/puppetlabs-apache module is currently referenced
    via its git repository, which supports the additional apache::mod
    parameters; this will be changed back once these updates have
    been released to the puppet forge
- streamlined execution of passenger-install-apache2-module
  - executing based on existence of compiled module
  - streamlined assembling path to compiled module
- fleshing out debian package requirements for rvm:passenger::apache
- spec/classes tests have been updated to reflect revised
  rvm::passenger::apache parameters
- spec/acceptance tests have been updated to more thoroughly verify
  correct installation/configuration and operation of RVM/passenger
  features, including:
  - installation and configuration of rvm, rubies, gemsets and gems
  - installation, configuraation and operation of apache+passenger
  - removing "--binary" requirement for building gems; some defined
    nodes do not are not supported with RVM ruby binaries
  - passing for all nodesets
- fleshing out spec/acceptance setup:
  - install puppet earlier, enabling access to facter within specs
  - adding ubuntu-server-12042-x64 nodeset
- removing no-longer-in-user passenger-apache-* templates
even git-based modules should use organization scoping (when available) to aid dependency resolution
…et double-referencing git-based module; this will be restored to a forge-based module reference soon in any case
…lib-fixed puppetlabs/apache module; also added spec/acceptance tests for passenger 3.0.x and 4.0.x, incl. a workaround (just in the spec/acceptance tests) for Redhat family OS issues with recent puppet versions
…nd debian; passenger_extra.conf is always copied to passenger.conf - corresponding test updates
@carlossg
Copy link
Member

Thanks. Looks good, just two questions:

  • what's the problem with centos and puppet 3.5+ ? problem with beaker?
  • is there a reason to remove the :let and use direct assignment?

@jonoterc
Copy link
Author

Thanks for the quick response :)

Regarding puppet 3.5 breakage, the issue was something I was unaware of until running spec/acceptance tests (on Centos node sets) and encountered fatal errors at the "install_puppet" stage (which always attempts to install the latest available package version). The issue is pretty well-described here:
https://tickets.puppetlabs.com/si/jira.issueviews:issue-html/PUP-2164/PUP-2164.html
I'm not claiming that this is a preferred workaround; let me know if there's a better direction to try.

Regarding the lack of :let, that's a reflection of my lack of familiarity with rspec - I'll look into revising that setup.

@carlossg
Copy link
Member

no worries about :let.
I think we should move to boxes with Puppet preinstalled to make it faster, anyway I'm adding tests with Docker soon.

@jonoterc
Copy link
Author

Preinstalled puppet sounds good to me (esp. the "faster tests" part).

I was already looking at rspec and have a version working with the correct let(:foo) approach; this will eliminate some unnecessary workaround in spec_helper_acceptance.rb). I think this is worthwhile (and can be done quickly); would you prefer this be done in this or a separate PR?

…orrect usage (in particular, moving local variables into lazy-evaluated "let(:foo)" statements) enabled removing the spec_acceptance_helper hacks to pre-install puppet/facter before configuring rspec (i.e. bad rspec usage was the only reason for those hacks), and cleaner spec acceptance test execution
@jonoterc
Copy link
Author

Brushing up on spec showed just how broken the rspec usage was in rvm_system_spec; I'm assuming it's fine to push the corrected version to this PR (tests are still passing for all included nodesets)

…cter before configuring rspec (i.e. bad rspec usage in rvm_system_spec.rb was the only reason for those hacks); note that this was meant to be included in the last commit
@carlossg carlossg merged commit 20c5b4a into voxpupuli:maestrodev Jul 22, 2014
@jonoterc
Copy link
Author

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants