Welcome to Pulp

TL;DR: Keep an eye on this project. It's going to save you EONS time because it handles the boring work for you.

Testing and applying operating system updates is one of the more mundane tasks for sys-admins, and yet it can quickly become complex when you're dealing with vendor support or multiple versions of applications. Testing updates to determine if they're safe to push to production, while pushing newer packages to developers is an ongoing struggle that can mean you often end up with multiple copies of various software that need to be maintained and dealt with. This often takes up far more time than it should and can keep you from doing what you actually got into sys-admin work to do (we won't tell your boss that he's paying you to read reddit all day). 

Enter Pulp; A powerful repository management project from the fine folks over at Red Hat to help take some of the tedium out of the repository management process. In a similar vein to mrepo or cobbler, pulp allows you to mirror the yum repositories you rely on. You create local copies of CentOS, Fedora, EPEL, ElRepo, whatever you need to get the job done. No big deal, right? But that's the easy stuff. Pulp allows you to create clones of repositories, so that you can freeze it at a specific point in time. Very handy for keeping a live repository mirror, but also keeping production in a known good state. Now, you might be thinking to yourself that you've just managed to double the size of your mirror with this but you'd be wrong. This is where pulp shines. The rpms are dealt with individually, and linked to the appropriate repository. This means that unless the package changes, the only thing you're doing is copying a link. Clones have almost no storage penalty but allow you tremendous flexibility. This means you can track CentOS or EPEL releases and push updates out on a maintenance you decide, after you've had the time to test and validate them.

You can also take packages FROM a repository, and inject it directly into another one. Only need a couple of packages from epel? Why add the entire repository and jump through a convoluted set of include/exclude statements? Just inject the packages you need directly into your distribution repository! Pulp will sort out the dependencies and pull them in for you, which saves you the hassle of iterative testing to figure out what you need.

Pulp is currently under heavy development, so you should test it first to determine if it works for your environment. The Pulp team is very close to their v2 release which promises a load of new features, including rumors of puppet rule syncing. It's got a vibrant community and a very outgoing development staff who can be found on freenode in #pulp if you want to chat. They're quite open to new ideas and willing to help.


Post a Comment

Copyright © Bit Integrity