こんにちは、エクストリームデザイン の @dz_ こと大平かづみです。
Prologue - はじめに
Azure をサクサク触るために、CLI を利用してます。私は Windows を使っているので PowerShell 版… ではなく、Mac や Linux を使うほかのメンバーとも情報共有ができるように az
コマンド(Azure CLI 2.0) を使っています。
az
コマンドは便利なのですが、複数台の VM の情報が見たいとかいっぺんに操作したいとき! リソース名とは別の id
を指定するものが多いです。
bash なら、id 一覧を取得してパイプでサクッとできるものの、コマンドプロンプトではうまくできません><
なので、よく使うユースケースのものをまとめた bat スクリプトを書きました!(時代逆行…?)
リソースグループを指定して、仮想マシンを操作する bat スクリプト
説明
基本的には、私が作業に必要なことしか盛り込んでいませんが、もし流用されるようであれば、用途に合わせてカスタマイズいただければと思います。
また、はじめて bat スクリプトを書いたので、未熟な点があるかもしれません。ご理解いただけますと幸いです。
機能概要
リソースグループを指定して、内包する仮想マシンに対して以下の操作ができます。
- IPアドレス一覧取得(パブリック、プライベートともに)
- 仮想マシン操作
- 状態取得
- 開始 (start)
- 停止 (stop)
- 割り当て解除 (deallocate)
前提条件
-
az
コマンドがインストールされていること -
az login
を済ませていること- 参考: Log in to Azure
使い方
下記のソースコードを vms.bat としてどこかに配置してください。
例として、リソースグループ myRG
内の仮想マシンを操作するサンプルを示します。
# vms.bat が置いてあるディレクトリに移動
$ cd <path to vms.bat>
# IPアドレス一覧取得
$ vms myRG ips
# 仮想マシンの状態取得
$ vms myRG status
# 仮想マシンの開始
$ vms myRG start
# 仮想マシンの停止
$ vms myRG stop
# 仮想マシンの割り当て解除
$ vms myRG deallocate
なお、ips
以外の操作では、初回に id一覧を取得し、vms.bat と同じディレクトリにファイル保存し、( 例: myRG-vms.tsv )。以降の操作ではこのファイルを参照します。
もし、仮想マシンの操作順番を変えたい場合( 例: 特定のサーバーを先に開始したい、など)は、このファイルのidの順序を変えればその通りに実行します。
vms.bat ソースコード
Epilogue - おわりに
なお、Windows で bash を使いたい場合は、 Ubuntu on Windows を使った方が素直かもしれません!私の場合は、もろもろの兼ね合いで cmder を介してコマンドプロンプトを使っています。以前に使い方をまとめた記事があるので、ご興味ある方は下記をご参考くださいませ~。