138 lines
3.5 KiB
Plaintext
138 lines
3.5 KiB
Plaintext
---
|
|
description: |
|
|
The `alicloud-ecs` Packer builder plugin provide the capability to build
|
|
customized images based on an existing base images.
|
|
layout: docs
|
|
page_title: Alicloud Image Builder
|
|
sidebar_title: Alicloud ECS
|
|
---
|
|
|
|
# Alicloud Image Builder
|
|
|
|
Type: `alicloud-ecs`
|
|
|
|
The `alicloud-ecs` Packer builder plugin provide the capability to build
|
|
customized images based on an existing base images.
|
|
|
|
## Configuration Reference
|
|
|
|
The following configuration options are available for building Alicloud images.
|
|
In addition to the options listed here, a
|
|
[communicator](/docs/templates/communicator) can be configured for this
|
|
builder.
|
|
|
|
### Required:
|
|
|
|
@include 'builder/alicloud/ecs/AlicloudAccessConfig-required.mdx'
|
|
|
|
@include 'builder/alicloud/ecs/RunConfig-required.mdx'
|
|
|
|
@include 'builder/alicloud/ecs/AlicloudImageConfig-required.mdx'
|
|
|
|
### Optional:
|
|
|
|
@include 'builder/alicloud/ecs/AlicloudAccessConfig-not-required.mdx'
|
|
|
|
@include 'builder/alicloud/ecs/AlicloudDiskDevice-not-required.mdx'
|
|
|
|
@include 'builder/alicloud/ecs/AlicloudDiskDevices-not-required.mdx'
|
|
|
|
@include 'builder/alicloud/ecs/RunConfig-not-required.mdx'
|
|
|
|
@include 'builder/alicloud/ecs/AlicloudImageConfig-not-required.mdx'
|
|
|
|
- `temporary_key_pair_name` (string) - The name of the temporary key pair to
|
|
generate. By default, Packer generates a name that looks like
|
|
`packer_<UUID>`, where <UUID> is a 36 character unique identifier.
|
|
|
|
## Basic Example
|
|
|
|
Here is a basic example for Alicloud.
|
|
|
|
<Tabs>
|
|
<Tab heading="JSON">
|
|
|
|
```json
|
|
{
|
|
"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",
|
|
"source_image": "centos_7_04_64_20G_alibase_201701015.vhd",
|
|
"ssh_username": "root",
|
|
"instance_type": "ecs.n1.tiny",
|
|
"io_optimized": "true",
|
|
"internet_charge_type": "PayByTraffic",
|
|
"image_force_delete": "true"
|
|
}
|
|
],
|
|
"provisioners": [
|
|
{
|
|
"type": "shell",
|
|
"inline": ["sleep 30", "yum install redis.x86_64 -y"]
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
</Tab>
|
|
<Tab heading="HCL2">
|
|
|
|
```hcl
|
|
variable "access_key" {
|
|
type = string
|
|
}
|
|
|
|
variable "secret_key" {
|
|
type = string
|
|
}
|
|
|
|
source "alicloud-ecs" "basic-example" {
|
|
access_key = var.access_key
|
|
secret_key = var.secret_key
|
|
region = "cn-beijing"
|
|
image_name = "packer_test2"
|
|
source_image = "centos_7_04_64_20G_alibase_201701015.vhd"
|
|
ssh_username = "root"
|
|
instance_type = "ecs.n1.tiny"
|
|
io_optimized = true
|
|
internet_charge_type = "PayByTraffic"
|
|
image_force_delete = true
|
|
}
|
|
|
|
build {
|
|
sources = ["sources.alicloud-ecs.basic-example"]
|
|
|
|
provisioner "shell" {
|
|
inline = [
|
|
"sleep 30", "yum install redis.x86_64 -y",
|
|
]
|
|
}
|
|
}
|
|
```
|
|
|
|
</Tab>
|
|
</Tabs>
|
|
|
|
~> Note: Images can become deprecated after a while; run
|
|
`aliyun ecs DescribeImages` to find one that exists.
|
|
|
|
~> Note: Since WinRM is closed by default in the system image. If you are
|
|
planning to use Windows as the base image, you need enable it by userdata in
|
|
order to connect to the instance, check
|
|
[alicloud_windows.json](https://github.com/hashicorp/packer/tree/master/examples/alicloud/basic/alicloud_windows.json)
|
|
and
|
|
[winrm_enable_userdata.ps1](https://github.com/hashicorp/packer/tree/master/examples/alicloud/basic/winrm_enable_userdata.ps1)
|
|
for details.
|
|
|
|
See the
|
|
[examples/alicloud](https://github.com/hashicorp/packer/tree/master/examples/alicloud)
|
|
folder in the packer project for more examples.
|