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

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

» 2013年12月19日 18時00分 公開
[山口晴広株式会社イメージズ・アンド・ワーズ]

 Windows Azureをはじめとしたクラウドサービスの多くでは、Webの管理画面だけではなく、プログラムからサービスを制御・利用するためのAPIが備わっている。主に管理作業を自動化するためのものだ。

 こうしたAPIを使うにはプログラミングスキルや開発環境が必要になるが、「Windows Azure」ではOS X/Mac OS XおよびLinuxでAPIを使うコマンドラインツール「Command Line Interface」(以下、CLI)が用意されていて、ハードルが低くなっている。

 本稿では、このCLIをLinux上で使う方法について解説する。なお、CLIで操作するAzure環境のアカウント作成については記事「英語管理画面でムリしてる人が知らないと損する:無料で始めるクラウドLAMP構築超入門」の「Windows Azureのサインアップ」の章を参照してほしい。

Node.jsの準備

 Windows AzureのCLIはJavaScriptで記述されていて、「Node.js」というJavaScriptの実行環境上で動作する。Node.jsが動作する環境であれば、Linuxに限らず動作する。

 そのため、CLIを使うには最初にNode.jsをインストールして使えるようにしておかなければならない。Node.jsは公式サイトから最新版をダウンロードしてインストールする。2013年12月の原稿執筆時点では0.10.23が最新版だ。

Node.jsのダウンロードページ。各OS用のバイナリが用意されている

 Linuxではソースコードからビルドすることも容易だが、今回は間違いのないよう、ビルド済みのバイナリを用いる。インストール先のLinuxが、32bitなのか64bitなのかを確認し、「Linux Binaries(.tar.gz)」の行にあるリンクからダウンロードしよう。目的のLinux上でダウンロードするには、リンクURLをコピーして、次のようにwgetコマンドでダウンロードする。

$ wget http://nodejs.org/dist/v0.10.23/node-v0.10.23-linux-x64.tar.gz

 バイナリなので、ダウンロードされたアーカイブを展開すればすぐ実行できるのだが、インストール場所をどうするかという問題がある。システムワイドにインストールするのであれば、「/usr/local/bin」などに置くことになるが、いきなり影響範囲が大き過ぎると考える向きもあるだろう。今回は取りあえず使ってみる目的で、自分のホームディレクトリに置くことにする。

$ cd
$ tar zxvf node-v0.10.23-linux-x64.tar.gz
$ mv node-v0.10.23-linux-x64 nodejs
$ ~/nodejs/bin/node -v
v0.10.23

 上記の実行例では、展開したディレクトリを「nodejs」という名前に変えた後、Node.jsの実行コマンドである「node」を実行し動作確認をしている。後述するが、CLIもnodejsディレクトリにインストールされるので、やり直したかったり削除したかったりする場合はnodejsディレクトリを削除すればよい。

Azure CLIのインストール

 Node.jsのライブラリやアプリケーションは、「npm」というNode.jsに付属しているコマンドで管理できるようになっている。ダウンロードからインストール、依存するライブラリの解決まで面倒を見てくれる、いわゆるパッケージマネージャーだ。

 Windows Azure CLIもnpmを使ってインストールできるようになっており、次のようにしてインストールする。

$ ~/nodejs/bin/npm install -g azure-cli

 コマンドライン中の「-g」オプションは、nodeコマンドのあるライブラリパス、つまりこの場合なら「~/nodejs/lib/node_modules」以下にインストールすることを指示している。このオプションを付けないとカレントディレクトリにインストールされるので、注意しよう。

 実行すると、依存ライブラリのダウンロードやインストールの状況が表示されるので、しばらく待とう。結構な数のダウンロードが行われる。完了すると、CLIは「~/nodejs/bin/azure」としてインストールされる。

 ここまでの手順通りにやった上で「~/nodejs/bin/azure」を実行すると、エラーとなったはずだ。このファイルの1行目を見てみよう。

