packer-cn/website/source/docs/builders/digitalocean.html.md

107 lines
4.1 KiB
Markdown
Raw Normal View History

2013-06-18 19:51:46 -04:00
---
2017-06-14 21:04:16 -04:00
description: |
The digitalocean Packer builder is able to create new images for use with
DigitalOcean. The builder takes a source image, runs any provisioning
necessary on the image after launching it, then snapshots it into a reusable
image. This reusable image can then be used as the foundation of new servers
that are launched within DigitalOcean.
2015-07-22 22:31:00 -04:00
layout: docs
2017-06-14 21:04:16 -04:00
page_title: 'DigitalOcean - Builders'
sidebar_current: 'docs-builders-digitalocean'
---
2013-06-18 19:51:46 -04:00
# DigitalOcean Builder
Type: `digitalocean`
The `digitalocean` Packer builder is able to create new images for use with
2016-01-14 15:31:19 -05:00
[DigitalOcean](https://www.digitalocean.com). The builder takes a source image,
2015-07-22 22:31:00 -04:00
runs any provisioning necessary on the image after launching it, then snapshots
it into a reusable image. This reusable image can then be used as the foundation
of new servers that are launched within DigitalOcean.
2013-06-18 19:51:46 -04:00
2015-07-22 22:31:00 -04:00
The builder does *not* manage images. Once it creates an image, it is up to you
to use it or delete it.
2013-06-18 19:51:46 -04:00
## Configuration Reference
There are many configuration options available for the builder. They are
segmented below into two categories: required and optional parameters. Within
each category, the available configuration keys are alphabetized.
In addition to the options listed here, a
2015-07-22 22:31:00 -04:00
[communicator](/docs/templates/communicator.html) can be configured for this
builder.
2015-06-10 17:16:40 -04:00
### Required:
2013-06-18 19:51:46 -04:00
2017-06-14 21:04:16 -04:00
- `api_token` (string) - The client TOKEN to use to access your account. It
2015-07-22 23:25:58 -04:00
can also be specified via environment variable `DIGITALOCEAN_API_TOKEN`,
if set.
2017-06-14 21:04:16 -04:00
- `image` (string) - The name (or slug) of the base image to use. This is the
2015-07-22 23:25:58 -04:00
image that will be used to launch a new droplet and provision it. See
2017-06-14 21:04:16 -04:00
<https://developers.digitalocean.com/documentation/v2/#list-all-images> for
2017-01-11 14:43:54 -05:00
details on how to get a list of the accepted image names/slugs.
2017-06-14 21:04:16 -04:00
- `region` (string) - The name (or slug) of the region to launch the
2015-07-22 23:25:58 -04:00
droplet in. Consequently, this is the region where the snapshot will
be available. See
2017-06-14 21:04:16 -04:00
<https://developers.digitalocean.com/documentation/v2/#list-all-regions> for
2015-07-22 23:25:58 -04:00
the accepted region names/slugs.
2013-06-18 19:51:46 -04:00
2017-06-14 21:04:16 -04:00
- `size` (string) - The name (or slug) of the droplet size to use. See
<https://developers.digitalocean.com/documentation/v2/#list-all-sizes> for
2015-07-22 23:25:58 -04:00
the accepted size names/slugs.
2013-06-18 19:51:46 -04:00
### Optional:
2017-06-14 21:04:16 -04:00
- `api_url` (string) - Non standard api endpoint URL. Set this if you are
using a DigitalOcean API compatible service. It can also be specified via
environment variable `DIGITALOCEAN_API_URL`.
2017-06-14 21:04:16 -04:00
- `droplet_name` (string) - The name assigned to the droplet. DigitalOcean
2015-07-22 23:25:58 -04:00
sets the hostname of the machine to this value.
2017-06-14 21:04:16 -04:00
- `private_networking` (boolean) - Set to `true` to enable private networking
2015-07-22 23:25:58 -04:00
for the droplet being created. This defaults to `false`, or not enabled.
2017-06-14 21:04:16 -04:00
- `monitoring` (boolean) - Set to `true` to enable monitoring
2017-04-09 11:25:54 -04:00
for the droplet being created. This defaults to `false`, or not enabled.
- `ipv6` (boolean) - Set to `true` to enable ipv6
for the droplet being created. This defaults to `false`, or not enabled.
2017-06-14 21:04:16 -04:00
- `snapshot_name` (string) - The name of the resulting snapshot that will
2015-07-22 23:25:58 -04:00
appear in your account. This must be unique. To help make this unique, use a
function like `timestamp` (see [configuration
2017-03-28 18:28:34 -04:00
templates](/docs/templates/engine.html) for more info)
2013-06-18 19:51:46 -04:00
2017-06-14 21:04:16 -04:00
- `snapshot_regions` (array of strings) - The regions of the resulting snapshot that will
2017-05-16 12:42:13 -04:00
appear in your account.
2017-06-14 21:04:16 -04:00
- `state_timeout` (string) - The time to wait, as a duration string, for a
2015-07-22 23:25:58 -04:00
droplet to enter a desired state (such as "active") before timing out. The
default state timeout is "6m".
2017-06-14 21:04:16 -04:00
- `user_data` (string) - User data to launch with the Droplet.
2017-06-14 21:04:16 -04:00
- `user_data_file` (string) - Path to a file that will be used for the user
data when launching the Droplet.
2013-06-18 19:51:46 -04:00
## Basic Example
2015-07-22 22:31:00 -04:00
Here is a basic example. It is completely valid as soon as you enter your own
access tokens:
2013-06-18 19:51:46 -04:00
2017-06-14 21:04:16 -04:00
``` json
2013-06-18 19:51:46 -04:00
{
"type": "digitalocean",
"api_token": "YOUR API KEY",
2017-03-06 16:08:34 -05:00
"image": "ubuntu-14-04-x64",
"region": "nyc3",
"size": "512mb",
"ssh_username": "root"
2013-06-18 19:51:46 -04:00
}
```