首先安装阿里云SDK
pip install aliyun-python-sdk-core
pip install aliyun-python-sdk-alidns
可以配合jenkins传递参数
#!/usr/bin/python3# -*- coding: utf-8 -*-# @Time : 2018/1/24 0024 13:42# @Author : sanmuyan# @FileName: aliyun_domain_des.pyimport json,jsonpath,osfrom aliyunsdkcore.client import AcsClientfrom aliyunsdkcore.acs_exception.exceptions import ClientExceptionfrom aliyunsdkcore.acs_exception.exceptions import ServerExceptionfrom aliyunsdkalidns.request.v20150109 import DescribeDomainRecordsRequestfrom aliyunsdkalidns.request.v20150109 import AddDomainRecordRequestfrom aliyunsdkalidns.request.v20150109 import DeleteDomainRecordRequestfrom aliyunsdkalidns.request.v20150109 import DescribeDomainRecordInfoRequestAccessKey = os.environ.get('AccessKey')Secret = os.environ.get('Secret')Regions = os.environ.get('Regions')# 创建 AcsClient 实例client = AcsClient( AccessKey, Secret, Regions);def dns_des(RecordId): request = DescribeDomainRecordInfoRequest.DescribeDomainRecordInfoRequest() request.set_RecordId(RecordId) response = client.do_action_with_exception(request) data = json.loads(response) data = json.dumps(data, sort_keys=True, indent=2) print(data)def dns_del(DomainName, RR): request = DescribeDomainRecordsRequest.DescribeDomainRecordsRequest() request.set_DomainName(DomainName) request.set_RRKeyWord(RR) response = client.do_action_with_exception(request) data = json.loads(response) TotalCount = jsonpath.jsonpath(data,"$..TotalCount") if TotalCount[0] != 0: data1 = jsonpath.jsonpath(data,"$..RR") data2 = jsonpath.jsonpath(data,"$..RecordId") if RR in data1: index = data1.index(RR) RecordId = data2[index] print("WARNING: Delete the existing records") dns_des(RecordId) request = DeleteDomainRecordRequest.DeleteDomainRecordRequest() request.set_RecordId(RecordId) response = client.do_action_with_exception(request) return responsedef dns_add(DomainName, RR, Type, Value): dns_del(DomainName, RR) request = AddDomainRecordRequest.AddDomainRecordRequest() request.set_DomainName(DomainName) request.set_RR(RR) request.set_Type(Type) request.set_Value(Value) response = client.do_action_with_exception(request) data = json.loads(response) print("INFO: Record adding success") RecordId = (data['RecordId']) dns_des(RecordId)if __name__ == '__main__': DomainName = os.environ.get('DomainName') RR = os.environ.get('RR') Type = os.environ.get('Type') Value = os.environ.get('Value') dns_add(DomainName, RR, Type, Value)