【京东云】通过SDK创建多个弹性IP

需求:某客户短时间内需要申请大量的IP,并且在同一个C段(256个)

目的:通过SDK方式,将一个C段的IP都开出来

步骤:

一、配置环境:

安装CLI:

(1)安装python3.6 

yum install python36

(2)安装pip

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

python3 get-pip.py

(3)修改bashrc

[root@junper ~]# echo 'eval "$(register-python-argcomplete jdc)"' >> .bashrc

[root@junper ~]# echo 'export COLUMNS=100' >> .bashrc

[root@junper ~]# source ~/.bashrc

(4)配置Key

[root@junper ~]#

add --profile default --access-key **** --secret-key ***

(5)安装Python SDK

[root@junper ~]# pip install -U jdcloud_sdk

(5)脚本

import sys
from jdcloud_sdk.core.credential import Credential
from jdcloud_sdk.core.logger import Logger
from jdcloud_sdk.services.vpc.client.VpcClient import VpcClient
from jdcloud_sdk.services.vpc.apis.CreateElasticIpsRequest import CreateElasticIpsRequest


# ak/sk配置
access_key = sys.argv[1]
secret_key = sys.argv[2]


# 公网ip地域
# 华北-北京: cn-north-1
# 华东-上海: cn-east-2
# 华南-广州: cn-south-1
regionId = sys.argv[3]


# 公网ip带宽1-200
bandwidthMbps = int(sys.argv[4])


# 获取client
def getVpcClient(accessKey, secretKey):
    credential = Credential(accessKey, secretKey)
    # 日志级别
    log_level = 2
    logger = Logger(log_level)
    client = VpcClient(credential, logger=logger)
    return client


# 创建弹性公网ip
def createEip():
    client = getVpcClient(access_key, secret_key)
    try:
        # 创建弹性公网ip参数
        parameters = {
            "maxCount": 1,
            "elasticIpSpec": {
                "provider": "bgp",
                "bandwidthMbps": bandwidthMbps,
                "chargeSpec": {
                    "chargeMode": "postpaid_by_usage"
                }
            },
            "elasticIpAddress": "",
            "regionId": regionId
        }
        with open("ips.txt", ) as f:
            ipList = f.readlines()

        for ip in ipList:
            ip = ip.strip()
            parameters["elasticIpAddress"] = ip
            request = CreateElasticIpsRequest(parameters)
            resp = client.send(request)
            print(ip, "requestId: ", resp.request_id)
            if resp.error is not None:
                print(resp.error.code, resp.error.message)
                continue
            print(resp.result)
    except Exception as e:
        print(e)


if __name__ == "__main__":
    createEip()
 

二、使用方法

1. 使用seq 1 254 | awk '{print "114.19.7."$1}' > ips.txt命令,将待创建的ip输出到ips.txt文件中,seq 1 254会生成1到254的序列,追加到114.19.7.的后面,构成完成的ip
2. 执行python3 createips.py AKSK 地域 公网带宽 > creatIP.log
    公网ip地域:
    华北-北京: cn-north-1
    华东-上海: cn-east-2
    华南-广州: cn-south-1
    例如: python3 createips.py DADWFSFGSFEFSDGS8888ABHSSEEEEEE6 9D228E38283D8E8SFGSSDFSGSFEEEEEE cn-north-1 1 > createIP.log

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值