在 Azure 中查找给定 VM/instance 的故障域
Find Fault Domain for given VM/instance in Azure
我有一个通过 Terraform 在 Azure 中配置的规模集。
(规模集是具有 5 个故障域和 5 个更新域的隐式可用性集。[[1]])
我需要找出每个实例所在的故障域,以便我可以基于此配置我的应用程序集群,以提高冗余度。
到目前为止,我只发现一个 post 远程解决这个问题enter link description here。
更多上下文:
- 如果绝对没有其他方法,我可以切换到常规 VM 而不是规模集。
- 我使用 ansible 的动态清单 (azure_rm.py),我已经对其进行了自定义以使用规模集。如果解决方案可以利用这一点,额外的荣誉:)
- 我的应用程序允许我定义拓扑(数据中心、机架等),我将它部署在单个 Azure 数据中心。也许我错过了不同的解决方案?
非常感谢,
–杰夫
我已经使用 169.254.169.254 'virtual IP' 解决了这个问题,它允许虚拟机读取它自己的元数据。
具体来说,我是运行:
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 变量可用。
我有一个通过 Terraform 在 Azure 中配置的规模集。
(规模集是具有 5 个故障域和 5 个更新域的隐式可用性集。[[1]])
我需要找出每个实例所在的故障域,以便我可以基于此配置我的应用程序集群,以提高冗余度。
到目前为止,我只发现一个 post 远程解决这个问题enter link description here。
更多上下文:
- 如果绝对没有其他方法,我可以切换到常规 VM 而不是规模集。
- 我使用 ansible 的动态清单 (azure_rm.py),我已经对其进行了自定义以使用规模集。如果解决方案可以利用这一点,额外的荣誉:)
- 我的应用程序允许我定义拓扑(数据中心、机架等),我将它部署在单个 Azure 数据中心。也许我错过了不同的解决方案?
非常感谢, –杰夫
我已经使用 169.254.169.254 'virtual IP' 解决了这个问题,它允许虚拟机读取它自己的元数据。
具体来说,我是运行:
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 变量可用。