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 ...
随机推荐
- Linux下的tr编辑器命令详解
通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能.您可以将 tr 看作为 sed 的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符.您也可以用它来除去重复 ...
- Maven本地库_remote.repositories文件
本地库中的包都有一个_remote.repositories文件,示例: #NOTE: This is an Aether internal implementation file, its form ...
- { MySQL基础数据类型}一 介绍 二 数值类型 三 日期类型 四 字符串类型 五 枚举类型与集合类型
MySQL基础数据类型 阅读目录 一 介绍 二 数值类型 三 日期类型 四 字符串类型 五 枚举类型与集合类型 一 介绍 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己 ...
- 用mysql-connector操作MySQL数据库
首先是工具库的安装 pip install mysql-connector 连接数据库 #连接数据库 #常规连接方式 conn = mysql.connector.connect(user=', da ...
- PPT文件分析摘记
将.pptx文件后缀改成.rar,然后解压 ppt文件夹下面是资源 [Content_Types].xml 展示是布局和内容说明的入口xml(显示的页面.页面对应的布局.内容.样式文件的路径),里面 ...
- mac休眠掉电快,更改休眠模式
打开终端输入: $ pmset -g 查看休眠模式 hibernatemode 发现值为3, 这是大多数的设置,如果为0 ,那么休眠时严重掉电, 我们可以改变这个模式: $ sudo pmset -a ...
- 关于ionic2 更新到ionic3 后组件不能用的解决方案
错误代码就不贴出来了,直接上代码吧! 首先在xx.module.ts添加 1.import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; 2.添加 ...
- [knowledge][perl][pcre][sed] sed / PCRE 语法/正则表达式
一直用sed一直没有正经的学过语法,一直一知半解的用着. 因为,它用来perl的语法,要想搞懂,首先要搞懂perl,系统的入个门... 之前,man sed,man了好多次,总是没找到关键内容,今天在 ...
- [development][C] linux 设置线程名称
两个API, 都是linux的. 不是POSIX, 是GNU? 傻傻搞不清楚. 1. pthread_setname_np / pthread_setname_np 2. ptctl 带 PR_GE ...
- python——二分查找算法
从有序列表的候选区data[0:n]开始,通过对待查找的值与候选区中间值的比较,可以使候选区减少一半 二分查找: 在一段数字内,找到中间值,判断要找的值和中间值大小的比较. 如果中间值大一些,则在 ...