Getting Started With Tencent Cloud#

Tencent Cloud is a secure, reliable and high-performance cloud compute service provided by Tencent. It is the 2nd largest Cloud Provider in China.

Dependencies#

The Tencent Cloud driver for Salt Cloud requires the tencentcloud-sdk-python package, which is available at PyPI:

https://pypi.org/project/tencentcloud-sdk-python/

This package can be installed using pip or easy_install:

# pip install tencentcloud-sdk-python
# easy_install tencentcloud-sdk-python

Provider Configuration#

To use this module, set up the cloud configuration at

/etc/salt/cloud.providers or /etc/salt/cloud.providers.d/*.conf:

my-tencentcloud-config:
  driver: tencentcloud
  # Tencent Cloud Secret Id
  id: AKIDA64pOio9BMemkApzevX0HS169S4b750A
  # Tencent Cloud Secret Key
  key: 8r2xmPn0C5FDvRAlmcJimiTZKVRsk260
  # Tencent Cloud Region
  location: ap-guangzhou

Configuration Parameters#

driver#

Required. tencentcloud to use this module.

id#

Required. Your Tencent Cloud secret id.

key#

Required. Your Tencent Cloud secret key.

location#

Optional. If this value is not specified, the default is ap-guangzhou. Available locations can be found using the --list-locations option:

# salt-cloud --list-location my-tencentcloud-config

Profile Configuration#

Tencent Cloud profiles require a provider, availability_zone, image and size. Set up an initial profile at /etc/salt/cloud.profiles or /etc/salt/cloud.profiles.d/*.conf:

tencentcloud-guangzhou-s1sm1:
    provider: my-tencentcloud-config
    availability_zone: ap-guangzhou-3
    image: img-31tjrtph
    size: S1.SMALL1
    allocate_public_ip: True
    internet_max_bandwidth_out: 1
    password: '153e41ec96140152'
    securitygroups:
        - sg-5e90804b

Configuration Parameters#

provider#

Required. Name of entry in salt/cloud.providers.d/??? file.

availability_zone#

Required. The availability zone that the instance is located in. Available zones can be found using the list_availability_zones function:

# salt-cloud -f list_availability_zones my-tencentcloud-config

image#

Required. The image id to use for the instance. Available images can be found using the --list-images option:

# salt-cloud --list-images my-tencentcloud-config

size#

Required. Instance type for instance can be found using the --list-sizes option.

# salt-cloud --list-sizes my-tencentcloud-config

securitygroups#

Optional. A list of security group ids to associate with. Available security group ids can be found using the list_securitygroups function:

# salt-cloud -f list_securitygroups my-tencentcloud-config

Multiple security groups are supported:

tencentcloud-guangzhou-s1sm1:
    securitygroups:
        - sg-5e90804b
        - sg-8kpynf2t

hostname#

Optional. The hostname of the instance.

instance_charge_type#

Optional. The charge type of the instance. Valid values are PREPAID, POSTPAID_BY_HOUR and SPOTPAID. The default is POSTPAID_BY_HOUR.

instance_charge_type_prepaid_renew_flag#

Optional. When enabled, the instance will be renew automatically when it reaches the end of the prepaid tenancy. Valid values are NOTIFY_AND_AUTO_RENEW, NOTIFY_AND_MANUAL_RENEW and DISABLE_NOTIFY_AND_MANUAL_RENEW.

Note

This value is only used when instance_charge_type is set to PREPAID.

instance_charge_type_prepaid_period#

Optional. The tenancy time in months of the prepaid instance, Valid values are 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 24, 36.

Note

This value is only used when instance_charge_type is set to PREPAID.

allocate_public_ip#

Optional. Associate a public ip address with an instance in a VPC or Classic. Boolean value, default is false.

internet_max_bandwidth_out#

Optional. Maximum outgoing bandwidth to the public network, measured in Mbps (Mega bits per second). Value range: [0, 100]. If this value is not specified, the default is 0 Mbps.

internet_charge_type#

Optional. Internet charge type of the instance. Valid values are BANDWIDTH_PREPAID, TRAFFIC_POSTPAID_BY_HOUR, BANDWIDTH_POSTPAID_BY_HOUR and BANDWIDTH_PACKAGE. The default is TRAFFIC_POSTPAID_BY_HOUR.

key_name#

Optional. The key pair to use for the instance, for example skey-16jig7tx.

password#

Optional. Login password for the instance.

private_ip#

Optional. The private ip to be assigned to this instance, must be in the provided subnet and available.

project_id#

Optional. The project this instance belongs to, defaults to 0.

vpc_id#

Optional. The id of a VPC network. If you want to create instances in a VPC network, this parameter must be set.

subnet_id#

Optional. The id of a VPC subnet. If you want to create instances in VPC network, this parameter must be set.

system_disk_size#

Optional. Size of the system disk. Value range: [50, 1000], and unit is GB. Default is 50 GB.

system_disk_type#

Optional. Type of the system disk. Valid values are CLOUD_BASIC, CLOUD_SSD and CLOUD_PREMIUM, default value is CLOUD_BASIC.

Actions#

The following actions are supported by the Tencent Cloud Salt Cloud driver.

show_instance#

This action is a thin wrapper around --full-query, which displays details on a single instance only. In an environment with several machines, this will save a user from having to sort through all instance data, just to examine a single instance.

$ salt-cloud -a show_instance myinstance

show_disk#

Return disk details about a specific instance.

$ salt-cloud -a show_disk myinstance

destroy#

Destroy a Tencent Cloud instance.

$ salt-cloud -a destroy myinstance

start#

Start a Tencent Cloud instance.

$ salt-cloud -a start myinstance

stop#

Stop a Tencent Cloud instance.

$ salt-cloud -a stop myinstance

reboot#

Reboot a Tencent Cloud instance.

$ salt-cloud -a reboot myinstance

Functions#

The following functions are currently supported by the Tencent Cloud Salt Cloud driver.

list_securitygroups#

Lists all Tencent Cloud security groups in current region.

$ salt-cloud -f list_securitygroups my-tencentcloud-config

list_availability_zones#

Lists all Tencent Cloud availability zones in current region.

$ salt-cloud -f list_availability_zones my-tencentcloud-config

list_custom_images#

Lists any custom images associated with the account. These images can be used to create a new instance.

$ salt-cloud -f list_custom_images my-tencentcloud-config

show_image#

Return details about a specific image. This image can be used to create a new instance.

$ salt-cloud -f show_image tencentcloud image=img-31tjrtph