2017-03-03 03:56:17 -05:00
|
|
|
|
---
|
|
|
|
|
description: |
|
2017-05-25 21:20:20 -04:00
|
|
|
|
The `alicloud-ecs` Packer builder plugin provide the capability to build
|
|
|
|
|
customized images based on an existing base images.
|
2017-03-03 03:56:17 -05:00
|
|
|
|
layout: docs
|
|
|
|
|
page_title: Alicloud Image Builder
|
2017-08-20 09:55:49 -04:00
|
|
|
|
sidebar_current: 'docs-builders-alicloud-ecs'
|
2017-06-14 21:04:16 -04:00
|
|
|
|
---
|
2017-03-03 03:56:17 -05:00
|
|
|
|
|
|
|
|
|
# Alicloud Image Builder
|
|
|
|
|
|
|
|
|
|
Type: `alicloud-ecs`
|
|
|
|
|
|
2017-05-25 21:20:20 -04:00
|
|
|
|
The `alicloud-ecs` Packer builder plugin provide the capability to build
|
|
|
|
|
customized images based on an existing base images.
|
2017-03-03 03:56:17 -05:00
|
|
|
|
|
|
|
|
|
## Configuration Reference
|
|
|
|
|
|
2017-05-25 21:20:20 -04:00
|
|
|
|
The following configuration options are available for building Alicloud images.
|
2018-10-26 20:02:51 -04:00
|
|
|
|
In addition to the options listed here, a
|
|
|
|
|
[communicator](../templates/communicator.html) can be configured for this
|
2017-03-03 03:56:17 -05:00
|
|
|
|
builder.
|
|
|
|
|
|
|
|
|
|
### Required:
|
|
|
|
|
|
2018-10-26 20:02:51 -04:00
|
|
|
|
- `access_key` (string) - This is the Alicloud access key. It must be
|
|
|
|
|
provided, but it can also be sourced from the `ALICLOUD_ACCESS_KEY`
|
|
|
|
|
environment variable.
|
2017-03-03 03:56:17 -05:00
|
|
|
|
|
2018-10-26 20:02:51 -04:00
|
|
|
|
- `image_name` (string) - The name of the user-defined image, \[2, 128\]
|
|
|
|
|
English or Chinese characters. It must begin with an uppercase/lowercase
|
|
|
|
|
letter or a Chinese character, and may contain numbers, `_` or `-`. It
|
|
|
|
|
cannot begin with `http://` or `https://`.
|
2017-03-03 03:56:17 -05:00
|
|
|
|
|
2017-06-14 21:04:16 -04:00
|
|
|
|
- `instance_type` (string) - Type of the instance. For values, see [Instance
|
2018-10-26 20:02:51 -04:00
|
|
|
|
Type
|
|
|
|
|
Table](https://www.alibabacloud.com/help/doc-detail/25378.htm?spm=a3c0i.o25499en.a3.9.14a36ac8iYqKRA).
|
|
|
|
|
You can also obtain the latest instance type table by invoking the
|
|
|
|
|
[Querying Instance Type
|
|
|
|
|
Table](https://intl.aliyun.com/help/doc-detail/25620.htm?spm=a3c0i.o25499en.a3.6.Dr1bik)
|
2017-06-14 21:04:16 -04:00
|
|
|
|
interface.
|
2017-03-03 03:56:17 -05:00
|
|
|
|
|
2018-10-26 20:02:51 -04:00
|
|
|
|
- `region` (string) - This is the Alicloud region. It must be provided, but
|
|
|
|
|
it can also be sourced from the `ALICLOUD_REGION` environment variables.
|
2018-02-23 22:29:50 -05:00
|
|
|
|
|
2018-10-26 20:02:51 -04:00
|
|
|
|
- `secret_key` (string) - This is the Alicloud secret key. It must be
|
|
|
|
|
provided, but it can also be sourced from the `ALICLOUD_SECRET_KEY`
|
|
|
|
|
environment variable.
|
2017-03-03 03:56:17 -05:00
|
|
|
|
|
2018-10-26 20:02:51 -04:00
|
|
|
|
- `source_image` (string) - This is the base image id which you want to
|
|
|
|
|
create your customized images.
|
2017-03-03 03:56:17 -05:00
|
|
|
|
|
|
|
|
|
### Optional:
|
|
|
|
|
|
2018-10-26 20:02:51 -04:00
|
|
|
|
- `force_stop_instance` (boolean) - Whether to force shutdown upon device
|
|
|
|
|
restart. The default value is `false`.
|
2017-05-25 21:20:20 -04:00
|
|
|
|
|
2018-02-23 22:29:50 -05:00
|
|
|
|
If it is set to `false`, the system is shut down normally; if it is set to
|
|
|
|
|
`true`, the system is forced to shut down.
|
2017-05-25 21:20:20 -04:00
|
|
|
|
|
2018-10-26 20:02:51 -04:00
|
|
|
|
- `disable_stop_instance` (boolean) - If this option is set to `true`, Packer
|
|
|
|
|
will not stop the instance for you, and you need to make sure the instance
|
|
|
|
|
will be stopped in the final provisioner command. Otherwise, Packer will
|
|
|
|
|
timeout while waiting the instance to be stopped. This option is provided
|
|
|
|
|
for some specific scenarios that you want to stop the instance by yourself.
|
|
|
|
|
E.g., Sysprep a windows which may shutdown the instance within its command.
|
|
|
|
|
The default value is `false`.
|
2018-09-25 07:21:28 -04:00
|
|
|
|
|
2018-10-26 20:02:51 -04:00
|
|
|
|
- `image_copy_names` (array of string) - The name of the destination image,
|
|
|
|
|
\[2, 128\] English or Chinese characters. It must begin with an
|
|
|
|
|
uppercase/lowercase letter or a Chinese character, and may contain numbers,
|
|
|
|
|
`_` or `-`. It cannot begin with `http://` or `https://`.
|
2017-05-25 21:20:20 -04:00
|
|
|
|
|
2018-02-23 22:29:50 -05:00
|
|
|
|
- `image_copy_regions` (array of string) - Copy to the destination regionIds.
|
2017-05-25 21:20:20 -04:00
|
|
|
|
|
2018-02-23 22:29:50 -05:00
|
|
|
|
- `image_description` (string) - The description of the image, with a length
|
|
|
|
|
limit of 0 to 256 characters. Leaving it blank means null, which is the
|
|
|
|
|
default value. It cannot begin with `http://` or `https://`.
|
2018-10-31 10:22:29 -04:00
|
|
|
|
|
|
|
|
|
- `system_disk_mapping` (image disk mapping) - Image disk mapping for system
|
|
|
|
|
disk.
|
|
|
|
|
- `disk_category` (string) - Category of the system disk. Optional values
|
|
|
|
|
are:
|
2018-10-30 08:15:47 -04:00
|
|
|
|
- `cloud` - general cloud disk
|
|
|
|
|
- `cloud_efficiency` - efficiency cloud disk
|
|
|
|
|
- `cloud_ssd` - cloud SSD
|
2017-05-25 21:20:20 -04:00
|
|
|
|
|
2018-10-31 10:22:29 -04:00
|
|
|
|
For phased-out instance types and non-I/O optimized instances, the
|
|
|
|
|
default value is cloud. Otherwise, the default value is
|
|
|
|
|
cloud\_efficiency.
|
|
|
|
|
|
|
|
|
|
- `disk_description` (string) - The value of disk description is blank by
|
|
|
|
|
default. \[2, 256\] characters. The disk description will appear on the
|
|
|
|
|
console. It cannot begin with `http://` or `https://`.
|
|
|
|
|
|
|
|
|
|
- `disk_name` (string) - The value of disk name is blank by default. \[2,
|
|
|
|
|
128\] English or Chinese characters, must begin with an
|
|
|
|
|
uppercase/lowercase letter or Chinese character. Can contain numbers,
|
|
|
|
|
`.`, `_` and `-`. The disk name will appear on the console. It cannot
|
|
|
|
|
begin with `http://` or `https://`.
|
|
|
|
|
|
|
|
|
|
- `disk_size` (number) - Size of the system disk, measured in GiB. Value
|
|
|
|
|
range: \[20, 500\]. The specified value must be equal to or greater
|
|
|
|
|
than max{20, ImageSize}. Default value: max{40, ImageSize}.
|
2017-05-25 21:20:20 -04:00
|
|
|
|
|
2018-10-26 20:02:51 -04:00
|
|
|
|
- `image_disk_mappings` (array of image disk mappings) - Add one or more data
|
|
|
|
|
disks to the image.
|
2017-05-25 21:20:20 -04:00
|
|
|
|
|
2018-10-26 20:02:51 -04:00
|
|
|
|
- `disk_category` (string) - Category of the data disk. Optional values
|
|
|
|
|
are:
|
2018-10-18 19:09:49 -04:00
|
|
|
|
- `cloud` - general cloud disk
|
|
|
|
|
- `cloud_efficiency` - efficiency cloud disk
|
|
|
|
|
- `cloud_ssd` - cloud SSD
|
2017-05-25 21:20:20 -04:00
|
|
|
|
|
2018-02-22 21:51:43 -05:00
|
|
|
|
Default value: cloud.
|
2017-05-25 21:20:20 -04:00
|
|
|
|
|
2018-10-26 20:02:51 -04:00
|
|
|
|
- `disk_delete_with_instance` (boolean) - Whether or not the disk is
|
|
|
|
|
released along with the instance:
|
|
|
|
|
- True indicates that when the instance is released, this disk will
|
|
|
|
|
be released with it
|
|
|
|
|
- False indicates that when the instance is released, this disk will
|
|
|
|
|
be retained.
|
|
|
|
|
- `disk_description` (string) - The value of disk description is blank by
|
|
|
|
|
default. \[2, 256\] characters. The disk description will appear on the
|
|
|
|
|
console. It cannot begin with `http://` or `https://`.
|
|
|
|
|
|
|
|
|
|
- `disk_device` (string) - Device information of the related instance:
|
|
|
|
|
such as `/dev/xvdb` It is null unless the Status is In\_use.
|
|
|
|
|
|
|
|
|
|
- `disk_name` (string) - The value of disk name is blank by default. \[2,
|
|
|
|
|
128\] English or Chinese characters, must begin with an
|
|
|
|
|
uppercase/lowercase letter or Chinese character. Can contain numbers,
|
|
|
|
|
`.`, `_` and `-`. The disk name will appear on the console. It cannot
|
|
|
|
|
begin with `http://` or `https://`.
|
2018-02-23 22:29:50 -05:00
|
|
|
|
|
2018-10-30 08:15:47 -04:00
|
|
|
|
- `disk_size` (number) - Size of the data disk, in GB, values range:
|
2018-10-31 10:22:29 -04:00
|
|
|
|
- `cloud` - 5 \~ 2000
|
|
|
|
|
- `cloud_efficiency` - 20 \~ 2048
|
|
|
|
|
- `cloud_ssd` - 20 \~ 2048
|
2017-05-25 21:20:20 -04:00
|
|
|
|
|
2018-10-26 20:02:51 -04:00
|
|
|
|
The value should be equal to or greater than the size of the specific
|
|
|
|
|
SnapshotId.
|
2017-03-03 03:56:17 -05:00
|
|
|
|
|
2018-10-26 20:02:51 -04:00
|
|
|
|
- `disk_snapshot_id` (string) - Snapshots are used to create the data
|
|
|
|
|
disk After this parameter is specified, Size is ignored. The actual
|
|
|
|
|
size of the created disk is the size of the specified snapshot.
|
2017-03-03 03:56:17 -05:00
|
|
|
|
|
2018-10-26 20:02:51 -04:00
|
|
|
|
Snapshots from on or before July 15, 2013 cannot be used to create a
|
|
|
|
|
disk.
|
2018-11-19 02:25:12 -05:00
|
|
|
|
|
|
|
|
|
- `image_ignore_data_disks`(boolean) - If this value is true, the image created
|
|
|
|
|
will not include any snapshot of data disks. This option would be useful for
|
|
|
|
|
any circumstance that default data disks with instance types are not concerned.
|
|
|
|
|
The default value is false.
|
2017-03-03 03:56:17 -05:00
|
|
|
|
|
2018-10-26 20:02:51 -04:00
|
|
|
|
- `image_force_delete` (boolean) - If this value is true, when the target
|
|
|
|
|
image name is duplicated with an existing image, it will delete the
|
|
|
|
|
existing image and then create the target image, otherwise, the creation
|
|
|
|
|
will fail. The default value is false.
|
2017-03-03 03:56:17 -05:00
|
|
|
|
|
2018-10-26 20:02:51 -04:00
|
|
|
|
- `image_force_delete_snapshots` (boolean) - If this value is true, when
|
|
|
|
|
delete the duplicated existing image, the source snapshot of this image
|
|
|
|
|
will be delete either.
|
2017-03-03 03:56:17 -05:00
|
|
|
|
|
2018-02-23 22:29:50 -05:00
|
|
|
|
- `image_share_account` (array of string) - The IDs of to-be-added Aliyun
|
2018-10-26 20:02:51 -04:00
|
|
|
|
accounts to which the image is shared. The number of accounts is 1 to 10.
|
|
|
|
|
If number of accounts is greater than 10, this parameter is ignored.
|
2017-03-03 03:56:17 -05:00
|
|
|
|
|
2018-10-26 20:02:51 -04:00
|
|
|
|
- `image_version` (string) - The version number of the image, with a length
|
|
|
|
|
limit of 1 to 40 English characters.
|
2017-03-03 03:56:17 -05:00
|
|
|
|
|
2018-10-26 20:02:51 -04:00
|
|
|
|
- `instance_name` (string) - Display name of the instance, which is a string
|
|
|
|
|
of 2 to 128 Chinese or English characters. It must begin with an
|
2017-06-14 21:04:16 -04:00
|
|
|
|
uppercase/lowercase letter or a Chinese character and can contain numerals,
|
|
|
|
|
`.`, `_`, or `-`. The instance name is displayed on the Alibaba Cloud
|
2018-10-26 20:02:51 -04:00
|
|
|
|
console. If this parameter is not specified, the default value is
|
|
|
|
|
InstanceId of the instance. It cannot begin with `http://` or `https://`.
|
2017-03-03 03:56:17 -05:00
|
|
|
|
|
2017-06-14 21:04:16 -04:00
|
|
|
|
- `internet_charge_type` (string) - Internet charge type, which can be
|
|
|
|
|
`PayByTraffic` or `PayByBandwidth`. Optional values:
|
2018-10-18 19:09:49 -04:00
|
|
|
|
- `PayByBandwidth`
|
|
|
|
|
- `PayByTraffic`
|
2017-03-03 03:56:17 -05:00
|
|
|
|
|
2017-05-25 21:20:20 -04:00
|
|
|
|
If this parameter is not specified, the default value is `PayByBandwidth`.
|
2018-10-26 20:02:51 -04:00
|
|
|
|
For the regions out of China, currently only support `PayByTraffic`, you
|
|
|
|
|
must set it manfully.
|
2017-10-04 09:04:00 -04:00
|
|
|
|
|
2018-10-26 20:02:51 -04:00
|
|
|
|
- `internet_max_bandwidth_out` (string) - Maximum outgoing bandwidth to the
|
|
|
|
|
public network, measured in Mbps (Mega bits per second).
|
2017-03-03 03:56:17 -05:00
|
|
|
|
|
2017-05-25 21:20:20 -04:00
|
|
|
|
Value range:
|
2018-10-26 20:02:51 -04:00
|
|
|
|
- `PayByBandwidth`: \[0, 100\]. If this parameter is not specified, API
|
|
|
|
|
automatically sets it to 0 Mbps.
|
|
|
|
|
- `PayByTraffic`: \[1, 100\]. If this parameter is not specified, an
|
|
|
|
|
error is returned.
|
2017-03-03 03:56:17 -05:00
|
|
|
|
|
2018-02-23 22:29:50 -05:00
|
|
|
|
- `io_optimized` (boolean) - Whether an ECS instance is I/O optimized or not.
|
|
|
|
|
The default value is `false`.
|
|
|
|
|
|
|
|
|
|
- `security_group_id` (string) - ID of the security group to which a newly
|
|
|
|
|
created instance belongs. Mutual access is allowed between instances in one
|
2018-10-26 20:02:51 -04:00
|
|
|
|
security group. If not specified, the newly created instance will be added
|
|
|
|
|
to the default security group. If the default group doesn’t exist, or the
|
|
|
|
|
number of instances in it has reached the maximum limit, a new security
|
|
|
|
|
group will be created automatically.
|
2018-02-23 22:29:50 -05:00
|
|
|
|
|
2018-10-26 20:02:51 -04:00
|
|
|
|
- `security_group_name` (string) - The security group name. The default value
|
|
|
|
|
is blank. \[2, 128\] English or Chinese characters, must begin with an
|
2018-02-23 22:29:50 -05:00
|
|
|
|
uppercase/lowercase letter or Chinese character. Can contain numbers, `.`,
|
|
|
|
|
`_` or `-`. It cannot begin with `http://` or `https://`.
|
2017-03-03 03:56:17 -05:00
|
|
|
|
|
2018-10-26 20:02:51 -04:00
|
|
|
|
- `security_token` (string) - STS access token, can be set through template
|
|
|
|
|
or by exporting as environment variable such as
|
|
|
|
|
`export SecurityToken=value`.
|
2017-11-27 21:22:16 -05:00
|
|
|
|
|
2018-10-26 20:02:51 -04:00
|
|
|
|
- `skip_region_validation` (boolean) - The region validation can be skipped
|
|
|
|
|
if this value is true, the default value is false.
|
2018-02-23 22:29:50 -05:00
|
|
|
|
|
|
|
|
|
- `temporary_key_pair_name` (string) - The name of the temporary key pair to
|
2018-10-26 20:02:51 -04:00
|
|
|
|
generate. By default, Packer generates a name that looks like
|
|
|
|
|
`packer_<UUID>`, where `<UUID>` is a 36 character unique identifier.
|
2018-02-23 22:29:50 -05:00
|
|
|
|
|
2018-10-26 20:02:51 -04:00
|
|
|
|
- `TLSHandshakeTimeout` (int) - When happen "net/http: TLS handshake timeout"
|
|
|
|
|
problem, set this environment variable to a bigger such as
|
|
|
|
|
`export TLSHandshakeTimeout=30`, it will set the TLS handshake timeout
|
|
|
|
|
value to 30s.
|
2017-11-27 21:22:16 -05:00
|
|
|
|
|
2018-10-26 04:12:35 -04:00
|
|
|
|
- `user_data` (string) - User data to apply when launching the instance. Note
|
|
|
|
|
that you need to be careful about escaping characters due to the templates
|
|
|
|
|
being JSON. It is often more convenient to use `user_data_file`, instead.
|
2018-10-26 04:23:50 -04:00
|
|
|
|
Packer will not automatically wait for a user script to finish before
|
|
|
|
|
shutting down the instance this must be handled in a provisioner.
|
2018-02-23 22:29:50 -05:00
|
|
|
|
|
2018-10-26 04:12:35 -04:00
|
|
|
|
- `user_data_file` (string) - Path to a file that will be used for the user
|
|
|
|
|
data when launching the instance.
|
2018-02-23 22:29:50 -05:00
|
|
|
|
|
2018-10-26 20:02:51 -04:00
|
|
|
|
- `vpc_cidr_block` (string) - Value options: `192.168.0.0/16` and
|
|
|
|
|
`172.16.0.0/16`. When not specified, the default value is `172.16.0.0/16`.
|
2018-02-23 22:29:50 -05:00
|
|
|
|
|
|
|
|
|
- `vpc_id` (string) - VPC ID allocated by the system.
|
|
|
|
|
|
|
|
|
|
- `vpc_name` (string) - The VPC name. The default value is blank. \[2, 128\]
|
2018-10-26 20:02:51 -04:00
|
|
|
|
English or Chinese characters, must begin with an uppercase/lowercase
|
|
|
|
|
letter or Chinese character. Can contain numbers, `_` and `-`. The disk
|
|
|
|
|
description will appear on the console. Cannot begin with `http://` or
|
|
|
|
|
`https://`.
|
2018-02-23 22:29:50 -05:00
|
|
|
|
|
|
|
|
|
- `vswitch_id` (string) - The ID of the VSwitch to be used.
|
|
|
|
|
|
|
|
|
|
- `zone_id` (string) - ID of the zone to which the disk belongs.
|
|
|
|
|
|
2018-10-26 20:02:51 -04:00
|
|
|
|
- `ssh_private_ip` (boolean) - If this value is true, packer will connect to
|
|
|
|
|
the ECS created through private ip instead of allocating a public ip or an
|
|
|
|
|
EIP. The default value is false.
|
2018-10-26 04:09:20 -04:00
|
|
|
|
|
2018-10-26 20:02:51 -04:00
|
|
|
|
- `tags` (object of key/value strings) - Tags applied to the destination
|
|
|
|
|
image.
|
2018-09-16 06:16:13 -04:00
|
|
|
|
|
2017-03-03 03:56:17 -05:00
|
|
|
|
## Basic Example
|
|
|
|
|
|
|
|
|
|
Here is a basic example for Alicloud.
|
|
|
|
|
|
2017-06-14 21:04:16 -04:00
|
|
|
|
``` json
|
2017-03-03 03:56:17 -05:00
|
|
|
|
{
|
|
|
|
|
"variables": {
|
|
|
|
|
"access_key": "{{env `ALICLOUD_ACCESS_KEY`}}",
|
|
|
|
|
"secret_key": "{{env `ALICLOUD_SECRET_KEY`}}"
|
|
|
|
|
},
|
|
|
|
|
"builders": [{
|
|
|
|
|
"type":"alicloud-ecs",
|
|
|
|
|
"access_key":"{{user `access_key`}}",
|
|
|
|
|
"secret_key":"{{user `secret_key`}}",
|
|
|
|
|
"region":"cn-beijing",
|
|
|
|
|
"image_name":"packer_test2",
|
2018-09-26 05:43:49 -04:00
|
|
|
|
"source_image":"centos_7_04_64_20G_alibase_201701015.vhd",
|
2017-03-03 03:56:17 -05:00
|
|
|
|
"ssh_username":"root",
|
|
|
|
|
"instance_type":"ecs.n1.tiny",
|
|
|
|
|
"io_optimized":"true",
|
|
|
|
|
"image_force_delete":"true"
|
|
|
|
|
}],
|
|
|
|
|
"provisioners": [{
|
|
|
|
|
"type": "shell",
|
|
|
|
|
"inline": [
|
|
|
|
|
"sleep 30",
|
|
|
|
|
"yum install redis.x86_64 -y"
|
|
|
|
|
]
|
|
|
|
|
}]
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
2018-10-31 10:22:29 -04:00
|
|
|
|
\~> Note: Images can become deprecated after a while; run
|
2018-09-26 05:43:49 -04:00
|
|
|
|
`aliyun ecs DescribeImages` to find one that exists.
|
|
|
|
|
|
2017-05-25 21:20:20 -04:00
|
|
|
|
See the
|
|
|
|
|
[examples/alicloud](https://github.com/hashicorp/packer/tree/master/examples/alicloud)
|
|
|
|
|
folder in the packer project for more examples.
|