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.
- Previous: String formatting in Python
- Next: Reducing the size of a docker image