腾讯云是腾讯提供的安全、可靠、高性能的云计算服务。 它是中国第二大云提供商。
Salt Cloud目前已经提供了对腾讯云平台的管理支持,一些常见的云平台管理功能、管理操作已经都可以做到通过Salt Cloud集成到自有的技术平台上做统一的资源管理了。
Dependencies - 依赖性
用于Salt Cloud的Tencent Cloud驱动程序需要tencentcloud-sdk-python
软件包,该软件包可从PyPI获得:
https://pypi.org/project/tencentcloud-sdk-python/
可以使用pip
或easy_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
, image
和 size
等参数,在/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.
实例的计费类型。 有效值为PREPAID
,POSTPAID_BY_HOUR
和POSTPAID
。 默认值为POSTPAID_BY_HOUR
。
instance_charge_type_prepaid_renew_flag
Optional.
启用后,实例将在达到预付租约期满时自动更新。 有效值为NOTIFY_AND_AUTO_RENEW
,NOTIFY_AND_MANUAL_RENEW
和DISABLE_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_PREPAID
,TRAFFIC_POSTPAID_BY_HOUR
,BANDWIDTH_POSTPAID_BY_HOUR
和BANDWIDTH_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_BASIC
,CLOUD_SSD
和CLOUD_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