zoukankan      html  css  js  c++  java
  • python 调用阿里云服务器api创建服务器

    首先安装阿里云SDK

    pip install aliyun-python-sdk-core

    pip install aliyun-python-sdk-ecs

    可以配合jenkins传递参数

    #!/usr/bin/python3
    # -*- coding: utf-8 -*-
    # @Time    : 2018/1/26 0026 12:01
    # @Author  : sanmuyan
    # @FileName: aliyun_ecs_cre.py
    import json,time,os
    from aliyunsdkcore.client import AcsClient
    from aliyunsdkcore.acs_exception.exceptions import ClientException
    from aliyunsdkcore.acs_exception.exceptions import ServerException
    from aliyunsdkecs.request.v20140526 import CreateInstanceRequest,StartInstanceRequest,DescribeInstancesRequest
    
    AccessKey = os.environ.get('AccessKey')
    Secret = os.environ.get('Secret')
    Regions = os.environ.get('Regions')
    
    # 创建 AcsClient 实例
    client = AcsClient(
        AccessKey,
        Secret,
        Regions
    );
    
    def ecs_start(InstanceId):
       request = StartInstanceRequest.StartInstanceRequest()
       request.set_InstanceId(InstanceId)
       response = client.do_action_with_exception(request)
       print(response,'
    ',"INFO:Starting results")
    
    def ecs_des(InstanceId):
       request = DescribeInstancesRequest.DescribeInstancesRequest()
       request.set_InstanceIds(InstanceId)
       response = client.do_action_with_exception(request)
       data = json.loads(response)
       data = json.dumps(data, sort_keys=True, indent=2)
       print(data)
    
    def ecs_cre():
        request = CreateInstanceRequest.CreateInstanceRequest()
        request.set_ImageId(ImageId)
        request.set_InstanceType(InstanceType)
        request.set_SecurityGroupId(SecurityGroupId)
        request.set_ZoneId(ZoneId)
        request.set_InstanceName(InstanceName)
        request.set_HostName(HostName)
        request.set_Password(Password)
        request.set_SystemDiskCategory(SystemDiskCategory)
        request.set_DataDisks(({'DataDisk':'1'},{'Size':DataDiskSize},{'Category':'cloud_efficiency'}))
        request.set_SystemDiskSize(SystemDiskSize)
        request.set_VSwitchId(VSwitchId)
        request.set_InstanceChargeType(InstanceChargeType)
        request.set_Period(Period)
        if (Period == "PrePaid"):
            request.set_AutoRenew(AutoRenew)
            request.set_AutoRenewPeriod(AutoRenewPeriod)
            response = client.do_action_with_exception(request)
            
        response = client.do_action_with_exception(request)   
        data = json.loads(response)
        print(data,'
    '"INFO:Create success")
        InstanceId = (data['InstanceId'])
        time.sleep(10)
        ecs_start(InstanceId=InstanceId)
        time.sleep(20)
        ecs_des(InstanceId=[InstanceId])
    
    if __name__ == '__main__':
    
        ImageId = os.environ.get('ImageId')                                   # 镜像
        InstanceType = os.environ.get('InstanceType')                         # 实例规格
        SecurityGroupId = os.environ.get('SecurityGroupId')                   # 安全组
        ZoneId = os.environ.get('ZoneId')                                   # 可用区
        InstanceName = os.environ.get('InstanceName')                        # 实例名
        HostName = os.environ.get('HostName')                                 # 主机名
        Password = os.environ.get('Password')                                 # 主机密码
        SystemDiskCategory = os.environ.get('SystemDiskCategory')              # 系统盘类型
        SystemDiskSize = os.environ.get('SystemDiskSize')                   # 系统盘大小
        DataDiskSize = os.environ.get('DataDiskSize')                       # 数据盘大小
        VSwitchId = os.environ.get('VSwitchId')                                # 交换机
        InstanceChargeType = os.environ.get('InstanceChargeType')           # 实例付费类型
        Period = os.environ.get('Period')                                   # 购买时长
        AutoRenew = os.environ.get('AutoRenew')                                # 是否开启自动续费
        AutoRenewPeriod = os.environ.get('AutoRenewPeriod')                    # 自动续费时长
        ecs_cre()
  • 相关阅读:
    2. Add Two Numbers
    1. Two Sum
    leetcode 213. 打家劫舍 II JAVA
    leetcode 48. 旋转图像 java
    leetcode 45. 跳跃游戏 II JAVA
    leetcode 42. 接雨水 JAVA
    40. 组合总和 II leetcode JAVA
    24. 两两交换链表中的节点 leetcode
    1002. 查找常用字符 leecode
    leetcode 23. 合并K个排序链表 JAVA
  • 原文地址:https://www.cnblogs.com/37yan/p/8418751.html
Copyright © 2011-2022 走看看