前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >通过云API创建云主机,并指定IP地址

通过云API创建云主机,并指定IP地址

原创
作者头像
蛋蛋
发布2023-07-14 17:17:00
5101
发布2023-07-14 17:17:00
举报
文章被收录于专栏:随手小记随手小记

公有云文档

?

业务场景:部署应用时,需要制定主机IP地址

相关概念:VPC私有网络、子网、CVM

前提条件:

  1. 创建一个子账号,并授权CVM相关服务读写权限
  2. 提前获取VPC、子网ID、镜像ID
  3. 准备一个可以安装python的系统,linux或windows均可

本次实验环境:

实例规格:标准型S6-S6.MEDIUM2

操作系统:CentOS 7.6 64位

系统盘:50GB

网络带宽:按流量计费、5Mbps

22bxZPD7KmcATp

主机购买页面截图

?

image
image

?

操作步骤:

主机内安装相关SDK,“-i https://mirrors.tencent.com/pypi/simple/”的意思是通过国内镜像源安装,下载速度会稍快。

代码语言:javascript
复制
pip3 install -i https://mirrors.tencent.com/pypi/simple/ --upgrade tencentcloud-sdk-python

安装成功截图

?

image
image

?

新建子用户,并配置权限

?

?

?

image
image

?

image
image

??

?

image
image

?

?

image
image

?

?

image
image

?

若出现安全验证,根据提示配置即可,一般还需要扫码

?

image
image

?

配置用户权限

??

image
image

??

?

image
image

?

??

image
image

??

复制对应ID及Key

?

image
image

?

如此处

代码语言:javascript
复制
SecretId AKIDzzofNtEYheikZfAct8EAtTxPJ91uqeGH 
SecretKey Ok7Vs7D9xcTDpIainpuw0AbxAE896sU7

生成创建云主机代码

?

image
image

?

image
image

?

?

复制右侧代码准备调用

?

image
image

将第三步获取的密钥信息填入

代码语言:javascript
复制
import json
from tencentcloud.common import credential
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
from tencentcloud.cvm.v20170312 import cvm_client, models
try:
    # 实例化一个认证对象,入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密
    # 代码泄露可能会导致 SecretId 和 SecretKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议采用更安全的方式来使用密钥,请参见:/document/product/1278/85305
    # 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取
    cred = credential.Credential("AKIDzzofNtEYheikZfAct8EAtTxPJ91uqeGH", "Ok7Vs7D9xcTDpIainpuw0AbxAE896sU7")
    # 实例化一个http选项,可选的,没有特殊需求可以跳过
    httpProfile = HttpProfile()
    httpProfile.endpoint = "cvm.tencentcloudapi.com"

    # 实例化一个client选项,可选的,没有特殊需求可以跳过
    clientProfile = ClientProfile()
    clientProfile.httpProfile = httpProfile
    # 实例化要请求产品的client对象,clientProfile是可选的
    client = cvm_client.CvmClient(cred, "ap-guangzhou", clientProfile)

    # 实例化一个请求对象,每个接口都会对应一个request对象
    req = models.RunInstancesRequest()
    params = {

    }
    req.from_json_string(json.dumps(params))

    # 返回的resp是一个RunInstancesResponse的实例,与请求对象对应
    resp = client.RunInstances(req)
    # 输出json格式的字符串回包
    print(resp.to_json_string())

except TencentCloudSDKException as err:
    print(err)
  1. 登录主机,此处使用腾讯云OrcaTerm演示

?

image
image

?

?

image
image

?

  1. 在主机内创建一个"create_vm.py"文件,并将内容粘贴
代码语言:javascript
复制
vi create_vm.py

?

image
image

?

切换输入法为英文,按小键盘上的“i”进入编辑模式

??

image
image

??

粘贴代码

?

image
image

?

退出并保存文件,按键盘上的“ESC”退出编辑模式,然后输入“:wq”回车保存退出

??

image
image

??

?

image
image

?

执行代码

代码语言:javascript
复制
python3 create_vm.py

?

image
image

?

提示缺少必填参数,回到控制台,增加参数

?

image
image

?

增加可用区信息

如在广州七区,格式则是ap-guangzhou-7

增加镜像信息

?

image
image

?

image
image

?

获取VPC、子网 ID

?

image
image

?

填入相关参数及待创建的云主机IP,需在对应的子网范围内

?

image
image

?

删除原有文件,复制新的代码,修改ID及Key信息

自动将填写的参数生成代码

?

image
image

?

最终代码如下

代码语言:javascript
复制
import json
from tencentcloud.common import credential
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
from tencentcloud.cvm.v20170312 import cvm_client, models
try:
    # 实例化一个认证对象,入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密
    # 代码泄露可能会导致 SecretId 和 SecretKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议采用更安全的方式来使用密钥,请参见:/document/product/1278/85305
    # 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取
    cred = credential.Credential("AKIDzzofNtEYheikZfAct8EAtTxPJ91uqeGH", "Ok7Vs7D9xcTDpIainpuw0AbxAE896sU7")
    # 实例化一个http选项,可选的,没有特殊需求可以跳过
    httpProfile = HttpProfile()
    httpProfile.endpoint = "cvm.tencentcloudapi.com"

    # 实例化一个client选项,可选的,没有特殊需求可以跳过
    clientProfile = ClientProfile()
    clientProfile.httpProfile = httpProfile
    # 实例化要请求产品的client对象,clientProfile是可选的
    client = cvm_client.CvmClient(cred, "ap-guangzhou", clientProfile)

    # 实例化一个请求对象,每个接口都会对应一个request对象
    req = models.RunInstancesRequest()
    params = {
        "Placement": {
            "Zone": "ap-guangzhou-7"
        },
        "ImageId": "img-9qabwvbn",
        "VirtualPrivateCloud": {
            "VpcId": "vpc-fjicuvbj",
            "SubnetId": "subnet-l47fkdr0",
            "PrivateIpAddresses": [ "172.16.48.133" ]
        }
    }
    req.from_json_string(json.dumps(params))

    # 返回的resp是一个RunInstancesResponse的实例,与请求对象对应
    resp = client.RunInstances(req)
    # 输出json格式的字符串回包
    print(resp.to_json_string())

except TencentCloudSDKException as err:
    print(err)

删除原有文件重新创建

代码语言:javascript
复制
rm -f create_vm.py
vi create_vm.py

??

image
image

??

执行脚本,检查主机是否创建,IP是否正确

代码语言:javascript
复制
python3 create_vm.py

?

image
image

?

IP与代码中设置的一致,这样即可实现创建云服务器过程中指定IP地址

?

image
image

?

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 公有云文档
    • 业务场景:部署应用时,需要制定主机IP地址
      • 相关概念:VPC私有网络、子网、CVM
        • 前提条件:
          • 操作步骤:
            • 主机内安装相关SDK,“-i https://mirrors.tencent.com/pypi/simple/”的意思是通过国内镜像源安装,下载速度会稍快。
            • 新建子用户,并配置权限
            • 生成创建云主机代码
            • 复制右侧代码准备调用
            • 将第三步获取的密钥信息填入
            • 执行代码
            • 提示缺少必填参数,回到控制台,增加参数
            • 删除原有文件,复制新的代码,修改ID及Key信息
            • 执行脚本,检查主机是否创建,IP是否正确
        相关产品与服务
        云服务器
        云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
        http://www.vxiaotou.com