--- description: | The `tencentcloud-cvm` Packer builder plugin provide the capability to build customized images based on an existing base images. layout: docs page_title: 'Tencentcloud Image Builder' sidebar_current: 'docs-builders-tencentcloud-cvm' --- # Tencentcloud Image Builder Type: `tencentcloud-cvm` The `tencentcloud-cvm` 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 Tencentcloud images. In addition to the options listed here, a [communicator](/docs/templates/communicator.html) can be configured for this builder. ### Required: - `secret_id` (string) - Tencentcloud secret id. You should set it directly, or set the `TENCENTCLOUD_ACCESS_KEY` environment variable. - `secret_key` (string) - Tencentcloud secret key. You should set it directly, or set the `TENCENTCLOUD_SECRET_KEY` environment variable. - `region` (string) - The region where your cvm will be launch. You should reference [Region and Zone](https://cloud.tencent.com/document/product/213/6091) for parameter taking. - `zone` (string) - The zone where your cvm will be launch. You should reference [Region and Zone](https://cloud.tencent.com/document/product/213/6091) for parameter taking. - `instance_type` (string) - The instance type your cvm will be launched by. You should reference [Instace Type](https://cloud.tencent.com/document/product/213/11518) for parameter taking. - `source_image_id` (string) - The base image id of Image you want to create your customized image from. - `image_name` (string) - The name you want to create your customize image, it should be composed of no more than 20 characters, of letters, numbers or minus sign. ### Optional: - `force_poweroff` (boolean) - Whether to force power off cvm when create image. Default value is `false`. Your cvm will try to shutdown normally; if shutdown failed and `force_poweroff` set, your cvm will be powered off, otherwise task will fail. - `image_description` (string) - Image description. - `reboot` (boolean) - Whether shutdown cvm to create Image. Default value is `false`. If `reboot` is not set and cvm is running, create image task will fail. - `sysprep` (boolean) - Whether enable Sysprep during creating windows image. - `image_copy_regions` (array of strings) - regions that will be copied to after your image created. - `image_share_accounts` (array of strings) - accounts that will be shared to after your image created. - `skip_region_validation` (boolean) - Do not check region and zone when validate. - `associate_public_ip_address` (boolean) - Whether allocate public ip to your cvm. Default value is `false`. If not set, you could access your cvm from the same vpc. - `instance_name` (string) - Instance name. - `disk_type` (string) - Root disk type your cvm will be launched by. you could reference [Disk Type](https://cloud.tencent.com/document/api/213/15753#SystemDisk) for parameter taking. - `disk_size` (number) - Root disk size your cvm will be launched by. values range(in GB): - LOCAL_BASIC: 50 - Other: 50 ~ 1000 (need whitelist if > 50) - `vpc_id` (string) - Specify vpc your cvm will be launched by. - `vpc_name` (string) - Specify vpc name you will create. if `vpc_id` is not set, packer will create a vpc for you named this parameter. - `cidr_block` (boolean) - Specify cider block of the vpc you will create if `vpc_id` not set - `subnet_id` (string) - Specify subnet your cvm will be launched by. - `subnet_name` (string) - Specify subnet name you will create. if `subnet_id` is not set, packer will create a subnet for you named this parameter. - `subnect_cidr_block` (boolean) - Specify cider block of the subnet you will create if `subnet_id` not set - `internet_max_bandwidth_out` (number) - Max bandwidth out your cvm will be launched by(in MB). values can be set between 1 ~ 100. - `security_group_id` (string) - Specify security group your cvm will be launched by. - `security_group_name` (string) - Specify security name you will create if `security_group_id` not set. - `user_data` (string) - userdata. - `user_data_file` (string) - userdata file. - `host_name` (string) - host name. ## Basic Example Here is a basic example for Tencentcloud. ``` json { "variables": { "secret_id": "{{env `TENCENTCLOUD_ACCESS_KEY`}}", "secret_key": "{{env `TENCENTCLOUD_SECRET_KEY`}}" }, "builders": [{ "type": "tencentcloud-cvm", "secret_id": "{{user `secret_id`}}", "secret_key": "{{user `secret_key`}}", "region": "ap-guangzhou", "zone": "ap-guangzhou-3", "instance_type": "S3.SMALL1", "source_image_id": "img-oikl1tzv", "ssh_username" : "root", "image_name": "packerTest2", "packer_debug": true, "associate_public_ip_address": true }], "provisioners": [{ "type": "shell", "inline": [ "sleep 30", "yum install redis.x86_64 -y" ] }] } ``` See the [examples/tencentcloud](https://github.com/hashicorp/packer/tree/master/examples/tencentcloud) folder in the packer project for more examples.