packer-cn/website/source/docs/builders/openstack.html.markdown

109 lines
3.9 KiB
Markdown
Raw Normal View History

2013-08-27 01:02:03 -04:00
---
layout: "docs"
---
# OpenStack Builder
Type: `openstack`
The `openstack` builder is able to create new images for use with
[OpenStack](http://www.openstack.org). The builder takes a source
image, runs any provisioning necessary on the image after launching it,
then creates a new reusable image. This reusable image can then be
used as the foundation of new servers that are launched within OpenStack.
The builder will create temporary keypairs that provide temporary access to
the server while the image is being created. This simplifies configuration
quite a bit.
The builder does _not_ manage images. Once it creates an image, it is up to
you to use it or delete it.
## 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.
Required:
* `flavor` (string) - The ID or full URL for the desired flavor for the
server to be created.
* `image_name` (string) - The name of the resulting image.
* `password` (string) - The password used to connect to the OpenStack service.
If not specified, Packer will attempt to read this from the
2014-04-22 00:37:20 -04:00
`SDK_PASSWORD` or `OS_PASSWORD` environment variable.
2013-08-27 01:02:03 -04:00
* `provider` (string) - The provider used to connect to the OpenStack service.
If not specified, Packer will attempt to read this from the
2014-01-04 16:24:14 -05:00
`SDK_PROVIDER` environment variable. For Rackspace this should be `rackspace-us`
or `rackspace-uk`.
2013-08-27 01:02:03 -04:00
* `region` (string) - The name of the region, such as "DFW", in which
2014-04-22 00:37:20 -04:00
to launch the server to create the AMI. If not specified, Packer will
attempt to read this from the `SDK_REGION` or `OS_REGION_NAME` environmental
variables.
2013-08-27 01:02:03 -04:00
* `source_image` (string) - The ID or full URL to the base image to use.
This is the image that will be used to launch a new server and provision it.
* `username` (string) - The username used to connect to the OpenStack service.
If not specified, Packer will attempt to read this from the
2014-04-22 00:37:20 -04:00
`SDK_USERNAME` or `OS_USERNAME` environment variable.
2013-08-27 01:02:03 -04:00
Optional:
2014-04-22 00:38:09 -04:00
* `api_key` (string) - The API key used to access OpenStack. Some OpenStack
installations require this. If not specified, Packer will attempt to
read this from the `SDK_API_KEY` environmental variable.
2013-09-02 20:34:37 -04:00
* `project` (string) - The project name to boot the instance into. Some
2014-04-22 00:37:20 -04:00
OpenStack installations require this. If not specified, Packer will attempt
to read this from the `SDK_PROJECT` or `OS_TENANT_NAME` environmental
variables.
* `provider` (string) - A name of a provider that has a slightly
different API model. Currently supported values are "openstack" (default),
and "rackspace". If not specified, Packer will attempt to read this from
the `SDK_PROVIDER` or `OS_AUTH_URL` environmental variables.
2013-09-02 20:34:37 -04:00
2013-08-27 01:02:03 -04:00
* `ssh_port` (int) - The port that SSH will be available on. Defaults to port
22.
* `ssh_timeout` (string) - The time to wait for SSH to become available
before timing out. The format of this value is a duration such as "5s"
or "1m". The default SSH timeout is "5m".
2013-08-27 01:02:03 -04:00
* `ssh_username` (string) - The username to use in order to communicate
2013-08-29 22:21:40 -04:00
over SSH to the running server. The default is "root".
2013-08-27 01:02:03 -04:00
## Basic Example
Here is a basic example. This is a working example to build a
Ubuntu 12.04 LTS (Precise Pangolin) on Rackspace OpenStack cloud offering.
<pre class="prettyprint">
{
"type": "openstack",
"username": "",
"password": "",
2014-01-04 16:24:14 -05:00
"provider": "rackspace-us",
"region": "DFW",
2013-08-27 01:02:03 -04:00
"ssh_username": "root",
"image_name": "Test image",
"source_image": "23b564c9-c3e6-49f9-bc68-86c7a9ab5018",
"flavor": "2"
}
</pre>
## Troubleshooting
*I get the error "Missing or incorrect provider"*
* Verify your "username", "password" and "provider" settings.
*I get the error "Missing endpoint, or insufficient privileges to access endpoint"*
* Verify your "region" setting.