Azure IaaSで利用できるCentOS 7.6のカーネルバージョンの一覧を作りたいけれども手作業は面倒。az vm image listの結果からリソースグループとVMを作ってsshでコマンド実行したら、リソースグループごと削除するスクリプト。queryの使い方など、参考になるかと。
#!/bin/bash
grp_prefix="riodemocentos"
tmplt="res=\$(az group create -l japaneast -g ${grp_prefix}%s)\n ipaddress=\$(az vm create --image %s --size Standard_F4s_v2 -g ${grp_prefix}%s -n ${grp_prefix}%s -o tsv --query publicIpAddress)\n ssh -t -o \"StrictHostKeyChecking no\" \$ipaddress 'uname -r'\n res=\$(az group delete --yes --no-wait -g ${grp_prefix}%s)\n\n"
urns=$(az vm image list --publisher openlogic --all -o tsv --query "[?starts_with(version, '7.6')].urn")
for urn in $urns; do
yyyymmdd=$(echo -n $urn | sed 's/.*\([0-9]\{8\}\)$/\1/')
printf "${tmplt}" ${yyyymmdd} ${urn} ${yyyymmdd} ${yyyymmdd} ${yyyymmdd}
done
実行すると、こういうスクリプトを生成する。そのままパイプでbashに渡しても良いし、リダイレクトしてファイルにしておいても良いかと。
res=$(az group create -l japaneast -g riodemocentos20181219)
ipaddress=$(az vm create --image OpenLogic:CentOS:7.6:7.6.20181219 --size Standard_F4s_v2 -g riodemocentos20181219 -n riodemocentos20181219 -o tsv --query publicIpAddress)
ssh -t -o "StrictHostKeyChecking no" $ipaddress 'uname -r'
res=$(az group delete --yes --no-wait -g riodemocentos20181219)
res=$(az group create -l japaneast -g riodemocentos20190402)
ipaddress=$(az vm create --image OpenLogic:CentOS:7.6:7.6.20190402 --size Standard_F4s_v2 -g riodemocentos20190402 -n riodemocentos20190402 -o tsv --query publicIpAddress)
ssh -t -o "StrictHostKeyChecking no" $ipaddress 'uname -r'
res=$(az group delete --yes --no-wait -g riodemocentos20190402)
res=$(az group create -l japaneast -g riodemocentos20190708)
ipaddress=$(az vm create --image OpenLogic:CentOS:7.6:7.6.20190708 --size Standard_F4s_v2 -g riodemocentos20190708 -n riodemocentos20190708 -o tsv --query publicIpAddress)
ssh -t -o "StrictHostKeyChecking no" $ipaddress 'uname -r'
res=$(az group delete --yes --no-wait -g riodemocentos20190708)
res=$(az group create -l japaneast -g riodemocentos20190306)
ipaddress=$(az vm create --image OpenLogic:CentOS-CI:7-CI:7.6.20190306 --size Standard_F4s_v2 -g riodemocentos20190306 -n riodemocentos20190306 -o tsv --query publicIpAddress)
ssh -t -o "StrictHostKeyChecking no" $ipaddress 'uname -r'
res=$(az group delete --yes --no-wait -g riodemocentos20190306)
res=$(az group create -l japaneast -g riodemocentos20190426)
ipaddress=$(az vm create --image OpenLogic:CentOS-CI:7-CI:7.6.20190426 --size Standard_F4s_v2 -g riodemocentos20190426 -n riodemocentos20190426 -o tsv --query publicIpAddress)
ssh -t -o "StrictHostKeyChecking no" $ipaddress 'uname -r'
res=$(az group delete --yes --no-wait -g riodemocentos20190426)
res=$(az group create -l japaneast -g riodemocentos20190327)
ipaddress=$(az vm create --image OpenLogic:CentOS-HPC:7.6:7.6.20190327 --size Standard_F4s_v2 -g riodemocentos20190327 -n riodemocentos20190327 -o tsv --query publicIpAddress)
ssh -t -o "StrictHostKeyChecking no" $ipaddress 'uname -r'
res=$(az group delete --yes --no-wait -g riodemocentos20190327)
res=$(az group create -l japaneast -g riodemocentos20190529)
ipaddress=$(az vm create --image OpenLogic:CentOS-HPC:7.6:7.6.20190529 --size Standard_F4s_v2 -g riodemocentos20190529 -n riodemocentos20190529 -o tsv --query publicIpAddress)
ssh -t -o "StrictHostKeyChecking no" $ipaddress 'uname -r'
res=$(az group delete --yes --no-wait -g riodemocentos20190529)
res=$(az group create -l japaneast -g riodemocentos20190130)
ipaddress=$(az vm create --image OpenLogic:CentOS-LVM:7-LVM:7.6.20190130 --size Standard_F4s_v2 -g riodemocentos20190130 -n riodemocentos20190130 -o tsv --query publicIpAddress)
ssh -t -o "StrictHostKeyChecking no" $ipaddress 'uname -r'
res=$(az group delete --yes --no-wait -g riodemocentos20190130)