website: plugins
This commit is contained in:
parent
0b7b7e3cf4
commit
97ec004724
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
layout: "docs"
|
||||
---
|
||||
|
||||
# Custom Builder
|
||||
|
||||
Packer is extensible, allowing you to write new builders without having to
|
||||
modify the core source code of Packer itself. Documentation for creating
|
||||
new builders is covered in the [custom builders](/docs/extend/builder.html)
|
||||
page of the Packer plugin section.
|
|
@ -0,0 +1,77 @@
|
|||
---
|
||||
layout: "docs"
|
||||
---
|
||||
|
||||
# Packer Plugins
|
||||
|
||||
Plugins allow Packer new functionality to be added to Packer without
|
||||
modifying the core source code. Packer plugins are able to add new
|
||||
commands, builders, provisioners, hooks, and more. In fact, much of Packer
|
||||
itself is implemented by writing plugins that are simply distributed with
|
||||
the Packer. For example, all the commands, builders, provisioners, and more
|
||||
that ship with Packer are implemented as Plugins that are simply hardcoded
|
||||
to load with Packer.
|
||||
|
||||
This page will cover how to install and use plugins. If you're interested
|
||||
in developing plugins, the documentation for that is available the
|
||||
[developing plugins](#) page.
|
||||
|
||||
Because Packer is so young, there is no official listing of available
|
||||
Packer plugins. Plugins are best found via Google. Typically, searching
|
||||
"packer plugin _x_" will find what you're looking for if it exists. As
|
||||
Packer gets older, an official plugin directory is planned.
|
||||
|
||||
## How Plugins Work
|
||||
|
||||
Packer plugins are completely separate, standalone applications that the
|
||||
core of Packer starts and communicates with.
|
||||
|
||||
These plugin applications aren't meant to be run manually. Instead, Packer core executes
|
||||
these plugin applications in a certain way and communicates with them.
|
||||
For example, the VMware builder is actually a standalone binary named
|
||||
`packer-builder-vmware`. The next time you run a Packer build, look at
|
||||
your process list and you should see a handful of `packer-` prefixed
|
||||
applications running.
|
||||
|
||||
## Installing Plugins
|
||||
|
||||
Plugins are installed by modifying the core Packer configuration. Within
|
||||
the core configuration, each component has a key/value mapping of the
|
||||
plugin name to the actual plugin binary.
|
||||
|
||||
For example, if we're adding a new builder for CustomCloud, the core
|
||||
Packer configuration may look like this:
|
||||
|
||||
<pre class="prettyprint">
|
||||
{
|
||||
"builders": {
|
||||
"custom-cloud": "packer-builder-custom-cloud"
|
||||
}
|
||||
}
|
||||
</pre>
|
||||
|
||||
In this case, the "custom-cloud" type is the type that is actually used for the value
|
||||
of the "type" configuration key for the builder definition.
|
||||
|
||||
The value, "packer-builder-custom-cloud", is the path to the plugin binary.
|
||||
It can be an absolute or relative path. If it is not an absolute path, then
|
||||
the binary is searched for on the PATH. In the example above, Packer will
|
||||
search for `packer-builder-custom-cloud` on the PATH.
|
||||
|
||||
After adding the plugin to the core Packer configuration, it is immediately
|
||||
available on the next run of Packer. To uninstall a plugin, just remove it
|
||||
from the core Packer configuration.
|
||||
|
||||
In addition to builders, other types of plugins can be installed. The full
|
||||
list is below:
|
||||
|
||||
* "builders" - A key/value pair of builder type to the builder plugin
|
||||
application.
|
||||
|
||||
* "commands" - A key/value pair of the command name to the command plugin
|
||||
application. The command name is what is executed on the command line, like
|
||||
`packer COMMAND`.
|
||||
|
||||
* "provisioners" - A key/value pair of the provisioner type to the
|
||||
provisioner plugin application. The provisioner type is the value of the
|
||||
"type" configuration used within templates.
|
|
@ -44,15 +44,15 @@
|
|||
<li><a href="/docs/builders/amazon-ebs.html">EC2 (AMI)</a></li>
|
||||
<li><a href="#">VirtualBox</a></li>
|
||||
<li><a href="/docs/builders/vmware.html">VMware</a></li>
|
||||
<li><a href="#">Custom</a></li>
|
||||
<li><a href="/docs/builders/custom.html">Custom</a></li>
|
||||
|
||||
<li class="nav-header">Provisioners</a></li>
|
||||
<li><a href="#">Shell Scripts</a></li>
|
||||
<li><a href="#">Custom</a></li>
|
||||
|
||||
<li class="nav-header">Extend Packer</li>
|
||||
<li><a href="#">Packer Plugins</a></li>
|
||||
<li><a href="#">Custom Builder</a></li>
|
||||
<li><a href="/docs/extend/plugins.html">Packer Plugins</a></li>
|
||||
<li><a href="/docs/extend/builder.html">Custom Builder</a></li>
|
||||
<li><a href="#">Custom Command</a></li>
|
||||
<li><a href="#">Custom Provisioner</a></li>
|
||||
</ul>
|
||||
|
|
Loading…
Reference in New Issue