Using Vagrant to Get Started with RHEL

Red Hat Linux was the first version of Linux I ever used. Until succumbing to The Cult of Macintosh a few years ago, I was a faithful Red Hat (and later Fedora) junkie. Hell, I still have my 15 year old Red Hat 7.2 discs.

Screen Shot 2016-05-27 at 4.26.16 PM

But, as a developer, it has been tough to do any substantial work with Red Hat Enterprise Linux (RHEL) unless working for an organization that has a license. That is, until relatively recently, when Red Hat released the Red Hat Enterprise Linux Developer Suite for development use. The RHEL Developer Suite provides a free subscription to RHEL for development use only, which means that we (as developers) get access to the world’s leading enterprise Linux platform at zero cost to build big things. (Download it here.)

If you’ve read anything I’ve written in the past, you know that I am a massive fan of Vagrant. For the uninitiated, Vagrant is a tool that allows developers to create lightweight, reproducible development environments. When used correctly, Vagrant removes discrepancies between developer machines and makes it possible to provide development/production environment parity. Since I’m new to RHEL, the most useful thing that I can do to get started with it in a proper server-like environment is to setup a Vagrant base box for development purposes.

Before we get started, the first thing you should do is signup as a RHEL Developer, download the RHEL 7 ISO image, and install it on VirtualBox (Red Hat is nice enough to provide a guide for this). Next, we need to prepare the virtual machine for use with Vagrant. In researching this, I found a great guide that goes through this process in detail (albeit with a different operating system). While you can follow the guide pretty closely, there are a few things that we need to change.

First, before we can install any packages, we need to register with the RHEL subscription manager. Your developer account provides you with a free subscription, so all you have to do is log into your newly provisioned machine and run the following command:

subscription-manager register

After you’ve logged in, you also have to attach your subscription to this machine using this command:

subscription-manager attach

Now that we’ve registered with the RHEL subscription manager, we can install some required packages. The only ones we will need are openssh, wget, and gcc (you can skip any other installations mentioned in the linked guide). Use the yum package manager to install these packages on RHEL:

yum install -y openssh wget gcc

Also, before packaging the Vagrant box, you need to remove the following line from your /etc/sudoers file:

Defaults requiretty

This is important, as Vagrant uses SSH to run commands and do some setup on the machine. If that line isn’t removed, then RHEL will require a login shell in order to run those commands and Vagrant provisioning will fail.

Screen Shot 2016-05-27 at 4.26.37 PM

That’s it! With the exception of those changes to the referenced guide, getting RHEL working with Vagrant is an incredibly straightforward process and, when you’re done, you will have a repeatable environment that you (and anyone on your team) can quickly and easily use to build applications for Red Hat Enterprise Linux.


Screen Shot 2016-05-27 at 4.27.04 PMAbout Zach

Zachary Flower (@zachflower) is a freelance web developer, writer, and polymath. He has an eye for simplicity and usability, and strives to build products with both the end user and business goals in mind. From building projects for the NSA to creating features for companies like Name.com and Buffer, Zach has always taken a strong stand against needlessly reinventing the wheel, often advocating for the use of well established third-party and open source services and solutions to improve the efficiency and reliability of a development project.

 


Join the Red Hat Developer Program (it’s free) and get access to related cheat sheets, books, and product downloads.

Take advantage of your Red Hat Developers membership and download RHEL today at no cost.

Share
  • Would this work for RHEL6 as well? Would a similar method (rhn_regks) work for uses of Red Hat Satellite 5.6 (ie. RHN-based, not Subscription Manager based). I’m looking forward to being able to give a vagrant environment to my developers, as we’re increasingly using Software Collections and so CentOS doesn’t really pass muster for that anymore.

    Cheers,
    Cameron

  • Leynos

    I found that I also needed to install kernel-devel in order to get the VirtualBox guest additions built.

    I also needed to add a file in /etc/profiles.d to change the default umask to 0022. Otherwise, the ssh authorized_key file being created by vargrant was being created with mode 0664, which is rejected by the ssh daemon.