2014-06-25 11:44:08 -04:00
|
|
|
---
|
|
|
|
layout: "docs"
|
|
|
|
page_title: "Vagrant Cloud Post-Processor"
|
|
|
|
---
|
|
|
|
|
|
|
|
# Vagrant Cloud Post-Processor
|
|
|
|
|
|
|
|
Type: `vagrant-cloud`
|
|
|
|
|
|
|
|
The Vagrant Cloud post-processor recieves a Vagrant box from the `vagrant`
|
|
|
|
post-processor and pushes it to Vagrant Cloud. [Vagrant Cloud](https://vagrantcloud.com)
|
|
|
|
hosts and serves boxes to Vagrant, allowing you to version and distribute
|
|
|
|
boxes to an organization in a simple way.
|
|
|
|
|
|
|
|
You'll need to be familiar with Vagrant Cloud, have an upgraded account
|
|
|
|
to enable box hosting, and be distributing your box via the [shorthand name](http://docs.vagrantup.com/v2/cli/box.html)
|
|
|
|
configuration.
|
|
|
|
|
|
|
|
## Workflow
|
|
|
|
|
|
|
|
It's important to understand the workflow that using this post-processor
|
|
|
|
enforces in order to take full advantage of Vagrant and Vagrant Cloud.
|
|
|
|
|
|
|
|
The use of this processor assume that you currently distribute, or plan
|
|
|
|
to distrubute, boxes via Vagrant Cloud. It also assumes you create Vagrant
|
|
|
|
Boxes and deliver them to your team in some fashion.
|
|
|
|
|
|
|
|
Here is an example workflow:
|
|
|
|
|
|
|
|
1. You use Packer to build a Vagrant Box for the `virtualbox` provider
|
|
|
|
2. The `vagrant-cloud` post-processor is configured to point to the box `hashicorp/foobar` on Vagrant Cloud
|
|
|
|
via the `box_tag` configuration
|
|
|
|
2. The post-processor receives the box from the `vagrant` post-processor
|
|
|
|
3. It then creates the configured version, or verifies the existence of it, on Vagrant Cloud
|
|
|
|
4. A provider matching the name of the Vagrant provider is then created
|
|
|
|
5. The box is uploaded to Vagrant Cloud
|
|
|
|
6. The upload is verified
|
|
|
|
7. The version is released and available to users of the box
|
|
|
|
|
|
|
|
|
|
|
|
## Configuration
|
|
|
|
|
|
|
|
The configuration allows you to specify the target box that you have
|
|
|
|
access to on Vagrant Cloud, as well as authentication and version information.
|
|
|
|
|
|
|
|
### Required:
|
|
|
|
|
|
|
|
* `access_token` (string) - Your access token for the Vagrant Cloud API.
|
|
|
|
This can be generated on your [tokens page](https://vagrantcloud.com/account/tokens).
|
|
|
|
|
|
|
|
* `box_tag` (string) - The shorthand tag for your box that maps to
|
|
|
|
Vagrant Cloud, i.e `hashicorp/precise64` for `vagrantcloud.com/hashicorp/precise64`
|
|
|
|
|
|
|
|
* `version` (string) - The version number, typically incrementing a previous version.
|
|
|
|
The version string is validated based on [Semantic Versioning](http://semver.org/). The string must match
|
|
|
|
a pattern that could be semver, and doesn't validate that the version comes after
|
|
|
|
your previous versions.
|
|
|
|
|
|
|
|
|
|
|
|
### Optional:
|
|
|
|
|
|
|
|
* `version_description` (string) - Optionally markdown text used as a full-length
|
|
|
|
and in-depth description of the version, typically for denoting changes introduced
|
|
|
|
|
|
|
|
* `no_release` (string) - If set to true, does not release the version
|
|
|
|
on Vagrant Cloud, making it active. You can manually release the version
|
|
|
|
via the API or Web UI. Defaults to false.
|
|
|
|
|
|
|
|
|
|
|
|
## Use with Vagrant Post-Processor
|
|
|
|
|
|
|
|
You'll need to use the Vagrant post-processor before using this post-processor.
|
|
|
|
An example configuration is below. Note the use of the array specifying
|
|
|
|
the execution order.
|
|
|
|
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
"variables": {
|
|
|
|
"version": "",
|
|
|
|
"cloud_token": ""
|
|
|
|
},
|
|
|
|
"builders": [{
|
|
|
|
...
|
|
|
|
}],
|
|
|
|
"post-processors": [
|
|
|
|
[{
|
|
|
|
"type": "vagrant",
|
|
|
|
"include": ["image.iso"],
|
|
|
|
"vagrantfile_template": "vagrantfile.tpl",
|
2014-06-25 11:46:27 -04:00
|
|
|
"output": "proxycore_{{.Provider}}.box"
|
2014-06-25 11:44:08 -04:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "vagrant-cloud",
|
|
|
|
"box_tag": "hashicorp/precise64",
|
|
|
|
"access_token": "{{user `cloud_token`}}",
|
2014-06-25 11:45:53 -04:00
|
|
|
"version": "{{user `version`}}"
|
2014-06-25 11:44:08 -04:00
|
|
|
}]
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
|
|
|
```
|