Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
P
packer
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Kristopher Ruzic
packer
Commits
439cfb4d
Commit
439cfb4d
authored
Jun 27, 2013
by
Mitchell Hashimoto
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
website: document the vagrant post-processor
parent
f38ed0c6
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
136 additions
and
17 deletions
+136
-17
website/config.rb
website/config.rb
+21
-17
website/source/docs/post-processors/vagrant.html.markdown
website/source/docs/post-processors/vagrant.html.markdown
+110
-0
website/source/layouts/docs.erb
website/source/layouts/docs.erb
+5
-0
No files found.
website/config.rb
View file @
439cfb4d
...
...
@@ -7,27 +7,31 @@ raise "PACKER_VERSION must be set." if !ENV["PACKER_VERSION"]
# Download the list of Packer downloads
#-------------------------------------------------------------------------
http
=
Net
::
HTTP
.
new
(
"dl.bintray.com"
,
80
)
req
=
Net
::
HTTP
::
Get
.
new
(
"/mitchellh/packer"
)
req
.
basic_auth
"mitchellh"
,
ENV
[
"BINTRAY_API_KEY"
]
response
=
http
.
request
(
req
)
$packer_files
=
{}
response
.
body
.
split
(
"
\n
"
).
each
do
|
line
|
next
if
line
!~
/\/mitchellh\/packer\/(
#{
ENV
[
"PACKER_VERSION"
]
}
.+?)\?/
filename
=
$1
.
to_s
os
=
filename
.
split
(
"_"
)[
1
]
$packer_os
=
[]
$packer_files
[
os
]
||=
[]
$packer_files
[
os
]
<<
filename
end
if
!
ENV
[
"PACKER_DISABLE_DOWNLOAD_FETCH"
]
http
=
Net
::
HTTP
.
new
(
"dl.bintray.com"
,
80
)
req
=
Net
::
HTTP
::
Get
.
new
(
"/mitchellh/packer"
)
req
.
basic_auth
"mitchellh"
,
ENV
[
"BINTRAY_API_KEY"
]
response
=
http
.
request
(
req
)
response
.
body
.
split
(
"
\n
"
).
each
do
|
line
|
next
if
line
!~
/\/mitchellh\/packer\/(
#{
ENV
[
"PACKER_VERSION"
]
}
.+?)\?/
filename
=
$1
.
to_s
os
=
filename
.
split
(
"_"
)[
1
]
$packer_os
=
[
"darwin"
,
"linux"
,
"windows"
]
&
$packer_files
.
keys
$packer_os
+=
$packer_files
.
keys
$packer_os
.
uniq!
$packer_files
[
os
]
||=
[]
$packer_files
[
os
]
<<
filename
end
$packer_os
=
[
"darwin"
,
"linux"
,
"windows"
]
&
$packer_files
.
keys
$packer_os
+=
$packer_files
.
keys
$packer_os
.
uniq!
$packer_files
.
each
do
|
key
,
value
|
value
.
sort!
$packer_files
.
each
do
|
key
,
value
|
value
.
sort!
end
end
#-------------------------------------------------------------------------
...
...
website/source/docs/post-processors/vagrant.html.markdown
0 → 100644
View file @
439cfb4d
---
layout
:
"
docs"
page_title
:
"
Vagrant
Post-Processor"
---
# Vagrant Post-Processor
Type:
`vagrant`
The Vagrant post-processor takes a build and converts the artifact
into a valid
[
Vagrant
](
http://www.vagrantup.com
)
box, if it can.
This lets you use Packer to automatically create arbitrarily complex
Vagrant boxes, and is in fact how the official boxes distributed by
Vagrant are created.
If you've never used a post-processor before, please read the
documentation on
[
using post-processors
](
/docs/templates/post-processors.html
)
in templates. This knowledge will be expected for the remainder of
this document.
Because Vagrant boxes are
[
provider-specific
](
#
)
,
the Vagrant post-processor is hardcoded to understand how to convert
the artifacts of certain builders into proper boxes for their
respective providers.
Currently, the Vagrant post-processor can create boxes for the following
providers.
*
AWS
*
VirtualBox
*
VMware
<div
class=
"alert alert-block alert-info"
>
<strong>
Support for additional providers
</strong>
is planned. If the
Vagrant post-processor doesn't support creating boxes for a provider you
care about, please help by contributing to Packer and adding support for it.
</div>
## Configuration
The simplest way to use the post-processor is to just enable it. No
configuration is required by default. This will mostly do what you expect
and will build functioning boxes for many of the built-in builders of
Packer.
However, if you want to configure things a bit more, the post-processor
does expose some configuration options. The available options are listed
below, with more details about certain options in following sections.
*
`output`
(string) - The full path to the box file that will be created
by this post-processor. This is a
[
configuration template
](
/docs/templates/configuration-templates.html
)
.
The variable
`Provider`
is replaced by the Vagrant provider the box is for.
By default, the value of this config is
`packer_{{.Provider}}.box`
.
*
`aws`
,
`virtualbox`
, or
`vmware`
(objects) - These are used to configure
the specific options for certain providers. A reference of available
configuration parameters for each is in the section below.
### AWS Provider
The AWS provider itself can be configured with specific options:
*
`vagrantfile_template`
(string) - Path to a template to use for the
Vagrantfile that is packaged with the box. The contents of the file must be a valid Go
[
text template
](
http://golang.org/pkg/text/template
)
. By default
this is a template that simply sets the AMIs for the various regions
of the AWS build.
The
`vagrantfile_template`
has the
`Images`
variable which is a map
of region (string) to AMI ID (string). An example Vagrantfile template for
AWS is shown below. The example simply sets the AMI for each region.
```
Vagrant.configure("2") do |config|
config.vm.provider "aws" do |aws|
{{ range $region, $ami := .Images }}
aws.region_config "{{ $region }}", ami: "{{ $ami }}"
{{ end }}
end
end
```
### VirtualBox Provider
The VirtualBox provider itself can be configured with specific options:
*
`vagrantfile_template`
(string) - Path to a template to use for the
Vagrantfile that is packaged with the box. The contents of the file must be a valid Go
[
text template
](
http://golang.org/pkg/text/template
)
. By default this is
a template that just sets the base MAC address so that networking works.
The
`vagrantfile_template`
has the
`BaseMACAddress`
variable which is a string
containing the MAC address of the first network interface. This must be set
in the Vagrantfile for networking to work properly with Vagrant. An example
Vagrantfile template is shown below:
```
TODO
```
### VMware Provider
The VMware provider itself can be configured with specific options:
*
`vagrantfile_template`
(string) - Path to a template to use for the
Vagrantfile that is packaged with the box. The contents of the file must be a valid Go
[
text template
](
http://golang.org/pkg/text/template
)
. By default no
Vagrantfile is packaged with the box. Note that currently no variables
are available in the template, but this may change in the future.
website/source/layouts/docs.erb
View file @
439cfb4d
...
...
@@ -38,6 +38,11 @@
<li><a
href=
"/docs/provisioners/custom.html"
>
Custom
</a></li>
</ul>
<ul>
<li><h4>
Post-Processors
</h4></li>
<li><a
href=
"/docs/post-processors/vagrant.html"
>
Vagrant
</a></li>
</ul>
<ul>
<li><h4>
Other
</h4></li>
<li><a
href=
"/docs/other/core-configuration.html"
>
Core Configuration
</a></li>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment