Azure上のCentOS 7.6のカーネルバージョン一覧を作る

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)