腾讯云是腾讯提供的安全、可靠、高性能的云计算服务。 它是中国第二大云提供商。
Salt Cloud目前已经提供了对腾讯云平台的管理支持,一些常见的云平台管理功能、管理操作已经都可以做到通过Salt Cloud集成到自有的技术平台上做统一的资源管理了。

Dependencies - 依赖性

用于Salt Cloud的Tencent Cloud驱动程序需要tencentcloud-sdk-python软件包,该软件包可从PyPI获得:

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

可以使用pipeasy_install安装此软件包:

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

Provider Configuration - 驱动程序配置

要使用此模块,请在以下位置设置云插件驱动配置信息:

/etc/salt/cloud.providers 或者是 /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.

使用该参数定义的驱动模块访问腾讯云。

id

Required.

你的腾讯云账号的 secret id 。

key

Required.

你的腾讯云账号的 secret key 。

location

Optional.

如果未指定此值,则默认值为ap-guangzhou。 可用位置可以使用--list-locations选项找到:

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

Profile Configuration - 云主机初始化配置文件

在需要创建云主机时,腾讯云profiles配置文件需要使用 provider, availability_zone, imagesize 等参数,在/etc/salt/cloud.profiles/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 - Profile文件配置参数

provider

Required.

salt/cloud.providers.d/??? 中文件的名称。

availability_zone

Required.

实例所在的可用区。可以使用list_availability_zones函数找到可用区:

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

image

Required.

用于创建实例的镜像ID。 可用的镜像资源可以使用--list-images选项找到:

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

size

Required.

可以使用--list-sizes选项找到实例的实例类型。

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

securitygroups

Optional.

与之关联的安全组ID的列表。 可用的安全组ID可以使用list_securitygroups函数找到:

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

支持设置为使用多个安全组:

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

hostname

Optional.

云主机实例的主机名。

instance_charge_type

Optional.

实例的计费类型。 有效值为PREPAIDPOSTPAID_BY_HOURPOSTPAID。 默认值为POSTPAID_BY_HOUR

instance_charge_type_prepaid_renew_flag

Optional.

启用后,实例将在达到预付租约期满时自动更新。 有效值为NOTIFY_AND_AUTO_RENEWNOTIFY_AND_MANUAL_RENEWDISABLE_NOTIFY_AND_MANUAL_RENEW

注意

仅当instance_charge_type设置为PREPAID时才使用此值。

instance_charge_type_prepaid_period

Optional.

预付费实例的租赁时间(以月为单位),有效值为1、2、3、4、5、6、7、8、9、10、11、12、24、36

注意

仅当instance_charge_type设置为PREPAID时才使用此值。

allocate_public_ip

Optional.

将公用ip地址与VPC或Classic中的实例相关联。 布尔值,默认为false

internet_max_bandwidth_out

Optional.

公共网络的最大出口带宽,以Mbps(兆比特/秒)为单位。 值范围:[0,100]。 如果未指定此值,则默认值为0 Mbps

internet_charge_type

Optional.

实例的互联网流量费用类型。 有效值为BANDWIDTH_PREPAIDTRAFFIC_POSTPAID_BY_HOURBANDWIDTH_POSTPAID_BY_HOURBANDWIDTH_PACKAGE。 默认值为TRAFFIC_POSTPAID_BY_HOUR

key_name

Optional.

用于管理这个实例的密钥对, 例如 skey-16jig7tx

password

Optional.

登录该实例使用的密码。

private_ip

Optional.

要分配给该实例的私有ip,必须在提供的子网中并且可用。

project_id

Optional.

该实例所属的项目, 默认值为 0

vpc_id

Optional.

VPC网络的ID。 如果要在VPC网络中创建实例,则必须设置此参数。

subnet_id

Optional.

VPC子网的ID。 如果要在VPC网络中创建实例,则必须设置此参数。

system_disk_size

Optional.

系统盘的大小。取值范围可以是: [50, 1000], 单位 GB。默认值为 50 GB 。

system_disk_type

Optional.

系统磁盘的类型。 有效值为CLOUD_BASICCLOUD_SSDCLOUD_PREMIUM,默认值为CLOUD_BASIC

Actions - 管理操作

腾讯云 Salt Cloud驱动程序目前支持以下管理操作。

show_instance

此操作是--full-query的一个瘦包装,仅显示单个实例的详细信息。 在具有多台计算机的环境中,这将使用户不必为了检查单个实例而对所有实例数据进行排序。

$ salt-cloud -a show_instance myinstance

show_disk

返回一个指定实例使用的磁盘的详情信息。

$ salt-cloud -a show_disk myinstance

destroy

销毁一个腾讯云实例。

$ salt-cloud -a destroy myinstance

start

启动一个腾讯云实例。

$ salt-cloud -a start myinstance

stop

停止一个腾讯云实例。

$ salt-cloud -a stop myinstance

reboot

重启一个腾讯云实例。

$ salt-cloud -a reboot myinstance

Functions - 功能函数

腾讯云Salt Cloud驱动程序当前支持以下功能函数。

list_securitygroups

显示在当前区域中所有的腾讯云安全组。

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

list_availability_zones

显示在当前区域中所有的腾讯云可用域。

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

list_custom_images

列出与该帐户关联的所有自定义镜像。 这些镜像可用于创建新实例。

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

show_image

返回有关特定镜像的详细信息。 该镜像可用于创建新实例。

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