2017-04-04 33 views

回答

2

有没有办法使用ARM模板,怎么做呢?

根据我的知识,您无法通过template获取VM IP。您可以使用azure cli来获取您的VM IP而不是模板。如果您在Linux上使用cli,则可以在创建虚拟机后使用以下命令。

azure vm show -g shui123 -n shui|grep "Public IP address"| awk -F: '{print $3}' 

我想和部署完成后列出HDI的天青VM的公共IP和私有IP 集群headnode。

Azure的VM的公网IP,你是什么意思? HDI集群中只有VM还是虚拟机?

如果它只是一个虚拟机,你可以使用上面的命令,如果它是在虚拟机集群HDI,Azure的HDInsight群集将不会允许任何公开的IP被分配给它。如果您需要将IP分配给HDInsight群集,则必须在VNET中创建HDInsight。下面的文章确实谈到了this

你可以得到与Ambari RE ST AP一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 I的更多信息请参阅此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 $2}'|sed 's/\"//g'|tail -1|awk -F: '{print $1}' 
+0

您可以使用grep“^ hn”列出头节点私有IP –

+0

我可以使用第一个命令获取VM IP。我在哪里必须使用grep“hn”来头节点私有IP? – karan

+0

您可以修改脚本'echo“$ HOSTNAME <--> $ IP”> test.txt''cat test.txt | grep“^ hn”' –

相关问题