github.com/phobos182/packer@v0.2.3-0.20130819023704-c84d2aeffc68/website/source/docs/basics/terminology.html.markdown (about) 1 --- 2 layout: "docs" 3 --- 4 5 # Packer Terminology 6 7 There are a handful of terms used throughout the Packer documentation where 8 the meaning may not be immediately obvious if you haven't used Packer before. 9 Luckily, there are relatively few. This page documents all the terminology 10 required to understand and use Packer. The terminology is in alphabetical 11 order for easy referencing. 12 13 <a class="term" id="term-artifact"></a> 14 **Artifacts** are the results of a single [build](#term-build), and are 15 usually a set of IDs or files to represent a machine image. Every [builder](#term-builder) 16 produces a single artifact. As an example, in the case of the Amazon EC2 builder, 17 the artifact is a set of AMI IDs (one per region). For the VMware builder, 18 the artifact is a directory of files comprising the created virtual machine. 19 20 <a class="term" id="term-build"></a> 21 **Builds** are a single task that eventually produces an image for a single 22 platform. Multiple builds run in parallel. Example usage in a sentence: "The Packer build 23 produced an AMI to run our web application." Or: "Packer is running the builds 24 now for VMware, AWS, and VirtualBox." 25 26 <a class="term" id="term-builder"></a> 27 **Builders** are components of Packer that are able to create a machine 28 image for a single platform. Builders read in some configuration and use 29 that to run and generate a machine image. A builder is invoked as part of a [build](#term-build) 30 in order to create the actual resulting images. Example builders include 31 VirtualBox, VMware, and Amazon EC2. Builders can be created and added to 32 Packer in the form of plugins. 33 34 <a class="term" id="term-command"></a> 35 **Commands** are sub-commands for the `packer` program that perform some 36 job. An example somecommand is "build", which is invoked as `packer build`. 37 Packer ships with a set of commands out of the box in order to define 38 its [command-line interface](#). Commands can also be created and added to 39 Packer in the form of plugins. 40 41 <a class="term" id="term-post-processor"></a> 42 **Post-processors** are components of Packer that take the result of 43 a [builder](#term-builder) or another post-processor and process that to 44 create a new [artifact](#term-artifact). Examples of post-processors are 45 compress to compress artifacts, upload to upload artifacts, etc. 46 47 <a class="term" id="term-provisioner"></a> 48 **Provisioners** are components of Packer that install and configure 49 software within a running machine prior to that machine being turned 50 into a static image. They perform the major work of making the image contain 51 useful software. Example provisioners include shell scripts, Chef, Puppet, 52 etc. 53 54 <a class="term" id="term-template"></a> 55 **Templates** are JSON files which define one or more [builds](#term-build) 56 by configuring the various components of Packer. Packer is able to read a 57 template and use that information to create multiple machine images in 58 parallel.