图数据库平台-TigerGraph完成1.05亿美元C轮融资,老虎基金领投
06-18
背景目前在GTS学院,腾讯云自研产品TCS、TBDS、TSF、TDSQL、TBASE等培训需要学员自带环境,在训练过程中使用学生自己的环境。实际练习的环境。
每种产品的训练环境对云服务器的数量和配置都有不同的要求。一套产品训练的实际运行环境从4台到近20台不等,CVM配置也各不相同。
如果学生在准备环境时采用手工采购的方式,需要花费更多的时间来准备环境,效率低且繁琐。本文将根据GTS学院当前的环境使用情况,介绍自动创建CVM的功能,并附上主要培训产品相关的创建机器的代码,供学员自行下载运行。
解决方案通过本文的介绍,即使是不懂编程的用户也可以通过代码实现创建CVM的功能。获取并创建 CVM 程序。
对于零编程知识的同学来说,没有必要自己写程序。腾讯云网站上有相应的程序生成接口,可以自动获取自动创建CVM的代码。
在新服务器购买页面,根据您的需求选择购买CVM所需的信息(包括计费方式、区域、型号、网络、配置等),并在第三阶段“3.确认配置信息” ,您可以看到转到“生成 API Explorer 最佳实践脚本”选项。点击获取创建CVM的程序。
获取创建CVM的程序代码,左侧会显示当前机器的关键配置信息。在右侧选择API脚本的语言后,可以看到自动生成的程序。
获取所需的代码并运行代码。通过获取代码并添加“$secretId”、“$secretKey”以及服务器登录密码信息,即可在安装有tencentcloud-sdk-python的机器上直接运行程序创建云服务器。
获取secretId和secretKey信息,可以直接访问:获取SDK安装,请参考如何安装tencentcloud-sdk-python链接:按照安装SDK的方法直接安装腾讯云SDK。由于获得的代码只能创建统一配置的机器,因此需要对其进行修改,以创建多个不同配置的实验环境。
根据需求修改代码并进行基础配置,自动创建多台不同配置的云服务器。代码语言:javascript copy#!/usr/bin/env python# -*- 编码:UTF-8 -*-# 编码:utf8# 作者:johnnyxsu# 创建:2-17import sysimport jsonimport timefrom tencentcloud.common import credentialfrom tencentcloud. common.profile.client_profile import ClientProfilefrom tencentcloud.common.profile.http_profile import HttpProfilefrom tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKExceptionfrom tencentcloud.cvm.vimport cvm_client , models#获取 SecretId = ""SecretKey = ""#填写模型根据需要填写多个单位 InstanceType = [ {"InstanceType": "SA3.2XLARGE16"}, {"InstanceType": "SA3.2XLARGE16"}, {"InstanceType": "SA3.2XLARGE16"} , {"InstanceType": "SA3.2XLARGE16"},]#本机的数据盘信息,与InstanceType一一对应 DataDisks = [ [ {"DiskSize": , "DiskType": "CLOUD_PREMIUM" }], [{"磁盘大小": , "DiskType": "CLOUD_PREMIUM"}], [{"DiskSize": , "DiskType": "CLOUD_PREMIUM"}], [{"DiskSize": , "DiskType": "CLOUD_PREMIUM"}, {"DiskSize" : , "DiskType": "CLOUD_PREMIUM"}],]def loopCreateCVM(datas): cvms = list() print("开始创建CVM:") for datas 中的数据: inData = dict() inData['projectId'] = data['projectId'] inData['VpcId'] = data['VpcId'] inData['SubnetId'] = data['SubnetId'] for i in range(len(InstanceType)): inData['InstanceType'] = InstanceType[i]['InstanceType'] inData['InstanceName'] = data['groupId'] + '-'+ InstanceType[i]['InstanceType'].split('.')[-1] + "- {}".format(i) inData['DataDisks']= DataDisks[i] #print(inData) #inData = {"InstanceName": "", "projectId": , "VpcId": "vpc-ay2tio8z", "SubnetId": "subnet-1tgw7cos","InstanceType": "SA2.8XLARGE64", "DataDisks": []} msg = createCVM(inData) print(msg) retD = json.loads(msg) if 'InstanceIdSet' in retD and retD['InstanceIdSet']: cvms = cvms + retD ['InstanceIdSet'] return cvmsdef createCVM(inData): # inData = {"groupId": "", "projectId": , "VpcId": "vpc-ay2tio8z", "SubnetId": "subnet-1tgw7cos", "InstanceType ": "SA2.8XLARGE64", "DataDisks":[]} 尝试: cred = credential.Credential(SecretId, SecretKey) httpProfile = HttpProfile() httpProfile.endpoint = "cvm.ap-guangzhou.tencentcloudapi.com" clientProfile = ClientProfile() clientProfile.httpProfile = httpProfile client = cvm_client.CvmClient(cred, "ap-guangzhou", clientProfile) req = models.RunInstancesRequest() params = { "InstanceChargeType ": "POSTPAID_BY_HOUR", # PREPAID POSTPAID_BY_HOUR "InstanceChargePrepaid": { "Period": 1, "RenewFlag": "NOTIFY_AND_MANUAL_RENEW" }, "Placement": { "Zone": "ap-guangzhou-7", # 可用区 " ProjectId": inData['projectId'] # 项目ID需要修改 }, "VirtualPrivateCloud": { "AsVpcGateway": False, "VpcId": inData['VpcId'], # VPC需要修改 "SubnetId": inData['SubnetId'], # 需要修改子网 "Ipv6AddressCount": 0 }, "InstanceType": inData['InstanceType'], # 需要修改型号 "ImageId": "img-hdt9xxkt", " SystemDisk": { "DiskSize": , ##系统盘大小 "DiskType": "CLOUD_PREMIUM" }, "DataDisks": inData['DataDisks'], # 需要修改磁盘信息 "InternetAccessible": { "InternetMaxBandwidthOut": 0, "PublicIpAssigned": False }, "InstanceName": inData['InstanceName'], # 需要修改实例ID。
版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
标签:
相关文章
06-18
06-18
06-17
06-18
06-18
06-06
最新文章
【玩转GPU】ControlNet初学者生存指南
【实战】获取小程序中用户的城市信息(附源码)
包雪雪简单介绍Vue.js:开学
Go进阶:使用Gin框架简单实现服务端渲染
线程池介绍及实际案例分享
JMeter 注释 18 - JMeter 常用配置组件介绍
基于Sentry的大数据权限解决方案
【云+社区年度征文集】GPE监控介绍及使用