0

我通过 Terraform 在 Azure 中预配了一个规模集。
(规模集是具有 5 个故障域和 5 个更新域的隐式可用性集。[[1]])

我需要找出每个实例所在的故障域,以便我可以基于此配置我的应用程序集群,以提高冗余度。

到目前为止,我只发现了一篇远程解决此输入链接描述的帖子。

更多背景:

  • 如果绝对没有其他方法,我可以切换到常规 VM 而不是规模集。
  • 我使用 ansible 的动态清单 (azure_rm.py),我已经对其进行了自定义以与 Scale Sets 一起使用。如果解决方案可以利用这一点,额外的荣誉:)
  • 我的应用程序允许我定义拓扑(数据中心、机架等),并且我将其部署在单个 Azure 数据中心中。也许我错过了不同的解决方案?

非常感谢,-杰夫

4

1 回答 1

0

我已经通过使用 169.254.169.254 '虚拟 IP' 解决了这个问题,它允许虚拟机读取自己的元数据。

具体来说,我正在运行:

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

在 Ansible 任务中,然后使用 Ansible 的本地事实将其作为主机上的 Ansible 变量提供。

于 2017-11-07T14:09:45.850 回答