--- description: | The `alicloud-ecs` Packer builder plugin provide the capability to build customized images based on an existing base images. page_title: Alicloud Image Builder sidebar_title: Alicloud ECS --- # Alicloud Image Builder Type: `alicloud-ecs` Artifact BuilderId: `alibaba.alicloud` 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/legacy_json_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/AlicloudDiskDevices-not-required.mdx' @include 'builder/alicloud/ecs/RunConfig-not-required.mdx' @include 'builder/alicloud/ecs/AlicloudImageConfig-not-required.mdx' @include 'packer-plugin-sdk/communicator/SSHTemporaryKeyPair-not-required.mdx' @include 'packer-plugin-sdk/communicator/SSH-Key-Pair-Name-not-required.mdx' @include 'packer-plugin-sdk/communicator/SSH-Private-Key-File-not-required.mdx' @include 'packer-plugin-sdk/communicator/SSH-Agent-Auth-not-required.mdx' # Disk Devices Configuration: @include 'builder/alicloud/ecs/AlicloudDiskDevice-not-required.mdx' ## Basic Example Here is a basic example for Alicloud. ```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"] } ] } ``` ```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", ] } } ``` ~> 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/builder/alicloud/examples/basic/alicloud_windows.json) and [winrm_enable_userdata.ps1](https://github.com/hashicorp/packer/tree/master/builder/alicloud/examples/basic/winrm_enable_userdata.ps1) for details. See the [examples/alicloud](https://github.com/hashicorp/packer/tree/master/builder/alicloud/examples) folder in the packer project for more examples.