.. _building: Building Vagrant box images =========================== This document describes how to build vagrant box images for the FreeIPA workshop. Requirements ------------ - Install packer (http://packer.io/) - Install Vagrant, libvirt and VirtualBox - Clone the Fedora kickstarts repo (https://pagure.io/fedora-kickstarts) 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*.