From 34164b25229718b6b2928ee6981ac5a0ac6d71f5 Mon Sep 17 00:00:00 2001 From: Jack Pearkes Date: Wed, 25 Jun 2014 11:44:08 -0400 Subject: [PATCH] post-processor/vagrant-cloud: add docs --- .../vagrant-cloud.html.markdown | 102 ++++++++++++++++++ website/source/layouts/docs.erb | 1 + 2 files changed, 103 insertions(+) create mode 100644 website/source/docs/post-processors/vagrant-cloud.html.markdown diff --git a/website/source/docs/post-processors/vagrant-cloud.html.markdown b/website/source/docs/post-processors/vagrant-cloud.html.markdown new file mode 100644 index 000000000..03d65442d --- /dev/null +++ b/website/source/docs/post-processors/vagrant-cloud.html.markdown @@ -0,0 +1,102 @@ +--- +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", + "output": "proxycore_{{.Provider}}.box", + }, + { + "type": "vagrant-cloud", + "box_tag": "hashicorp/precise64", + "access_token": "{{user `cloud_token`}}", + "version": "{{user `version`}}", + "version_description": "- added rabbitmq\n- modified db config\n- compacted log files" + }] + ] +} + +``` diff --git a/website/source/layouts/docs.erb b/website/source/layouts/docs.erb index 83897136e..ea395d2f9 100644 --- a/website/source/layouts/docs.erb +++ b/website/source/layouts/docs.erb @@ -61,6 +61,7 @@
  • docker-import
  • docker-push
  • Vagrant
  • +
  • Vagrant Cloud
  • vSphere