Up Next: Nexus Support for Yum Repositories

By

3 minute read time

The upcoming release of Nexus OSS (now known as Sonatype Nexus Repository Community Edition) will support Yum repositories. Sebastian Herold, with gracious support from IS24, has developed and contributed his code and time to integrate his Nexus Yum plugin into the Nexus 2.x line. We have heard from many Nexus users, who are heading down the path of continuous delivery, that Yum support in Nexus to deliver RPMs to production servers is critical. Several of our customers have been using Sebastian's plugin for some time and have been impressed, and so we're excited about the integration of Yum functionality into Nexus OSS!

Some of you might be interested in using our Yum support to facilitate application deployment to staging and production networks. Many companies that deploy Java and other technologies end up packaging applications as RPMs and deploying them through Yum on Red Hat or Centos, because it provides a really easy way to manage, deploy, and rollback software packages in production. It is much easier to tell Operations to deploy RPMs than to draw up a series of instructions for installing Jetty or Tomcat from a tarball. To support these use cases, we'll invest some time developing more documentation and training to support developers who need to adapt applications to deployments that depend on this Yum integration.

While Nexus is primarily used to support application development, this Yum support can be used on its own to cache and simplify Yum repository configuration and package data. We'll also be building out more examples of how Nexus can be integrated with infrastructure management tools, such as chef and puppet.

Features of the Nexus Yum Support

As we integrate this feature into Nexus proper, here is the current list of features. We expect this support to evolve over time, but here's what the plugin provides now.

  • Expose an existing Maven repository as an RPM repository - Use a Maven repository, hosted in Nexus, containing RPMs as if it was a Yum repository. This leverages the virtual repository mechanism in Nexus, which allows you to use Maven tooling to deploy RPMs into a Maven repository, but still allows Yum clients to interact with the repository using the protocol it understands.

  • Automated refresh of repository data - Yum repositories are automatically updated if you upload/deploy/delete a new RPM into Nexus. In a traditional RPM repository, you have to run createrepo to refresh repository metadata. With Nexus, this is all taken care of automatically.

  • Full group support - You can logically group a set of Yum repositories behind a single URL. If your infrastructure relies on many remote RPM repositories, you can consolidate OS configuration to point to a single Yum repository that can aggregate multiple repositories into one.

  • Versioned views on repositories: http://your.nexus/nexus/service/local/yum/repos/releases/1.2.3/ gives you a Yum repository with all packages in version 1.2.3 in repository releases. This particular feature is a game-changer for companies that release software using RPM as a delivery mechanism.

  • Alias Definitions for Specific Versions eg. production=1.2 and testing=2.0 and access them via the alias: http://your.nexus/nexus/service/local/yum/repos/releases/testing/ and http://your.nexus/nexus/service/local/yum/repos/releases/production/ to get constant repository URLs for your servers. A new release is then applied to the server by setting the alias to a new version.

  • createrepo Nexus Tasks Types - Create Yum createrepo tasks manually via web interface. Multiple createrepo tasks on the same repository are merged.

  • Full integration with Nexus staging - Use Yum group repositories as target of staging repositories (such as Sonatype Nexus Repository). Stage RPM artifacts to development environments configured to pull artifacts from Nexus repository groups./li>

You can find the source for the Nexus Yum Plugin in our GitHub repository. We would love your feedback, as we still have time to make changes and improvements before the Nexus Yum plugin is integrated into Nexus OSS proper.

Picture of Jason van Zyl

Written by Jason van Zyl

Jason is a co-founder and the former CTO of Sonatype.

Tags