我正在尝试在路由54中的子域下添加多个IP地址。它足够用户界面,并且很容易使用area54或boto添加一个IP地址。
e.g. master.hui.com
10.130.149.247
10.130.149.248
使用area54
ipaddress = '10.130.149.247'
entry = 'master.hui.com'
zone = route53.get_zone('hui.com')
add_dns = zone.add_record('A',entry, [ipaddress], ttl='60')
在博托:
conn = Route53Connection(aws_access_key_id, aws_secret_access_key)
changes = ResourceRecordSets(conn, zone_id)
change = changes.add_change("CREATE",sub_domain, "A", 60)
change.add_value(ip_address)
那么......如何使用area53或boto在子域下添加两个或更多个ip地址?
由于
答案 0 :(得分:2)
您需要使用WRR。从boto CLI:
route53 add_record Z1J8BS4AFAKE12 foo.example.com. A 1.2.3.4 60 first 1
route53 add_record Z1J8BS4AFAKE12 foo.example.com. A 5.6.7.8 60 second 2
或来自API:
change.add_change("CREATE", 'foo', 'A', ttl=60, weight=1, identifier='first')
change.add_change("CREATE", 'foo', 'A', ttl=60, weight=2, identifier='second')
请参阅http://docs.amazonwebservices.com/Route53/latest/DeveloperGuide/WeightedResourceRecordSets.html
最后,您所谓的“子域”是“资源记录”。 “sub domain”表示当您将此问题发送到boto-users邮件列表时让我感到困惑的区域。
答案 1 :(得分:2)
原始问题和接受的答案非常好,但也许boto的界面已经改变,因为在做同样的事情时我遇到了一些问题或细节。
如果您想使用boto添加一个或多个加权DNS,代码将是(请注意我使用的是CNAME记录而不是A记录):
conn = Route53Connection(aws_access_key_id, aws_secret_access_key)
rrs = ResourceRecordSets(conn, zone_id, comment='for posterity')
change = rrs.add_change('CREATE', fqdn, 'CNAME', ttl=60, identifier='unique', weight=1)
change.add_value(where_the_DNS_should_point_to)
try:
status = rrs.commit()
except DNSServerError:
# something went wrong, handle it as you please
pass
# here you should wait until status is no longer PENDING
为了完整起见,这是删除相同记录的最简单方法:
conn = Route53Connection(aws_access_key_id, aws_secret_access_key)
zone = conn.get_zone(your_zone_name)
rr = zone.find_records(fqdn, 'CNAME', identifier=('unique', '1'))
# check here that rr is not None
status = zone.delete_record(rr, comment='for posterity')
# here you should wait until status is no longer PENDING