2015-02-03 19:20:32 -05:00
|
|
|
---
|
2015-07-22 22:31:00 -04:00
|
|
|
description: |
|
|
|
|
The Atlas post-processor for Packer receives an artifact from a Packer build and
|
|
|
|
uploads it to Atlas. Atlas hosts and serves artifacts, allowing you to version
|
|
|
|
and distribute them in a simple way.
|
|
|
|
layout: docs
|
|
|
|
page_title: 'Atlas Post-Processor'
|
|
|
|
...
|
2015-02-03 19:20:32 -05:00
|
|
|
|
|
|
|
# Atlas Post-Processor
|
|
|
|
|
|
|
|
Type: `atlas`
|
|
|
|
|
2015-07-22 22:31:00 -04:00
|
|
|
The Atlas post-processor for Packer receives an artifact from a Packer build and
|
|
|
|
uploads it to Atlas. [Atlas](https://atlas.hashicorp.com) hosts and serves
|
|
|
|
artifacts, allowing you to version and distribute them in a simple way.
|
2015-02-03 19:20:32 -05:00
|
|
|
|
|
|
|
## Workflow
|
|
|
|
|
2015-05-29 14:34:22 -04:00
|
|
|
To take full advantage of Packer and Atlas, it's important to understand the
|
2015-07-22 22:31:00 -04:00
|
|
|
workflow for creating artifacts with Packer and storing them in Atlas using this
|
|
|
|
post-processor. The goal of the Atlas post-processor is to streamline the
|
|
|
|
distribution of public or private artifacts by hosting them in a central
|
|
|
|
location in Atlas.
|
2015-02-03 19:20:32 -05:00
|
|
|
|
|
|
|
Here is an example workflow:
|
|
|
|
|
2015-07-22 22:31:00 -04:00
|
|
|
1. Packer builds an AMI with the [Amazon AMI
|
|
|
|
builder](/docs/builders/amazon.html)
|
|
|
|
2. The `atlas` post-processor takes the resulting AMI and uploads it to Atlas.
|
|
|
|
The `atlas` post-processor is configured with the name of the AMI, for example
|
|
|
|
`hashicorp/foobar`, to create the artifact in Atlas or update the version if
|
|
|
|
the artifact already exists
|
|
|
|
3. The new version is ready and available to be used in deployments with a tool
|
|
|
|
like [Terraform](https://terraform.io)
|
2015-02-03 19:20:32 -05:00
|
|
|
|
|
|
|
## Configuration
|
|
|
|
|
2015-05-29 14:34:22 -04:00
|
|
|
The configuration allows you to specify and access the artifact in Atlas.
|
2015-02-03 19:20:32 -05:00
|
|
|
|
|
|
|
### Required:
|
|
|
|
|
2015-07-22 22:31:00 -04:00
|
|
|
- `token` (string) - Your access token for the Atlas API. This can be generated
|
|
|
|
on your [tokens page](https://atlas.hashicorp.com/settings/tokens).
|
|
|
|
Alternatively you can export your Atlas token as an environmental variable and
|
|
|
|
remove it from the configuration.
|
2015-02-03 19:20:32 -05:00
|
|
|
|
2015-07-22 22:31:00 -04:00
|
|
|
- `artifact` (string) - The shorthand tag for your artifact that maps to Atlas,
|
|
|
|
i.e `hashicorp/foobar` for `atlas.hashicorp.com/hashicorp/foobar`. You must
|
|
|
|
have access to the organization, hashicorp in this example, in order to add an
|
|
|
|
artifact to the organization in Atlas.
|
2015-02-03 19:20:32 -05:00
|
|
|
|
2015-07-22 22:31:00 -04:00
|
|
|
- `artifact_type` (string) - For uploading AMIs to Atlas, `artifact_type` will
|
|
|
|
always be `amazon.ami`. This field must be defined because Atlas can host
|
|
|
|
other artifact types, such as Vagrant boxes.
|
2015-02-03 19:20:32 -05:00
|
|
|
|
2015-07-22 22:31:00 -04:00
|
|
|
-> **Note:** If you want to upload Vagrant boxes to Atlas, use the [Atlas
|
|
|
|
post-processor](/docs/post-processors/atlas.html).
|
2015-02-03 20:07:24 -05:00
|
|
|
|
2015-02-03 19:20:32 -05:00
|
|
|
### Optional:
|
|
|
|
|
2015-07-22 22:31:00 -04:00
|
|
|
- `atlas_url` (string) - Override the base URL for Atlas. This is useful if
|
|
|
|
you're using Atlas Enterprise in your own network. Defaults to
|
|
|
|
`https://atlas.hashicorp.com/api/v1`.
|
2015-02-03 19:20:32 -05:00
|
|
|
|
2015-07-22 22:31:00 -04:00
|
|
|
- `metadata` (map) - Send metadata about the artifact. If the artifact type is
|
|
|
|
"vagrant.box", you must specify a "provider" metadata about what provider
|
|
|
|
to use.
|
2015-02-03 19:20:32 -05:00
|
|
|
|
|
|
|
### Example Configuration
|
|
|
|
|
2015-07-22 22:31:00 -04:00
|
|
|
``` {.javascript}
|
2015-02-03 19:20:32 -05:00
|
|
|
{
|
|
|
|
"variables": {
|
|
|
|
"aws_access_key": "ACCESS_KEY_HERE",
|
|
|
|
"aws_secret_key": "SECRET_KEY_HERE",
|
|
|
|
"atlas_token": "ATLAS_TOKEN_HERE"
|
|
|
|
},
|
|
|
|
"builders": [{
|
|
|
|
"type": "amazon-ebs",
|
|
|
|
"access_key": "{{user `aws_access_key`}}",
|
|
|
|
"secret_key": "{{user `aws_secret_key`}}",
|
|
|
|
"region": "us-east-1",
|
|
|
|
"source_ami": "ami-de0d9eb7",
|
|
|
|
"instance_type": "t1.micro",
|
|
|
|
"ssh_username": "ubuntu",
|
|
|
|
"ami_name": "atlas-example {{timestamp}}"
|
|
|
|
}],
|
|
|
|
"provisioners": [
|
|
|
|
{
|
|
|
|
"type": "shell",
|
|
|
|
"inline": [
|
|
|
|
"sleep 30",
|
|
|
|
"sudo apt-get update",
|
|
|
|
"sudo apt-get install apache2 -y"
|
|
|
|
]
|
|
|
|
}],
|
|
|
|
"post-processors": [
|
|
|
|
{
|
|
|
|
"type": "atlas",
|
|
|
|
"token": "{{user `atlas_token`}}",
|
|
|
|
"artifact": "hashicorp/foobar",
|
2015-06-26 13:22:15 -04:00
|
|
|
"artifact_type": "amazon.ami",
|
2015-02-03 19:20:32 -05:00
|
|
|
"metadata": {
|
|
|
|
"created_at": "{{timestamp}}"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
```
|