Vagrant and Fedora 22

I’ve used Vagrant previously for testing something and forgot about it. Now, I need a Fedora server to test something. So, I thought, why not use Vagrant to do what I want. And as I’m wont to do, I wanted to document it. So here goes nothing and everything.

I’m using a Mac, so I’m obviously going to use Homebrew to install everything I need. Before we proceed, let’s first install cask, cause we’ll need that to install our packages.

$ brew install caskroom/cask/brew-cask

That’s done. Let’s install vagrant and virtualbox next.

$ brew cask install virtualbox
$ brew cask install vagrant

Next, let’s get the Fedora images. Make sure you get the image for vagrant. Here’s the one I downloaded:

~/Downloads $ du -h *.box
209M	Fedora-Cloud-Base-Vagrant-22-20150521.x86_64.vagrant-virtualbox.box
~/Downloads $ shasum -a 256 Fedora-Cloud-Base-Vagrant-22-20150521.x86_64.vagrant-virtualbox.box
2513342f70c00310e161a110e34973a133691fedd866859e65904fa056ae7a0c  Fedora-Cloud-Base-Vagrant-22-20150521.x86_64.vagrant-virtualbox.box

To be able to use our downloaded image, we’ll need to add it to Vagrant.

~/Cave/Fedora22 $ vagrant box add ~/Downloads/Fedora-Cloud-Base-Vagrant-22-20150521.x86_64.vagrant-virtualbox.box --name fedora-22
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'fedora-22' (v0) for provider:
    box: Unpacking necessary files from: file:///Users/sidcarter/Downloads/Fedora-Cloud-Base-Vagrant-22-20150521.x86_64.vagrant-virtualbox.box
==> box: Successfully added box 'fedora-22' (v0) for 'virtualbox'!

After adding the image to vagrant, create a Vagrantfile that’ll use this image.

$ cat Vagrantfile
Vagrant.configure(2) do |config|
  config.vm.box = "fedora-22"
end

Let’s start them engines now, shall we? In the directory with the Vagrantfile, you can do a vagrant up and you should see this:

~/Cave/Fedora22 $ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'fedora-22'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: Fedora22_default_1444702096982_14160
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 => 2222 (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Connection timeout. Retrying...
    default:
    default: Vagrant insecure key detected. Vagrant will automatically replace
    default: this with a newly generated keypair for better security.
    default:
    default: Inserting generated public key within guest...
    default: Removing insecure key from the guest if it's present...
    default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
    default: No guest additions were detected on the base box for this VM! Guest
    default: additions are required for forwarded ports, shared folders, host only
    default: networking, and more. If SSH fails on this machine, please install
    default: the guest additions and repackage the box to continue.
    default:
    default: This is not an error message; everything may continue to work properly,
    default: in which case you may ignore this message.
==> default: Installing rsync to the VM...
==> default: Rsyncing folder: /Users/sidcarter/Cave/Fedora22/ => /vagrant

That’s looking good so far. Let’s login to the box now and look at what we got, shall we?

~/Cave/Fedora22 $ vagrant ssh
Last login: Tue Oct 13 02:10:25 2015 from 10.0.2.2
[vagrant@ip-10-0-2-15 ~]$
[vagrant@ip-10-0-2-15 ~]$ cat /etc/fedora-release
Fedora release 22 (Twenty Two)

Fantastic! We’re done here. I hope you find this useful.

✎ October 12, 2015