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 ...
随机推荐
- 10.23 crm(3)
2018-10-23 20:34:30 继续增加新的功能!在代码注释里面有! 越努力,越幸运!永远不要高估自己! 还有明天再加上rbca权限管理系统就完美了! 然后crm做完,再过几天不挂针一切好了也 ...
- 10.22crm
2018-10-23 08:28:41 由于昨晚上断网,所以今天早上补更一下 越努力,越幸运!永远不要高估自己! crm老师就讲三四天,还有明后两天! 主要是讲一些基本使用,自定义配置陪一些东西! 主 ...
- es7 class装饰器
文档http://es6.ruanyifeng.com/#docs/decorator ts文档 https://www.tslang.cn/docs/handbook/decorators.html ...
- Android热门网络框架Volley详解[申明:来源于网络]
Android热门网络框架Volley详解[申明:来源于网络] 地址:http://www.cnblogs.com/caobotao/p/5071658.html
- shell特殊变量,记录一下
$0 当前脚本的文件名 $n 传递给脚本或函数的参数.n 是一个数字,表示第几个参数.例如,第一个参数是$1,第二个参数是$2. $# 传递给脚本或函数的参数个数. $* 传递给脚本或函数的所有参数. ...
- 洛谷P1029 最小公约数和最大公倍数问题【数论】
题目:https://www.luogu.org/problemnew/show/P1029 题意: 给定两个数$x$和$y$,问能找到多少对数$P$$Q$,使得他们的最小公约数是$x$最大公倍数是$ ...
- 洛谷P3952 时间复杂度【字符串】【模拟】
题目描述 小明正在学习一种新的编程语言 A++,刚学会循环语句的他激动地写了好多程序并 给出了他自己算出的时间复杂度,可他的编程老师实在不想一个一个检查小明的程序, 于是你的机会来啦!下面请你编写程序 ...
- TOP100summit:【分享实录】京东1小时送达的诞生之路
本篇文章内容来自2016年TOP100summit 京东WMS产品负责人李亚曼的案例分享. 编辑:Cynthia 李亚曼:京东 WMS产品负责人.从事电商物流行业近10年,有丰富的物流行业经验,独立打 ...
- HQL之动态分区调整
动态分区插入可以基于查询语句分出出要插入的分区名称.比如,下面向分区表插入数据的SQL: insert into table chavin.emp_pat partition(dname,loc) s ...
- HDMI 接口及CEC信号
HDMI 接口及CEC信号 2016年12月02日 14:16:38 King-Five 阅读数:16389 HDMI接口 HDMI(High Definition Multimedia Interf ...