2015-12-02 24 views
0

使用ansible,有没有办法找到绑定到实例的子域?子域在亚马逊route53中创建。如何从ec2实例ID中找到`record`?

这样做的原因是我有playbook,它删除了所有具有特定标签的实例。但是,A记录仍然存在,我也想删除它们。

那么如何找到并删除实例对应的A记录呢?

+0

你运行的是什么版本的软件? – helloV

+0

这是OSX上的1.9.4 – Pablo

回答

0

您有2个选项。

如果控制主机或任何其他实例安装了AWS CLI,则可以运行完整的shell命令aws route53 list-resource-record-sets并通过输出循环查找匹配的记录。

Ansible 2.0beta has route53_facts module。通过设置查询来获取记录集:record_sets并循环输出以查找匹配的记录。

+0

使用'uri'模块通过REST API执行'listResourceRecordSets'是否可行?或者stock模块不支持所有的签名? – Pablo

+0

我不认为你知道任何关于签名的东西。您必须手动完成并将其添加到标题中。如果你知道如何去做,你可以试试看。我将编写一个接受参数并返回记录的shell脚本。从这个脚本中调用这个脚本来获取记录。 shell脚本可以使用AWS CLI或REST API来查询和返回记录。 – helloV

0

一旦您终止了EC2实例,将它与Route 53记录关联起来已经太晚了。这是因为一旦实例终止,公共IP地址信息就会丢失。

因此,您需要在终止前或终止过程中执行此操作。

  1. EC2实例终止前,看看它的公有IP地址是什么。
  2. 删除与该IP地址对应的Route 53 A记录。
  3. 终止EC2实例。
+0

就是这一点。 #2 - 如何找到与我的实例相对应的记录?只给IP地址给'route53'模块会产生错误,'record'元素丢失。在'record'元素中应该指定子域名。我所拥有的仅仅是实例事实,而不是我可以给“记录”字段的子域。 – Pablo

+2

您必须扫描路由53记录才能找到与IP地址相匹配的记录。该实例不知道子域。 –

+0

这就是问题 - 如何扫描/ with ansible /? – Pablo