Boto Route53或Area 53 - 如何将多个IP地址添加到子域

时间:2012-07-01 22:11:59

标签: python dns boto amazon-route53

我正在尝试在路由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地址?

由于

2 个答案:

答案 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