4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Azure Cliのメモ

Posted at

MacからMicrosoft Azureを制御するためのコマンドラインインターフェースの使い方メモ(使ったものから随時更新)

インストール

前提条件

npmを利用するのでnodeをインストールしておく必要がある。

インストール

sudo npm install -g azure-cli

update

sudo npm update -g azure-cli

Azureへのログイン

Azureにログインするにはいくつかのタイプがある。いわゆるマイクロソフトアカウントを利用する場合は、

azure login

と打つと、http://aka.ms/devicelogin にアクセスしてコンソールに表示される認証コードを入力しろ!と言われるのでそれに従います。
その他のログイン方法はここをご覧ください。

ASMモードとARMモード

コマンドにはASMモードとARMモードのものがあり、Webでいうと旧ポータル系と新ポータル系に別れる。各モードで作ったリソースは原則として各モードでしか制御できないため、新旧入り乱れてのリソースを使ってる人はモードを意識して操作をする必要がある。また、リースによってはどちらかで強制的に作られるものもあるため注意が必要です。両者のちがいについてはこちら

モードの確認

現在のモードを確認するにはazure config listのmodeを確認する。下記ではarmモードになっています。

azure config list

info:    Executing command config list
info:    Getting config settings
data:    Setting  Value
data:    -------  -----
data:    mode     arm

モードの変更

下記はasmへの変更。現在がasmならarmとする。

azure config mode asm

リソースの制御

何はなくてもとりあえず一覧。VMやStorageやらとりあえず区別せずに表示。

一覧

azure resource list

リソースグループを指定した一覧。

azure resource list testRG

削除

リソースコマンド?で削除するのは少々難儀です(いろいろ指定しないといけない)。
一番簡単な(引数が少ない)のはresouce listで得られるリソースIDとapiVersionを指定するもの。

azure resource -i RESOURCE_ID -o "2015-08-01"

正直、最新のapiVersionをどう確認するかなどよくわかっていない。おそらくはここのSchemaのところを-oで与えるのかなと。
vm deleteとか、専用のコマンドを利用するほうがスッキリする。

リソースグループの制御

テスト環境を作っていると無意識のうちにリソースグループが作られてしまう。UIで消すのは手間なのでコマンドで消したい。

一覧表示

まずは一覧。

azure group list

info:    Executing command group list
+ Listing resource groups
data:    Name                                Location   Provisioning State  Tags:
data:    ----------------------------------  ---------  ------------------  -----
data:    AzureCloudService1                  eastus     Succeeded           null
data:    Default-ApplicationInsights-EastUS  eastus     Succeeded           null
data:    Default-Storage-JapanEast           japaneast  Succeeded           null

削除

そして削除。

azure group delete AzureCloudService1

info:    Executing command group delete

リソースグループを削除すると、所属する全てのリソースが削除されます。

作成

あまり使いませんが。。。ロケーション名の一覧取得は下記参照。

azure group create GROUP_NAME japneast

ロケーション

VM作成時等にオプションで必要なのでとりあえず一覧の取得だけ覚えておく。

一覧

azure location list

japaneastとjapanwestくらいは覚えておけますが。。。まあ、一応。

~
data:    Location    :  japanwest
data:    DisplayName :  Japan West
data:    Providers   :  Microsoft.ApiManagement, Microsoft.Batch, Microsoft.ClassicCompute, Microsoft.ClassicNetwork...
data:
data:    Location    :  japaneast
data:    DisplayName :  Japan East
data:    Providers   :  Microsoft.ApiManagement, Microsoft.Batch, Microsoft.ClassicCompute, Microsoft.ClassicNetwork...
~

VMを制御する

利用するのはもっぱらCentOSなのでその方法。

利用できるVM一覧を見る

LocationとPublisherという概念があるらしく、それを指定する。単にazure vm image listとすると対話的に聞いてきてくれる。

azure vm image list japaneast OpenLogic

下記のような感じ(抜粋)で一覧が表示される。このうち生成時に必要な情報はUrnというやつらしいのでメモしておく。

+ Getting virtual machine image offers (Publisher: "OpenLogic" Location:"japaneast")
data:    Publisher  Offer       Sku   OS     Version       Location   Urn
data:    ---------  ----------  ----  -----  ------------  ---------  -------------------------------------
data:    OpenLogic  CentOS      6.5   Linux  6.5.201501    japaneast  OpenLogic:CentOS:6.5:6.5.201501
data:    OpenLogic  CentOS      6.5   Linux  6.5.201503    japaneast  OpenLogic:CentOS:6.5:6.5.201503
data:    OpenLogic  CentOS      6.5   Linux  6.5.201506    japaneast  OpenLogic:CentOS:6.5:6.5.201506
data:    OpenLogic  CentOS      6.5   Linux  6.5.20150904  japaneast  OpenLogic:CentOS:6.5:6.5.20150904
data:    OpenLogic  CentOS      6.5   Linux  6.5.20160309  japaneast  OpenLogic:CentOS:6.5:6.5.20160309

VMを作る

VMをコマンドラインで作るのはいろいろと準備が必要で少々手間がかかります。開発や運用でスクリプト化して自動化したい!などのニーズがない限りはWebポータル使う方がいいでしょう。

少なくとも作成に際しては事前に下記項目の名称を決めたり、作成しておく必要があるようです。

  • リソースグループ
  • VM名
  • ロケーション
  • OSのタイプ
  • 利用するVMのバージョン(Urn)
  • VMのサイズ
  • NICの名前
  • VNETの名前(それと、prefix 192.168.0.0/16など)
  • VNETのサブネットの名前(それと、prefix 192.168.1.0/24など)
  • adminユーザー名
  • sshの公開鍵

さらにインターネットへの公開のためには、

  • グローバルIP
  • セキュリティーグループとルールの設定

も必要です(実際は必須かと思います)。

私の場合、生成と削除くらいを自動化できればいいので下記のようなコマンドを利用します(上記、必須部分のみ生成)。
VMを生成した後、WebポータルでIPやセキュリティーグループの割当を(NICに対して)行います。

VM生成に必要な全てのリソースをコマンドで生成する方法についてはこちらの記事が参考になります。

  azure vm create \
  -g RESOUCE_GROUP \
  -n VM_ANME \
  --location japaneast \
  --os-type Linux \
  --image-urn OpenLogic:CentOS:6.8:6.8.20161026 \
  --vm-size Standard_A0 \
  --nic-name NIC_NAME \
  --vnet-name VNET_NAME \
  --vnet-subnet-name VSUBNET_NAME \
  --admin-username ADMIN_NAME \
  --ssh-publickey-file ~/.ssh/id_rsa.pub

このコマンドを実行すると、VNETとSUBNETのprefixを聞いてきますので例えば下記のように答えます。

Enter vnet address prefix:  192.168.0.0/16
Enter vnet subnet address prefix:  192.168.1.0/24

完全自動化するためには予め作成したVNET等を指定するほうが無難でしょう。

VMの一覧

azure vm list

VMの削除

azure vm delete RESOURCE_GROUP VM_NAME

Storageを制御する

ストレージ(アカウント)の一覧

azure storage account list

ストレージ(アカウント)の削除

azure storage account delete SACCOUNT_NAME

対話的にリソースグループ名を聞いてくるようです。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?