博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 获取SLB信息 更换证书
阅读量:2228 次
发布时间:2019-05-09

本文共 5082 字,大约阅读时间需要 16 分钟。

首先安装阿里云SDK

pip install aliyun-python-sdk-core

pip install aliyun-python-sdk-slb

可以配合jenkins传递参数

#获取slb的信息

#!/usr/bin/python3# -*- coding: utf-8 -*-# @Time    : 2018/1/18 0018 16:51# @Author  : sanmuyan# @File    : aliyun_slb.pyimport json, jsonpath, osfrom aliyunsdkcore.client import AcsClientfrom aliyunsdkcore.acs_exception.exceptions import ClientExceptionfrom aliyunsdkcore.acs_exception.exceptions import ServerExceptionfrom aliyunsdkslb.request.v20140515 import DescribeLoadBalancersRequestdef slb_info(AccessKey,Secret,Regions,slb_name,AddressType):    # 创建 AcsClient 实例    client = AcsClient(        AccessKey,        Secret,        Regions        );    # 查看负载均衡实例    request = DescribeLoadBalancersRequest.DescribeLoadBalancersRequest()    if (slb_name != "all"):        request.set_LoadBalancerName(slb_name)    else:        request.set_LoadBalancerName("")    if (AddressType != "all"):        request.set_AddressType(AddressType)    else:        request.set_AddressType("")    response = client.do_action_with_exception(request)    data = json.loads(response)    data1 = jsonpath.jsonpath(data, "$.LoadBalancers.LoadBalancer.[*].LoadBalancerId")    data2 = jsonpath.jsonpath(data, "$.LoadBalancers.LoadBalancer.[*].Address")    data3 = jsonpath.jsonpath(data, "$.LoadBalancers.LoadBalancer.[*].LoadBalancerName")    print("SLB基本信息")    for i in range(len(data1)):        print(data1[i], '=', data2[i], '=', data3[i])    data = json.dumps(data, sort_keys=True, indent=2)    data = data.encode('utf-8').decode('unicode_escape')    print("打印出JSON格式数据")    print(data)if __name__ == '__main__':        AccessKey = os.environ.get('AccessKey')    Secret = os.environ.get('Secret')    Regions = os.environ.get('Regions')    slb_name = os.environ.get('slb_name')    AddressType = os.environ.get('AddressType')    slb_info (AccessKey,Secret,Regions,slb_name,AddressType)

 

#更换证书

#!/usr/bin/python3# -*- coding: utf-8 -*-# @Time    : 2018/1/18 0018 16:51# @Author  : sanmuyan# @File    : aliyun_slb.pyimport json, jsonpath, osfrom aliyunsdkcore.client import AcsClientfrom aliyunsdkcore.acs_exception.exceptions import ClientExceptionfrom aliyunsdkcore.acs_exception.exceptions import ServerExceptionfrom aliyunsdkslb.request.v20140515 import DescribeLoadBalancerHTTPSListenerAttributeRequestfrom aliyunsdkslb.request.v20140515 import SetLoadBalancerHTTPSListenerAttributeRequestdef slb_set (LoadBalancerId,ListenerPort,ServerCertificateId,AccessKey,Secret,Regions):    # 创建 AcsClient 实例    client = AcsClient(        AccessKey,        Secret,        Regions    );    # 获取配置前的信息    request = DescribeLoadBalancerHTTPSListenerAttributeRequest.DescribeLoadBalancerHTTPSListenerAttributeRequest()    request.set_LoadBalancerId(LoadBalancerId)    request.set_ListenerPort(ListenerPort)    response = client.do_action_with_exception(request)    data = (json.loads(response))    HealthCheck = (data['HealthCheck'])    print("更新前的配置信息")    print(json.dumps(data, sort_keys=True, indent=2))    # 设置负载均衡实例    request = SetLoadBalancerHTTPSListenerAttributeRequest.SetLoadBalancerHTTPSListenerAttributeRequest()    request.set_LoadBalancerId(LoadBalancerId)  # 负载均衡实例的唯一标识    request.set_ListenerPort(ListenerPort)  # 负载均衡实例前端使用的端口    request.set_ServerCertificateId(ServerCertificateId)  # 证书ID    request.set_Bandwidth(data['Bandwidth'])  # 监听的带宽峰值。取值:-1/1-1000Mbps    request.set_StickySession(data['StickySession'])  # 是否开启会话保持    request.set_HealthCheck(HealthCheck)  # 是否开启健康检查    if (HealthCheck == "on"):        request.set_HealthCheckURI(data['HealthCheckURI'])  # 监控检查url        request.set_HealthCheckTimeout(data['HealthCheckTimeout'])  # 健康检查超时时间        request.set_HealthCheckInterval(data['HealthCheckInterval'])  # 健康检查间隔时间        request.set_HealthyThreshold(data['HealthyThreshold'])  # 健康检查健康阈值        request.set_UnhealthyThreshold(data['UnhealthyThreshold'])  # 健康检查不健康阈值        if "HealthCheckConnectPort" in data:            request.set_HealthCheckConnectPort(data['HealthCheckConnectPort'])  # 健康检查端口        else:            print("HealthCheckConnectPort=default")    else:        print("HealthCheck=off")    response = client.do_action_with_exception(request)    print(response)    print("更新后的配置信息")    print(json.dumps(data, sort_keys=True, indent=2))if __name__ == '__main__':    LoadBalancerId = os.environ.get('LoadBalancerId')    LoadBalancerId = LoadBalancerId.strip(',').split(',')    ListenerPort = os.environ.get('ListenerPort')    ServerCertificateId = os.environ.get('ServerCertificateId')    AccessKey = os.environ.get('AccessKey')    Secret = os.environ.get('Secret')    Regions = os.environ.get('Regions')    print("需要部署",len(LoadBalancerId),"个实例")    for i in LoadBalancerId:        print (i)    for i in range(len(LoadBalancerId)):        print("+++++++++++++++++++++++++++++++++++++++++++++")        print("正在配置","第",i+1,"个实例",LoadBalancerId[i])        slb_set (LoadBalancerId[i],ListenerPort,ServerCertificateId,AccessKey,Secret,Regions)        print("+++++++++++++++++++++++++++++++++++++++++++++")

 

转载于:https://www.cnblogs.com/37yan/p/8340880.html

你可能感兴趣的文章
JSP相关知识
查看>>
JDBC的基本知识
查看>>
《Head first设计模式》学习笔记 - 适配器模式
查看>>
《Head first设计模式》学习笔记 - 单件模式
查看>>
《Head first设计模式》学习笔记 - 工厂方法模式
查看>>
《Head first设计模式》学习笔记 - 装饰者模式
查看>>
《Head first设计模式》学习笔记 - 模板方法模式
查看>>
《Head first设计模式》学习笔记 - 外观模式
查看>>
《Head first设计模式》学习笔记 - 命令模式
查看>>
《Head first设计模式》学习笔记 - 抽象工厂模式
查看>>
《Head first设计模式》学习笔记 - 观察者模式
查看>>
《Head first设计模式》学习笔记 - 策略模式
查看>>
ThreadLocal 那点事儿
查看>>
ThreadLocal 那点事儿(续集)
查看>>
阳台做成榻榻米 阳台做成书房
查看>>
深入分析java线程池的实现原理
查看>>
mybatis中"#"和"$"的区别
查看>>
Hibernate与MyBatis区别
查看>>
如何禁用Eclipse的Validating
查看>>
据说看完这21个故事的人,30岁前都成了亿万富翁。你是下一个吗?
查看>>