首先安装阿里云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信息 更换证书的更多相关文章

  1. python 获取对象信息

    当我们拿到一个对象的引用时,如何知道这个对象是什么类型.有哪些方法呢? 使用type() 首先,我们来判断对象类型,使用type()函数: 基本类型都可以用type()判断: >>> ...

  2. Python 获取车票信息

    提示:该代码仅供学习使用,切勿滥用!!! 先来一个git地址:https://gitee.com/wang_li/li_wang 效果图: 逻辑: 1.获取Json文件的内容 2.根据信息生成URL ...

  3. 用python获取服务器硬件信息[转]

    #!/usr/bin/env python # -*- coding: utf-8 -*- import rlcompleter, readline readline.parse_and_bind(' ...

  4. 用python获取ip信息

    1.138网站 http://user.ip138.com/ip/首次注册后赠送1000次请求,API接口请求格式如下,必须要有token值 import httplib2 from urllib.p ...

  5. python获取对象信息

    获取对象信息 拿到一个变量,除了用 isinstance() 判断它是否是某种类型的实例外,还有没有别的方法获取到更多的信息呢? 例如,已有定义: class Person(object): def ...

  6. python获取机器信息脚本(网上寻找的)

    获取机器信息(待测试) # -*- coding: UTF-8 -*- import psutil import json import os import socket import struct ...

  7. python获取的信息列表微信公共平台和用户头像

    转载注明原文地址:http://blog.csdn.net/btyh17mxy/article/details/25207889 只写模拟登陆的方式获取微信从信息和头像库列表公共平台, - 相关后,功 ...

  8. 关于Python 获取windows信息收集

    收集一些Python操作windows的代码 (不管是自带的or第三方库)均来自网上 1.shutdown 操作 定时关机.重启.注销 #!/usr/bin/python #-*-coding:utf ...

  9. Python - 获取帮助信息

    1- Python Manuals 自带CHM格式的Python Manuals存放在\Python<x.x>\Doc\目录下.可以在IDLE界面下按F1键或点击help选项下Python ...

随机推荐

  1. Spark Gradient-boosted trees (GBTs)梯度提升树

    梯度提升树(GBT)是决策树的集合. GBT迭代地训练决策树以便使损失函数最小化. spark.ml实现支持GBT用于二进制分类和回归,可以使用连续和分类特征. 导入包 import org.apac ...

  2. HashMap TreeMap ConcurrentHashMap

    1 HashMap java se 1.6 1.1 父类 java.lang.Object 继承者 java.util.AbstractMap<K,V> 继承者 java.util.Has ...

  3. 网络通信协议六之IP地址和MAC地址特征分析

    逻辑地址和物理地址 >>逻辑地址:工作在网络层,也叫IP地址,①具有全局唯一性②用软件实现③32位 10.1.0.6 -——>00001010.00000001.00000000.0 ...

  4. 记一次 mysql 启动没反应

    记一次 mysql 启动没反应 ,重启linux又可以启动 vim /var/log/mysqld.log 2018-02-04 13:22:49 28507 [ERROR] InnoDB: Cann ...

  5. 命令配置linux分辨率

    1. xrandr 使用该命令列举系统支持的分辨率 2. xrandr -s 回复原来的分辨率 3. xrandr -s 1360x768 设置分辨率   如果分辨率没能锁定,请在根目录使用gedit ...

  6. CH 1401 - 兔子与兔子 - [字符串hash]

    题目链接:传送门 描述 很久很久以前,森林里住着一群兔子.有一天,兔子们想要研究自己的 DNA 序列.我们首先选取一个好长好长的 DNA 序列(小兔子是外星生物,DNA 序列可能包含 26 个小写英文 ...

  7. hbase本地模式-安装及基本测试

    解压缩hbase二进制安装文件到/opt目录下: #tar -zxvf hbase-0.98.6-cdh5.3.6.tar.gz -C /opt/cdh-5.3.6/ 编辑配置文件,这里仅配置数据目录 ...

  8. 解决sudo: npm: command not found

    sudo ln -s /opt/node-v11.4.0/bin/npm /usr/bin/npm sudo ln -s /opt/node-v11.4.0/bin/node /usr/bin/nod ...

  9. beginner’s mistake

    PHP Advanced and Object-Oriented Programming 3rd Edition Related to modularity is abstraction: class ...

  10. elasticsearch ingest node and docker-cluster---quey using sql]

    es-docker-cluster https://stefanprodan.com/2016/elasticsearch-cluster-with-docker/ https://github.co ...