Check! あえて az コマンドを使って VM を便利に使う bat スクリプト(PowerShell 版はいずれ…!)

  • 4
    いいね
  • 0
    コメント

こんにちは、エクストリームデザイン@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)

前提条件

使い方

下記のソースコードを 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 を介してコマンドプロンプトを使っています。以前に使い方をまとめた記事があるので、ご興味ある方は下記をご参考くださいませ~。