在Azure中查找给定VM /实例的故障域

时间:2017-05-05 15:07:09

标签: azure terraform ansible-inventory azure-availability-set

我有一个通过Terraform在Azure中配置的比例集 (比例集是一个隐含的可用性集,包含5个故障域和5个更新域。[[1]])

我需要找出每个实例所在的Fault Domain,以便我可以根据此配置我的应用程序集群,以提高冗余。

到目前为止,我发现只有一篇文章远程解决了此enter link description here

更多背景信息:

  • 如果绝对没有别的办法,我可以切换到常规虚拟机而不是规模集。
  • 我使用ansible的动态库存(azure_rm.py),我已经定制了它以使用Scale Sets。如果解决方案可以利用这个,额外的赞誉:)
  • 我的应用程序允许我定义拓扑(数据中心,机架等),我将其部署在单个Azure数据中心中。也许我错过了一个不同的解决方案?

非常感谢, -Jeff

1 个答案:

答案 0 :(得分:0)

我通过使用169.254.169.254'虚拟IP'解决了这个问题。这允许can中的VM读取自己的元数据。

具体来说,我正在运行:

curl -H Metadata:true --silent "http://169.254.169.254/metadata/instance/compute/platformFaultDomain?api-version=2017-03-01&format=text"
在Ansible任务中

,然后使用Ansible的local facts将其作为主机上的Ansible变量提供。