Puppet provider for python library installation
We run a python/Tornado-based recommendations service behind the scenes at Wayfair. As part of our code deployments, we need to install various third-party libraries to our Tornado servers. The python tools that do this kind of thing are a bit half-baked, so we paper over their inadequacies with puppet.
A while back a fellow name Richard Crowley wrote a puppet-pip provider, which seems to have been folded into Puppet 2.7, or replaced by a module in Puppet 2.7, or something like that. So in a sense his little project is dead. But Karthick on our team has resurrected a fork of it, a hybrid provider using subcommands of setuptools (easy_install) and pip for different aspects of installation, version checking and uninstallation. We call it easypip (easypip.rb), and the forked project containing it is now up on github. Enjoy!
Responses
March 28th, 2012
If this functionality was put into Puppet 2.7, what is the benefit of forking and maintaining it? Thanks
April 10th, 2012
Richard Crowley’s original pip provider, which our thing is based on, has been absorbed into Puppet 2.7. Our fork does things a little differently, and is in our humble opinion more useful: it uses easy_install to install eggs, which pip doesn’t do, so we don’t have to install build tools on our production servers. And it uses pip to check version numbers and uninstall, which pip is good at.