|
@@ -1,138 +0,0 @@
|
|
|
-
|
|
|
-
|
|
|
-import sys
|
|
|
-from aliyunsdkcore import client
|
|
|
-from aliyunsdkcore.client import AcsClient
|
|
|
-from aliyunsdkcore.request import CommonRequest
|
|
|
-from aliyunsdkecs.request.v20140526.DescribeInstancesRequest import DescribeInstancesRequest
|
|
|
-from aliyunsdkslb.request.v20140515.DescribeLoadBalancerAttributeRequest import DescribeLoadBalancerAttributeRequest
|
|
|
-import json
|
|
|
-import socket
|
|
|
-import time
|
|
|
-
|
|
|
-AccessKey = 'LTAIuPbTPL3LDDKN'
|
|
|
-AccessSecret = 'ORcNedKwWuwVtcq4IRFtUDZgS0b1le'
|
|
|
-RegionId = 'cn-hangzhou'
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-SlbId = 'lb-bp1d6hp2ctotgt870miav'
|
|
|
-
|
|
|
-clt = client.AcsClient (AccessKey, AccessSecret, RegionId)
|
|
|
-Host = socket.gethostname ()
|
|
|
-
|
|
|
-
|
|
|
-exit = -1
|
|
|
-def setServerWeight(BackendServers):
|
|
|
- request = CommonRequest ()
|
|
|
- request.set_accept_format ('json')
|
|
|
- request.set_domain ('slb.aliyuncs.com')
|
|
|
- request.set_version ('2014-05-15')
|
|
|
- request.set_method ('POST')
|
|
|
- request.set_action_name ('SetBackendServers')
|
|
|
- request.add_query_param ('BackendServers', BackendServers)
|
|
|
- request.add_query_param ('LoadBalancerId', SlbId)
|
|
|
-
|
|
|
- response = clt.do_action (request)
|
|
|
- return json.loads (response)
|
|
|
-
|
|
|
-
|
|
|
-def get_host_ip():
|
|
|
- """
|
|
|
- 查询本机ip地址
|
|
|
- :return: ip
|
|
|
- """
|
|
|
- try:
|
|
|
- s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
|
|
- s.connect(('8.8.8.8', 80))
|
|
|
- ip = s.getsockname()[0]
|
|
|
-
|
|
|
- finally:
|
|
|
- s.close()
|
|
|
- return ip
|
|
|
-
|
|
|
-
|
|
|
-def query_slb(instance_id):
|
|
|
- global exit
|
|
|
- request = DescribeLoadBalancerAttributeRequest ()
|
|
|
- request.set_accept_format ('json')
|
|
|
- request.set_LoadBalancerId (SlbId)
|
|
|
- times = 0
|
|
|
- while times < 300:
|
|
|
- try:
|
|
|
- response = clt.do_action_with_exception (request)
|
|
|
- res_result = json.loads(response)
|
|
|
-
|
|
|
- if res_result["BackendServers"]["BackendServer"]:
|
|
|
- for i in range(len(res_result["BackendServers"]["BackendServer"])):
|
|
|
- slb_instance_id = res_result["BackendServers"]["BackendServer"][i]["ServerId"]
|
|
|
- if instance_id == slb_instance_id :
|
|
|
- print("服务器已经挂载")
|
|
|
- exit = 1
|
|
|
- if exit == 1:
|
|
|
- break
|
|
|
- time.sleep(2)
|
|
|
- times += 1
|
|
|
- except Exception as e:
|
|
|
- print(e)
|
|
|
- print("负载均衡信息获取失败")
|
|
|
-
|
|
|
- return res_result
|
|
|
-
|
|
|
-
|
|
|
-if __name__ == "__main__":
|
|
|
-
|
|
|
- ip = get_host_ip()
|
|
|
-
|
|
|
-
|
|
|
- ip_add = []
|
|
|
- ip_add.append(ip)
|
|
|
- request = DescribeInstancesRequest ()
|
|
|
- request.set_PrivateIpAddresses (ip_add)
|
|
|
- response = clt.do_action_with_exception (request)
|
|
|
-
|
|
|
- result = json.loads(response)
|
|
|
- instance_id = result["Instances"]["Instance"][0]["InstanceId"]
|
|
|
- print(instance_id)
|
|
|
- back_servers = [{"ServerId": '', "Weight": ''}]
|
|
|
- back_servers[0]["ServerId"] = instance_id
|
|
|
- query_slb (instance_id)
|
|
|
- print(exit)
|
|
|
-
|
|
|
-
|
|
|
- if exit == 1 :
|
|
|
- weight = 20
|
|
|
- while weight <= 100:
|
|
|
- back_servers[0]["Weight"] = weight
|
|
|
- print(back_servers)
|
|
|
- try:
|
|
|
- res_slb = setServerWeight ( back_servers)
|
|
|
- request = DescribeLoadBalancerAttributeRequest ()
|
|
|
- request.set_accept_format ('json')
|
|
|
- request.set_LoadBalancerId (SlbId)
|
|
|
- response = clt.do_action_with_exception (request)
|
|
|
- res_result = json.loads (response)
|
|
|
-
|
|
|
- if res_result["BackendServers"]["BackendServer"]:
|
|
|
- for i in range (len (res_result["BackendServers"]["BackendServer"])):
|
|
|
- slb_instance_id = res_result["BackendServers"]["BackendServer"][i]["ServerId"]
|
|
|
- if instance_id == slb_instance_id:
|
|
|
- weight_now = res_result["BackendServers"]["BackendServer"][i]["Weight"]
|
|
|
- print (weight_now)
|
|
|
- if weight == weight_now :
|
|
|
- print("权重修改成功")
|
|
|
- else:
|
|
|
- print("权重修改失败,重试.......")
|
|
|
- res_slb = setServerWeight (back_servers)
|
|
|
- print(res_slb["BackendServers"]["BackendServer"])
|
|
|
- except:
|
|
|
- print("负载均衡权重修改失败")
|
|
|
- weight += 20
|
|
|
- time.sleep(10)
|
|
|
- else:
|
|
|
- print("服务器未挂载,请尽快查看具体情况")
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|