Authored by root

确保ttl参数值保持不变以及添加YES确认

1 --- 1 ---
2 2
3 - hosts: localhost 3 - hosts: localhost
  4 +
  5 + vars_prompt:
  6 + - name: "confirmation"
  7 + prompt: "Modify DNS record . Please Enter YES to continue."
  8 + private: no
  9 +
4 vars_files: 10 vars_files:
5 - extra_vars/all.yml 11 - extra_vars/all.yml
  12 +
6 vars: 13 vars:
7 qcloud_key: "{{ lookup('hashi_vault', 'secret=yoho/ops/qcloud token='+'{{vault.token}}'+' url='+'{{vault.server}}') }}" 14 qcloud_key: "{{ lookup('hashi_vault', 'secret=yoho/ops/qcloud token='+'{{vault.token}}'+' url='+'{{vault.server}}') }}"
  15 +
8 tasks: 16 tasks:
  17 + - name: "make sure user type YES to confirm"
  18 + fail:
  19 + msg: "user do not type YES"
  20 + when: confirmation != 'YES'
  21 +
9 - name: 修改域名映射的IP或CNAME 22 - name: 修改域名映射的IP或CNAME
10 domain_modify: 23 domain_modify:
11 secretId: "{{ qcloud_key.SecretId }}" 24 secretId: "{{ qcloud_key.SecretId }}"
12 secretKey: "{{ qcloud_key.SecretKey }}" 25 secretKey: "{{ qcloud_key.SecretKey }}"
13 domain_name: "www.yohotest.xyz" 26 domain_name: "www.yohotest.xyz"
14 #value: "java-public-lb-862332839.cn-north-1.elb.amazonaws.com.cn" 27 #value: "java-public-lb-862332839.cn-north-1.elb.amazonaws.com.cn"
15 - value: '1.1.1.1' 28 + value: '1.11.11.22'
@@ -67,6 +67,8 @@ def dns_inqure(SecretId,SecretKey,domain_name,value): @@ -67,6 +67,8 @@ def dns_inqure(SecretId,SecretKey,domain_name,value):
67 ret["recordType_old"] = lines["type"] 67 ret["recordType_old"] = lines["type"]
68 ret["recordType_new"] = recordType 68 ret["recordType_new"] = recordType
69 ret["recordLine"] = lines["line"] 69 ret["recordLine"] = lines["line"]
  70 + ret["ttl"] = lines["ttl"]
  71 + #ret["mx"] = lines["mx"]
70 ret["code"] = 0 72 ret["code"] = 0
71 break 73 break
72 else: 74 else:
@@ -86,12 +88,12 @@ def dns_inqure(SecretId,SecretKey,domain_name,value): @@ -86,12 +88,12 @@ def dns_inqure(SecretId,SecretKey,domain_name,value):
86 ''' 88 '''
87 通过调用接口RecordModify修改域名解析记录 89 通过调用接口RecordModify修改域名解析记录
88 ''' 90 '''
89 -def dns_modify(SecretId,SecretKey,domain_name,value,subDomain,domain,recordType,recordId,recordLine): 91 +def dns_modify(SecretId,SecretKey,domain_name,value,subDomain,domain,recordType,recordId,recordLine,ttl):
90 ret = {} 92 ret = {}
91 # 调用域名解析接口RecordModify修改域名解析记录 93 # 调用域名解析接口RecordModify修改域名解析记录
92 try: 94 try:
93 domain_modify_api = QcloudApi(secretId=SecretId,secretKey=SecretKey) 95 domain_modify_api = QcloudApi(secretId=SecretId,secretKey=SecretKey)
94 - dns_info = domain_modify_api.do_query(params={'Action':'RecordModify','domain':domain,'recordId':recordId,'subDomain':subDomain,'recordType':recordType,'recordLine':recordLine,'value':value}) 96 + dns_info = domain_modify_api.do_query(params={'Action':'RecordModify','domain':domain,'recordId':recordId,'subDomain':subDomain,'recordType':recordType,'recordLine':recordLine,'value':value,'ttl':ttl})
95 ret["code"] = dns_info["code"] 97 ret["code"] = dns_info["code"]
96 ret["err"] = dns_info['message'] 98 ret["err"] = dns_info['message']
97 except Exception,e: 99 except Exception,e:
@@ -144,7 +146,7 @@ def run_module(): @@ -144,7 +146,7 @@ def run_module():
144 module.exit_json(**result) 146 module.exit_json(**result)
145 # 非check模式下执行修改接口 执行语句:ansible-playbook playbooks/domain.modify.yml 147 # 非check模式下执行修改接口 执行语句:ansible-playbook playbooks/domain.modify.yml
146 else: 148 else:
147 - modify_result = dns_modify(secretId,secretKey,domain_name, value,ret["subDomain"],ret["domain"],ret["recordType_new"],ret["recordId"],ret["recordLine"]) 149 + modify_result = dns_modify(secretId,secretKey,domain_name, value,ret["subDomain"],ret["domain"],ret["recordType_new"],ret["recordId"],ret["recordLine"],ret["ttl"])
148 if modify_result['code'] != 0: 150 if modify_result['code'] != 0:
149 module.fail_json(msg='Modify Failed: code: %i, err: %s' % (modify_result['code'], modify_result['err']), **result) 151 module.fail_json(msg='Modify Failed: code: %i, err: %s' % (modify_result['code'], modify_result['err']), **result)
150 result['changed'] = True 152 result['changed'] = True