mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2024-12-24 16:10:02 -06:00
80 lines
2.4 KiB
ReStructuredText
80 lines
2.4 KiB
ReStructuredText
Building Vagrant box images
|
|
===========================
|
|
|
|
This document describes how to build vagrant box images for the
|
|
FreeIPA workshop.
|
|
|
|
Requirements
|
|
------------
|
|
|
|
- Install packer (http://packer.io/)
|
|
- Clone the packer-templates repository
|
|
(https://github.com/kaorimatz/packer-templates)
|
|
|
|
|
|
Packer template
|
|
---------------
|
|
|
|
Apply the following changes to the ``fedora-28-x86_64.json`` packer
|
|
template:
|
|
|
|
- Add the ``scripts/fedora/ipa.sh`` provisioner and copy (or
|
|
symlink) ``ipa.sh`` from *this* repository to ``scripts/fedora``.
|
|
This script installs the FreeIPA packages and creates other files
|
|
required for the workshop.
|
|
|
|
|
|
Building the virtualbox image
|
|
-----------------------------
|
|
|
|
Build the images::
|
|
|
|
$BIN_PACKER build -only=virtualbox-iso -var disk_size=4000 -var memory=1024 fedora-28-x86_64.json
|
|
|
|
Packer stores images and other data in ``/tmp`` during processing.
|
|
If you have limited space in ``/tmp`` set ``TMPDIR`` to point
|
|
somewhere else with more space.
|
|
|
|
|
|
Building the QEMU/libvirt image
|
|
-------------------------------
|
|
|
|
Build the image::
|
|
|
|
$BIN_PACKER build -only=qemu -var disk_size=4000 -var memory=1024 fedora-28-x86_64.json
|
|
|
|
The output box is a gzip-compressed tarball. Unfortunately, the VM
|
|
image it contains is not sparse and will waste a lot of space (and
|
|
time) when Vagrant unpacks and imports the image. Therefore we
|
|
unpack, sparsify and repack the box::
|
|
|
|
mkdir box && cd box && tar -xf ../fedora-28-x86_64-libvirt.box
|
|
virt-sparsify --in-place box.img
|
|
tar -czf ../fedora-28-x86_64-libvirt.box * && cd .. && rm -rf box
|
|
|
|
|
|
Uploading boxes to HashiCorp Atlas
|
|
----------------------------------
|
|
|
|
Vagrant by default looks for boxes in a directory called *Atlas*.
|
|
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*.
|