#!/usr/bin/env node

 この場合、nodeコマンドがサーチパス上に存在していなければならない。環境変数PATHに「~/nodejs/bin」を追加するか、上記ファイルの「/usr/bin/env node」の部分をnodeコマンドの絶対パスに書き換えて対応しよう。

 対応したら実行してみて動作することを確認する。次のようなヘルプが表示されるはずだ。

$ ~/nodejs/bin/azure
info:             _    _____   _ ___ ___
info:            /_\  |_  / | | | _ \ __|
info:      _ ___/ _ \__/ /| |_| |   / _|___ _ _
info:    (___  /_/ \_\/___|\___/|_|_\___| _____)
info:       (_______ _ _)         _ ______ _)_ _
info:              (______________ _ )   (___ _ _)
info:
info:    Windows Azure: Microsoft's Cloud Platform
info:
info:    Tool version 0.7.4
help:
help:    Display help for a given command
help:      help [options] [command]
help:
help:    Open the portal in a browser
help:      portal [options]
help:
help:    Commands:
help:      account        Commands to manage your account information and publish settings
help:      config         Commands to manage your local settings
help:      hdinsight      Commands to manage your HDInsight accounts
help:      mobile         Commands to manage your Mobile Services
help:      network        Commands to manage your Networks
help:      sb             Commands to manage your Service Bus configuration
help:      service        Commands to manage your Cloud Services
help:      site           Commands to manage your Web Sites
help:      sql            Commands to manage your SQL Server accounts
help:      storage        Commands to manage your Storage objects
help:      vm             Commands to manage your Virtual Machines
help:
help:    Options:
help:      -h, --help     output usage information
help:      -v, --version  output the application version

 azureコマンドは、ヘルプにもあるように幾つかのサブコマンドを指定して実行する。それぞれのヘルプは「azure help {サブコマンド}」のようにして参照できる。Azureの用語や仕組みになじんでくれば、ヘルプを見れば何ができるのかだいたい理解できるようになるだろう。

Azure CLIのセットアップ

 さて、CLIを使うには、まずアカウント情報を設定しなければならない。「account download」を実行すると、アカウント情報をダウンロードするためのURLが表示され、環境によってはブラウザーが起動する。

$ ~/nodejs/bin/azure account download
info:    Executing command account download
info:    Launching browser to http://go.microsoft.com/fwlink/?LinkId=254432
help:    Save the downloaded file, then execute the command
help:      account import <file>
info:    account download command OK

 指定URLにアクセスしてサインインすると、アカウント情報を収めたファイルのダウンロードが始まるので、保存しよう。保存したファイルはLinux上にscpなどで転送する。ここではそのファイル名を「credentials.publishsettings」とする。

 次に、転送したアカウント情報を「account import {ファイル名}」でインポートする。

$ ~/nodejs/bin/azure account import credentials.publishsettings
info:    Executing command account import
info:    Found subscription: 従量課金
info:    Setting default subscription to: 従量課金
info:    Use "azure account set" to change to a different one
info:    Setting service endpoint to: https://management.core.windows.net/
warn:    The "credentials.publishsettings" file contains sensitive information
warn:    Remember to delete it now that it has been imported
info:    Account publish settings imported successfully
info:    account import command OK

 インポートが終わったら、ファイルは不要なので削除しておこう。インポートされた情報は実行ユーザーの「~/.azure」ディレクトリ内に保存されているので、CLIの利用をやめる場合などはこのディレクトリを削除すればよい。

 また、複数ユーザーの環境ではパーミッションなどの取り扱いに注意しよう。

 保存されたアカウント情報は、1カ月の無料期間であったり、従量課金や年払いといったサブスクリプションにひも付いていたりする。もしサブスクリプションが複数ある場合は、そのまま複数インポートされる。状況を確認するには「account list」を実行する。

$ ~/nodejs/bin/azure account list
info:    Executing command account list
data:    Name  Id                                    Current
data:    ----  ------------------------------------  -------
data:    従量課金  ********-****-****-****-************  true

 上記の例では、1つのサブスクリプションがある。複数のサブスクリプションがあれば複数表示されるはずだ。その場合、どのサブスクリプションを使うかを指定しなければならない。それには「account set {サブスクリプションID}」を実行する。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。