如何在输出中使用 ARM 模板在部署后列出 Azure VM 或 HDI 集群的 IP
How to list IP of Azure VM or HDI cluster after deployment using ARM template in the output
我已经创建了 ARM 模板来部署 Azure VM 和 HDI 集群。我想在部署完成后获取并列出 Azure VM 的 Public IP 和 HDI 集群头节点的专用 IP。
有没有办法使用 ARM 模板获取它?
Is there a way to get it using ARM template?
据我所知,您无法使用 template.You 获取 VM IP,可以使用 azure cli
获取您的 VM IP 而不是模板。如果您的客户端 Linux,您可以在创建 VM 后使用以下命令。
azure vm show -g shui123 -n shui|grep "Public IP address"| awk -F: '{print }'
I want to get and list the Public IP of Azure VM and Private IP of HDI
cluster headnode after deployment is finished.
Public Azure VM 的 IP 是什么意思?只是 VM 还是 HDI 集群中的 VM?
如果只是一个虚拟机,可以使用上面的命令,如果是HDI集群中的虚拟机,Azure HDInsight集群将不允许分配任何public IP给它。如果需要将 IP 分配给 HDInsight 群集,则必须在 VNET 中创建 HDInsight。下面的文章确实谈到了 this.
您可以通过 Ambari RE ST AP I 获取 HDI 集群 IP。
for HOSTNAME in $(curl -u admin:$PASSWORD -sS -G "https://shuitest.azurehdinsight.net/api/v1/clusters/shuitest/hosts" | jq -r '.items[].Hosts.host_name')
do
IP=$(curl -u admin:$PASSWORD -sS -G "https://$CLUSTERNAME.azurehdinsight.net/api/v1/clusters/$CLUSTERNAME/hosts/$HOSTNAME" | jq -r '.Hosts.ip')
echo "$HOSTNAME <--> $IP"
done
更多关于Ambari RE ST AP 的信息请参考这个link。
更新:
如果只想列出活动节点IP,可以使用以下命令。
PASSWORD=
CLUSTERNAME=
curl -u admin:$PASSWORD -sS -G "https://$CLUSTERNAME.azurehdinsight.net/api/v1/clusters/$CLUSTERNAME/services/HDFS/components/NAMENODE" |grep LiveNode>test.txt
cat test.txt |awk -F'\' '{print }'|sed 's/\"//g'|tail -1|awk -F: '{print }'
对于所提问题,上述解决方案很好。但是,理想情况下,您不应使用 HDI 集群头节点的专用 IP。这是因为如果头节点(运行 所在的虚拟机)出现故障,私有 IP 会发生变化。头节点有一个 FQDN(完全限定域名)的概念,类似于:hn0-van.0owcbllr5hze3hxdja3mqlrhhe.ex.internal.cloudapp.net
和 hn1-van.0owcbllr5hze3hxdja3mqlrhhe.ex.internal.cloudapp.net
。在任何地方都使用这些 FQDN 代替 IP 地址。它们的 DNS 解析由 Azure vnet 默认 DNS 解析器自动处理。所以不用担心。
获取 FQDN:
az network nic list --resource-group <RESOURCEGROUP>
将 替换为您的资源组名称。检查头节点的 FQDN 设置。
一旦有时间,我将post PowerShell 脚本直接为头节点获取准确的 FQDN。
参考:https://docs.microsoft.com/en-us/azure/hdinsight/hdinsight-plan-virtual-network-deployment#multinet
我已经创建了 ARM 模板来部署 Azure VM 和 HDI 集群。我想在部署完成后获取并列出 Azure VM 的 Public IP 和 HDI 集群头节点的专用 IP。
有没有办法使用 ARM 模板获取它?
Is there a way to get it using ARM template?
据我所知,您无法使用 template.You 获取 VM IP,可以使用 azure cli
获取您的 VM IP 而不是模板。如果您的客户端 Linux,您可以在创建 VM 后使用以下命令。
azure vm show -g shui123 -n shui|grep "Public IP address"| awk -F: '{print }'
I want to get and list the Public IP of Azure VM and Private IP of HDI cluster headnode after deployment is finished.
Public Azure VM 的 IP 是什么意思?只是 VM 还是 HDI 集群中的 VM?
如果只是一个虚拟机,可以使用上面的命令,如果是HDI集群中的虚拟机,Azure HDInsight集群将不允许分配任何public IP给它。如果需要将 IP 分配给 HDInsight 群集,则必须在 VNET 中创建 HDInsight。下面的文章确实谈到了 this.
您可以通过 Ambari RE ST AP I 获取 HDI 集群 IP。
for HOSTNAME in $(curl -u admin:$PASSWORD -sS -G "https://shuitest.azurehdinsight.net/api/v1/clusters/shuitest/hosts" | jq -r '.items[].Hosts.host_name')
do
IP=$(curl -u admin:$PASSWORD -sS -G "https://$CLUSTERNAME.azurehdinsight.net/api/v1/clusters/$CLUSTERNAME/hosts/$HOSTNAME" | jq -r '.Hosts.ip')
echo "$HOSTNAME <--> $IP"
done
更多关于Ambari RE ST AP 的信息请参考这个link。
更新:
如果只想列出活动节点IP,可以使用以下命令。
PASSWORD=
CLUSTERNAME=
curl -u admin:$PASSWORD -sS -G "https://$CLUSTERNAME.azurehdinsight.net/api/v1/clusters/$CLUSTERNAME/services/HDFS/components/NAMENODE" |grep LiveNode>test.txt
cat test.txt |awk -F'\' '{print }'|sed 's/\"//g'|tail -1|awk -F: '{print }'
对于所提问题,上述解决方案很好。但是,理想情况下,您不应使用 HDI 集群头节点的专用 IP。这是因为如果头节点(运行 所在的虚拟机)出现故障,私有 IP 会发生变化。头节点有一个 FQDN(完全限定域名)的概念,类似于:hn0-van.0owcbllr5hze3hxdja3mqlrhhe.ex.internal.cloudapp.net
和 hn1-van.0owcbllr5hze3hxdja3mqlrhhe.ex.internal.cloudapp.net
。在任何地方都使用这些 FQDN 代替 IP 地址。它们的 DNS 解析由 Azure vnet 默认 DNS 解析器自动处理。所以不用担心。
获取 FQDN:
az network nic list --resource-group <RESOURCEGROUP>
将 替换为您的资源组名称。检查头节点的 FQDN 设置。
一旦有时间,我将post PowerShell 脚本直接为头节点获取准确的 FQDN。
参考:https://docs.microsoft.com/en-us/azure/hdinsight/hdinsight-plan-virtual-network-deployment#multinet