【发布时间】:2018-03-28 20:02:00
【问题描述】:
我需要重新启动 Azure Batch 中的所有节点。我如何使用 Azure CLI 做到这一点?
基本上我如何在 Azure CLI 中迭代 List/Collection 并在该循环中调用命令来停止 VM
【问题讨论】:
标签: azure azure-cli2
我需要重新启动 Azure Batch 中的所有节点。我如何使用 Azure CLI 做到这一点?
基本上我如何在 Azure CLI 中迭代 List/Collection 并在该循环中调用命令来停止 VM
【问题讨论】:
标签: azure azure-cli2
没有一个命令可以做到这一点,但您可以使用脚本重新启动所有节点。如果你使用 bash shell,你可以使用下面的例子:
pools="$(az batch pool list |grep id|awk -F\" '{print $4}')"
for pool in $pools
{
nodes="$(az batch node list --pool-id $name|grep -F "id\":"|awk -F\" '{print $4}')"
for node in $nodes
{
az batch node reboot --node-id $node --pool-id $pool
}
}
如果可以使用 Power Shell,则可以使用
重新启动所有节点Get-AzureBatchComputeNode -PoolId "MyPool" -BatchContext $Context | Restart-AzureBatchComputeNode -BatchContext $Context
有关此的更多信息,请参阅link。
【讨论】:
sed 和awk。是的,也许--query 可以获得价值。但它得到一个json文件。我需要使用jq 再次过滤。您好,如果您是 Azure CLI 开发人员,建议您对其进行优化。