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 ...
随机推荐
- NHibernate中Session的处理 线程不安全
NHibernate中Session是线程不安全的,而且每次数据库操作 请求创建Session时对性能有些影响.在Windows应用中可以通过 [ThreadStatic]特性很简单的就可以实现线程安 ...
- 10.22crm
2018-10-23 08:28:41 由于昨晚上断网,所以今天早上补更一下 越努力,越幸运!永远不要高估自己! crm老师就讲三四天,还有明后两天! 主要是讲一些基本使用,自定义配置陪一些东西! 主 ...
- poj1734 Sightseeing trip【最小环】
Sightseeing trip Time Limit: 1000MS Memory Limit: 65536K Total Submissions:8588 Accepted:3224 ...
- iPhone XS 能否经受的起寒冬的考验
我的知乎文章链接: https://zhuanlan.zhihu.com/p/51782644 华北地区近日寒风凛冽,温度骤降,已经进入真正的冬天了,最低温度可以达到零下10度,我们手里的iPhone ...
- python基础①
一. Python 命名规范: 1, 变量量由字⺟母, 数字,下划线搭配组合⽽而成 2, 不不可以⽤用数字开头,更更不不能是全数字 3,不能是pythond的关键字, 这些符号和字⺟母已经 ...
- BZOJ 1150 - 数据备份Backup - [小顶堆][CTSC2007]
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1150 Time Limit: 10 Sec Memory Limit: 162 M De ...
- MySQL获取分组后的TOP 1和TOP N记录-转
有时会碰到一些需求,查询分组后的最大值,最小值所在的整行记录或者分组后的top n行的记录,在一些别的数据库可能有窗口函数可以方面的查出来,但是MySQL没有这些函数,没有直接的方法可以查出来,可通过 ...
- shell之使用cut切割文本文件
我们知道可以通过工具grep或egrep按行筛选记录,这里我们可以通过cut工具对文本按列进行切分,它可以指定定界符,linux下制表符是默认的定界符. #cut -f 2,3 textfile 这个 ...
- C和C指针小记(一)-字符输入,函数,ASCII扩展表
1.连续接收输入字符时 int ch; while(ch != EOF && ch != '\n') ch 为什么被声明为整形,我们不是需要用它来读取字符的嘛? 因为:EOF是一个整形 ...
- In abstract algebra, a congruence relation (or simply congruence) is an equivalence relation on an algebraic structure (such as a group, ring, or vector space) that is compatible with the structure in
https://en.wikipedia.org/wiki/Congruence_relation In abstract algebra, a congruence relation (or sim ...