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.