Node.jsで動くWindows Azureのコマンドラインツールを使うには:Linux管理者のためのIaaS操作入門(2/2 ページ)
実はWindows AzureはLinuxでIaaSとしても使え、コマンドラインツールで操作できる。コマンドベースで環境構築し仮想マシンを作成してみた。
仮想マシンの作成
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.
関連記事
- 無料で始める企業向けIaaSクラウド入門(前編):企業向けIaaSに求められる6つの要件と環境構築
IaaSの概要や企業向けIaaSに求められる6つの要件、無料試用版のある「Windows Azure仮想マシン」の環境を構築する手順、PowerShellを使った日本語化、RDBについて解説する。 - 仕事で使える魔法のLAMP(1):LAMP環境、自分で作りませんか?
Webアプリケーションの開発・実行環境として高い人気を誇るLAMP。ソースコードからビルドしてみませんか?