python 获取SLB信息 更换证书
首先安装阿里云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.py
import json, jsonpath, os
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ClientException
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdkslb.request.v20140515 import DescribeLoadBalancersRequest def 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.py
import json, jsonpath, os from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ClientException
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdkslb.request.v20140515 import DescribeLoadBalancerHTTPSListenerAttributeRequest
from aliyunsdkslb.request.v20140515 import SetLoadBalancerHTTPSListenerAttributeRequest def 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("+++++++++++++++++++++++++++++++++++++++++++++")
python 获取SLB信息 更换证书的更多相关文章
- python 获取对象信息
当我们拿到一个对象的引用时,如何知道这个对象是什么类型.有哪些方法呢? 使用type() 首先,我们来判断对象类型,使用type()函数: 基本类型都可以用type()判断: >>> ...
- Python 获取车票信息
提示:该代码仅供学习使用,切勿滥用!!! 先来一个git地址:https://gitee.com/wang_li/li_wang 效果图: 逻辑: 1.获取Json文件的内容 2.根据信息生成URL ...
- 用python获取服务器硬件信息[转]
#!/usr/bin/env python # -*- coding: utf-8 -*- import rlcompleter, readline readline.parse_and_bind(' ...
- 用python获取ip信息
1.138网站 http://user.ip138.com/ip/首次注册后赠送1000次请求,API接口请求格式如下,必须要有token值 import httplib2 from urllib.p ...
- python获取对象信息
获取对象信息 拿到一个变量,除了用 isinstance() 判断它是否是某种类型的实例外,还有没有别的方法获取到更多的信息呢? 例如,已有定义: class Person(object): def ...
- python获取机器信息脚本(网上寻找的)
获取机器信息(待测试) # -*- coding: UTF-8 -*- import psutil import json import os import socket import struct ...
- python获取的信息列表微信公共平台和用户头像
转载注明原文地址:http://blog.csdn.net/btyh17mxy/article/details/25207889 只写模拟登陆的方式获取微信从信息和头像库列表公共平台, - 相关后,功 ...
- 关于Python 获取windows信息收集
收集一些Python操作windows的代码 (不管是自带的or第三方库)均来自网上 1.shutdown 操作 定时关机.重启.注销 #!/usr/bin/python #-*-coding:utf ...
- Python - 获取帮助信息
1- Python Manuals 自带CHM格式的Python Manuals存放在\Python<x.x>\Doc\目录下.可以在IDLE界面下按F1键或点击help选项下Python ...
随机推荐
- java中Date与DateFormat的格式输出
一.DateFormat java.text.DateFormat 使用 getDateInstance 来获取该国家/地区的标准日期格式.另外还提供了一些其他静态工厂方法.使用 getTimeIns ...
- WordPlayer
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...
- Cross-origin plugin content from must have a visible size larger than 400 x 300 pixels, or it will be blocked. Invisible content is always blocked.
Cross-origin plugin content from must have a visible size larger than 400 x 300 pixels, or it will ...
- hdu3374 String Problem【最小表示法】【exKMP】
String Problem Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- python 同时运行两个程序
linux的话: python py1.py & python py2/py &
- mysql的多表查询join
http://blog.csdn.net/jintao_ma/article/details/51260458 https://zhidao.baidu.com/question/1304158100 ...
- [No000016A]CSS常用三种选择器
1.HTML Tag p{color:red;} 2.id #myid{color:red;} 3.class .myclass{color:red;} CSS常用文本样式属性 color font- ...
- Spark安装部署(local和standalone模式)
Spark运行的4中模式: Local Standalone Yarn Mesos 一.安装spark前期准备 1.安装java $ sudo tar -zxvf jdk-7u67-linux-x64 ...
- linux下eclipse环境配置的坑
打开eclipse问题: Q:"could not start goclipse because java version is 0"S:./eclipce -vm /usr/li ...
- maven添加settings.xml使用阿里云仓库
在~/.m2/repository目录下新建settings.xml,内容如下: <mirrors> <!-- mirror | Specifies a repository mir ...