Packer Builder Usage

Help

python -m packer_builder --help
...
usage: __main__.py [-h] [-d DISTRO] [-b BUILDER] [-f FILE] [-n NUMDAYS]
                   [-o OUTPUTDIR] [-p PASSWORD]
                   {build,generate-templates,list-distros,update-metadata}

Packer builder.

positional arguments:
  {build,generate-templates,list-distros,update-metadata}

optional arguments:
  -h, --help            show this help message and exit
  -d DISTRO, --distro DISTRO
                        Only build specific distro.
  -b BUILDER, --builder BUILDER
                        Only use specific builder.
  -f FILE, --file FILE  Path to distro.
  -n NUMDAYS, --numdays NUMDAYS
                        Define number of days since last build.
  -o OUTPUTDIR, --outputdir OUTPUTDIR
                        Define path to save builds.
  -p PASSWORD, --password PASSWORD
                        Define default password to override distros.yml

Examples

Build All Distros For All Builders

This will build all distros for all builders.

python -m packer_builder build -o ~/projects/packer/builds

Build All Distros For A Specific Builder

This will build all distros for a specific builder (virtualbox-iso in this example).

python -m packer_builder build -o ~/projects/packer/builds -b virtualbox-iso

Build A Specific Distro For All Builders

This will build a specific distro (CentOS in this example) for all builders.

python -m packer_builder build -o ~/projects/packer/builds -d CentOS

Build A Specific Distro For A Specific Builder

This will build a specific distro (CentOS in this example) for a specific builder (virtualbox-iso in this example).

python -m packer_builder build -o ~/projects/packer/builds -d CentOS -b virtualbox-iso

Define Default Password At Runtime

Because there might be a scenario in which you would want to override the password for all distros defined in distros.yml. You can pass this override password as part of the CLI arguments.

python -m packer_builder build -o ~/projects/packer/builds -p SuperSecretPass

Generate Templates (ONLY)

python -m packer_builder generate-templates --outputdir ~/projects/packer

vagrant-libvirt plugin on macOS

brew install libiconv gcc libvirt
RV=$(/opt/vagrant/embedded/bin/ruby --version | awk '{ print $2 }'| awk '{ split($0, a, "p"); print a[1] }')
CONFIGURE_ARGS='with-ldflags=-L/opt/vagrant/embedded/lib with-libvirt-include=/usr/local/include/libvirt with-libvirt-lib=/usr/local/lib' \
GEM_HOME=~/.vagrant.d/gems/$RV \
GEM_PATH=$GEM_HOME:/opt/vagrant/embedded/gems \
PATH=/opt/vagrant/embedded/bin:$PATH \
vagrant plugin install vagrant-libvirt