検索
特集

Node.jsで動くWindows Azureのコマンドラインツールを使うにはLinux管理者のためのIaaS操作入門(2/2 ページ)

実はWindows AzureはLinuxでIaaSとしても使え、コマンドラインツールで操作できる。コマンドベースで環境構築し仮想マシンを作成してみた。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
前のページへ |       

仮想マシンの作成

 CLIの準備が整ったところで、例として仮想マシンの作成をやってみよう。冒頭で紹介した記事「無料で始めるクラウドLAMP構築超入門」で作成したのとまったく同じ条件の仮想マシンを作成することにする。仮想マシンの作成は「vm create」だ。引数やオプションは「help vm create」で確認できる。

$ ~/nodejs/bin/azure help vm create
info:    Executing command help
help:    Create a VM
help:
help:    Usage: vm create [options] <dns-name> <image> <userName> [password]
help:
help:    Options:
help:      -h, --help                             output usage information
help:      -v, --verbose                          use verbose output
help:      --json                                 use json output
help:      -o, --community                        the <image> is a community image
help:      -c, --connect                          connect to existing VMs
help:      -l, --location <name>                  the location
help:      -a, --affinity-group <name>            the affinity group
help:      -u, --blob-url <url>                   the blob url for OS disk
help:      -z, --vm-size <size>                   the virtual machine size [small]
help:          extrasmall, small, medium, large, extralarge, a5, a6, a7
help:      -n, --vm-name <name>                   the virtual machine name
help:      -e, --ssh [port]                       the ssh port to enable [22]
help:      -t, --ssh-cert <pem-file|fingerprint>  the SSH certificate
help:      -P, --no-ssh-password                  indicates that the password should be removed when using --ssh-cert
help:      -r, --rdp [port]                       indicates that RDP should be enabled [3389]
help:      -w, --virtual-network-name <name>      the virtual network name
help:      -b, --subnet-names <list>              the comma-delimited subnet names
help:      -A, --availability-set <name>          the name of availability set to create or use
help:      -s, --subscription <id>                the subscription id

 ヘルプを見ると、Webの時と同じようなパラメータを与えて実行するということが分かるだろう。

 ただ、Web上では選択肢だった、イメージと地域の指定内容が不明だ。これは別のコマンドで一覧を表示して確認する。

 まずイメージだが、「vm image list」でリストアップできる。大量に表示されるが、例えばUbuntuの12.4であれば次のようにgrepで絞り込もう。

$ ~/nodejs/bin/azure vm image list | grep Ubuntu-12_04 | sort
data:    b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu-12_04_2-LTS-amd64-server-20121218-en-us-30GB                               Canonical                                  Linux
(省略)
data:    b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu-12_04_3-LTS-amd64-server-20131205-en-us-30GB                               Canonical                                  Linux

 原稿執筆時点で16件表示されるが、日付が異なるバリエーションとなっているので、最新のものを選ぶことにする。

 次に地域だが、同様に「vm location list」で表示できる。

$ ~/nodejs/bin/azure vm location list
info:    Executing command vm location list
+ Getting locations
data:    Name
data:    --------------
data:    East Asia
data:    Southeast Asia
data:    North Europe
data:    West Europe
data:    East US
data:    West US
info:    vm location list command OK

 東アジアであれば「East Asia」だ。これで必要なパラメータはそろったので、早速作成してみよう。

$ ~/nodejs/bin/azure vm create -l 'East Asia' -z extrasmall -e 22 at-it b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu-12_04_3-LTS-amd64-server-20131205-en-us-30GB azureuser 'パスワード'
info:    Executing command vm create
- Looking up image b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu-12_04_3-LTS-amd64-se+ver-20131205-en-us-30GB
+ Looking up cloud service
+ Creating cloud service
+ Retrieving storage accounts
+ Creating VM
info:    vm create command OK

 パラメータについてはヘルプと突き合わせて見てほしい。Webから作成する時に比べて異なるのは、「-e 22」オプションでSSHのポートを指定する、ユーザー名は自由に指定できるという点だ。

 また、パスワードは英数字だけではなく記号を混ぜないとエラーになるため、記号によってはクオートやエスケープが必要になる。

 作成した仮想マシンは「vm list」で確認できる。

$ ~/nodejs/bin/azure vm list
info:    Executing command vm list
+ Getting virtual machines
data:    Name   Status     Location   DNS Name
data:    -----  ---------  ---------  ------------------
data:    at-it  ReadyRole  East Asia  at-it.cloudapp.net
info:    vm list command OK

 シャットダウンなどの操作をする際は、名前を指定する。

$ ~/nodejs/bin/azure vm shutdown at-it
info:    Executing command vm shutdown
+ Getting virtual machines
+ Shutting down VM
info:    vm shutdown command OK

 この後、もしWebサーバにするのであれば、80番ポートを開けるため、エンドポイントの作成も必要になる。

$ ~/nodejs/bin/azure vm endpoint create -name www at-it 80
info:    Executing command vm endpoint create
+ Getting virtual machines
+ Reading network configuration
+ Updating network configuration
info:    vm endpoint create command OK

 なお、Webの管理ポータルとCLIを同時に使った場合、CLIの操作結果はリロードしないとWebの方に反映されないので、注意しよう。

CLIの応用

 コマンドでWindows Azureの操作ができるようになったところで、自動化の例を考えてみよう。

 例えば、数十台以上など仮想マシンをたくさん作りたい時、シェルスクリプトで一気に作ることができるだろう。もしこれをWebでやらなければならないとなると、とてもうんざりする仕事になる。こういった繰り返し作業をしなければならないケースでは、威力を発揮する。

 何かの条件に基づいて作業をしたいケースもあるだろう。

 例えば、時間になったらサーバーを起動する、設定を変更するといったことは、cronを使えば簡単に実現できる。やりたいことをシェルスクリプトに記述し、crontabに設定すればよい。

 自動化とは違うが、サーバーからストレージへデータをアップロード/ダウンロードするといった用途もある。ブラウザーから実行するとブラウザーを実行しているローカルマシンからしかできないが、CLIであればリモート上から行うこともできるようになる。

 Webの管理ポータルで操作した方が楽なこともあるが、このようにCLIを使った方が便利なケースも多々ある。両方を使いこなすことで、作業効率を上げることができるだろう。

Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る