The Puppet Labs Issue Tracker has Moved: https://tickets.puppetlabs.com

Bug #13571

Puppet Enteprise installation fails due to missing mysql.rb driver

Added by Michal Ruzicka over 2 years ago. Updated about 2 years ago.

Status:ClosedStart date:04/02/2012
Priority:UrgentDue date:
Assignee:Matthaus Owens% Done:

0%

Category:-
Target version:Commercial edition - PE 2.5.x
Keywords:amazon linux mysql gem Affected URL:
Branch: Affected PE version:

We've Moved!

Ticket tracking is now hosted in JIRA: https://tickets.puppetlabs.com

This issue is currently not available for export. If you are experiencing the issue described below, please file a new ticket in JIRA. Once a new ticket has been created, please add a link to it that points back to this Redmine ticket.


Description

Installation of the Puppet Enterprise currently fails with the following error (at least on rpm based systems):

. . .

Setting up the console…

!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql. rake aborted! libmysqlclient.so.16: cannot open shared object file: No such file or directory – /opt/puppet/lib/ruby/site_ruby/1.8/x86_64-linux/mysql.so

(See full trace by running task with —trace)

====================================================================================================================================

!! ERROR: Cancelling installation

====================================================================================================================================

ADDITIONAL INFO – both PE 2.5 and 2.0 are affected – it is not possible to install the required gem as instructed as the custom installation of ruby doesn’t ship with C header files necessary for the compilation of the binary parts of the mysql.rb driver

History

#1 Updated by Michal Ruzicka over 2 years ago

  • Target version set to PE 2.x

#2 Updated by Michal Ruzicka over 2 years ago

  • Target version deleted (PE 2.x)

#3 Updated by Justin Stoller over 2 years ago

This is Very strange, and I haven’t seen this issue before, Michal.

Exactly what flavor/version of Enterprise Linux are you running? We currently test with RHEL, CentOS, Scientific, OEL and SLES. The mysql ruby driver is vendored within PE and should be installed as part of a normal installation.

Look in $EXTRACTED_PE_TARBALL_ROOT/packages/$YOUR_PLATFORM/ for pe-rubygem-mysql.

You can actually install the gem manually if you’d like (that’s how some install Postgresql support) by installing the pe-ruby-devel package in the afore mentioned packages directory and then using /opt/puppet/bin/gem.

This is NOT a recommended solution, and before you go down that road please let us know your platform/version/configuration and we’ll address that as a bug if its on a supported platform. If it’s not on a supported platform version you can vote for it to become one here: #11838

#4 Updated by Michal Ruzicka over 2 years ago

  • Status changed from Unreviewed to Closed

I was trying that on Amazon linux 2011.09 which is close to RHEL 6, but not exactly the same – there seems to be a newer version of mysql-libs, which contains libmysqlclient.so.18 rather than libmysqlclient.so.16 required by the /opt/puppet/lib/ruby/site_ruby/1.8/x86_64-linux/mysql.so that does ship with Puppet Enterprise.

It turns out that the mysql51-libs package contains the required library and pre-installing this package before the puppet enterprise installation script is run fixes the problem.

#5 Updated by Tyler Walters over 2 years ago

  • Status changed from Closed to Re-opened
  • Target version set to PE 2.5.x

We’re experiencing the same issue in Amazon Linux 64 image. If this were the open source version, no biggie, but it seems that this should be addressed automatically in the Enterprise binary, especially for the #1-used image on one of the top cloud providers.

Technically the workaround is easy and effective, but from an account management / business perspective, this does not help our case when trying to sell the point to clients that Puppet is “Enterprise-Ready”.

At minimum, please perform this check at the start of the install process. As-is, the install goes through the whole config prompt wizard and modifies the system with a bunch of installs before the fail. Then subsequent runs respond that puppet is already installed and needs to be upgraded.

#6 Updated by Gui Ambros over 2 years ago

I was having the exact same problem. Installation fails on Amazon Linux AMI distro. The image used was amzn-ami-pv-2012.03.1.x86_64.ext4.

As Michael pointed out, the solution is simple: just pre-install mysql51-libs before trying to install PE.

#7 Updated by Gary Larizza over 2 years ago

Just updating with more relevant behavior —> https://gist.github.com/114a409990e08c323be0

That gist should describe the actions I took and the error I received. Sounds like Haus has a bead on this and hopefully a solution!

#8 Updated by Gary Larizza over 2 years ago

  • Assignee set to Matthaus Owens
  • Keywords set to amazon linux mysql gem

#9 Updated by Matthaus Owens over 2 years ago

  • Status changed from Re-opened to In Topic Branch Pending Review

The following pull should address the issue by installing mysql51 instead of mysql (which defaults to mysql55). https://github.com/puppetlabs/enterprise-dist/pull/592

#10 Updated by Moses Mendoza over 2 years ago

  • Status changed from In Topic Branch Pending Review to Merged - Pending Release

#11 Updated by Matthaus Owens about 2 years ago

  • Status changed from Merged - Pending Release to Closed

Also available in: Atom PDF