在 Azure RM 中获取 OS VM 映像类型
Get OS Type of an VM Image in azure RM
根据this我们可以在AzureRM Cloud中得到offer、publisher和Sku。
现在如何使用 azure 中的任何 API 获取图像的 OS 类型(Windows 或 Linux)?因为使用this我只能获取Publisher, offer和sku详情,无法获取OS类型。
我的问题是如何以编程方式获取任何图像的 OS 类型?
您可以使用 Azure CLi 2.0 获得 OS 类型。
使用az vm image show
,例如:
latest=$(az vm image list -p OpenLogic -s 7.3 --all --query "[?offer=='CentOS'].version" -o tsv | sort -u | tail -n 1)
az vm image show -l westus -f CentOS -p OpenLogic --s 7.3 --version ${latest}
它将return结果如下
{
"additionalProperties": {},
"dataDiskImages": [],
"id": "/Subscriptions/*************/Providers/Microsoft.Compute/Locations/westus/Publishers/OpenLogic/ArtifactTypes/VMImage/Offers/CentOS/Skus/7.3/Versions/7.3.20170925",
"location": "westus",
"name": "7.3.20170925",
"osDiskImage": {
"additionalProperties": {},
"operatingSystem": "Linux"
},
"plan": null,
"tags": null
}
注意:operatingSystem
就是你想要的OS类型。该示例适用于 bash shell.
如果你使用az vm image show -l westus -f CentOS -p OpenLogic --s 7.3 --version ${latest} --debug
,你会发现API可以获得OS类型。
GET https://management.azure.com/subscriptions/{subscription id}/providers/Microsoft.Compute/locations/westus/publishers/OpenLogic/artifacttypes/vmimage/offers/CentOS/skus/7.3/versions/7.3.20170925?api-version=2017-12-01
根据this我们可以在AzureRM Cloud中得到offer、publisher和Sku。
现在如何使用 azure 中的任何 API 获取图像的 OS 类型(Windows 或 Linux)?因为使用this我只能获取Publisher, offer和sku详情,无法获取OS类型。
我的问题是如何以编程方式获取任何图像的 OS 类型?
您可以使用 Azure CLi 2.0 获得 OS 类型。
使用az vm image show
,例如:
latest=$(az vm image list -p OpenLogic -s 7.3 --all --query "[?offer=='CentOS'].version" -o tsv | sort -u | tail -n 1)
az vm image show -l westus -f CentOS -p OpenLogic --s 7.3 --version ${latest}
它将return结果如下
{
"additionalProperties": {},
"dataDiskImages": [],
"id": "/Subscriptions/*************/Providers/Microsoft.Compute/Locations/westus/Publishers/OpenLogic/ArtifactTypes/VMImage/Offers/CentOS/Skus/7.3/Versions/7.3.20170925",
"location": "westus",
"name": "7.3.20170925",
"osDiskImage": {
"additionalProperties": {},
"operatingSystem": "Linux"
},
"plan": null,
"tags": null
}
注意:operatingSystem
就是你想要的OS类型。该示例适用于 bash shell.
如果你使用az vm image show -l westus -f CentOS -p OpenLogic --s 7.3 --version ${latest} --debug
,你会发现API可以获得OS类型。
GET https://management.azure.com/subscriptions/{subscription id}/providers/Microsoft.Compute/locations/westus/publishers/OpenLogic/artifacttypes/vmimage/offers/CentOS/skus/7.3/versions/7.3.20170925?api-version=2017-12-01