Building Vagrant box images

This document describes how to build vagrant box images for the FreeIPA workshop.

Requirements

Packer template

Packer template packer-template-fedora.json requires Fedora 34 kickstart file used by Fedora to build vagrant images:

  • Clone the repo and checkout latest Fedora release branch:

    $ git clone https://pagure.io/fedora-kickstarts.git
    $ cd fedora-kickstarts
    $ git checkout f34
    
  • Install pykickstart package which provides ksflatten tool:

    $ sudo dnf install pykickstart
    
  • Generate the anaconda-ks.cfg file needed by flattening vagrant kickstart files and putting it onto the same folder as the packer template file:

    $ ksflatten -c $FEDORA_KICKSTARTS_REPO/fedora-cloud-base-vagrant.ks > $FREEIPA_REPO/doc/workshop/anaconda-ks.cfg
    

Building the vagrant images

Build the images:

$ cd $FREEIPA_REPO/doc/workshop
$ BIN_PACKER build packer-template-fedora.json

Uploading boxes to Vagrant Cloud

Vagrant by default looks for boxes in a directory called Vagrant Cloud. Therefore is is good to make images available there, so that people can easily download them as part of workshop preparation.

  1. Log into https://app.vagrantup.com/.

  2. Create or edit the freeipa-workshop box.

  3. Create a new version of the box (left-hand menu). Each version can include images for multiple providers.

  4. Create new provider for *virtualbox* and upload the corresponding .box file.

  5. Create new provider for *libvirt* and upload the corresponding .box file. libvirt may not appear as an autocomplete option but type it in anyway.

  6. Release the new version (this makes it available for Vagrant to download). Edit the version, then click Release version.