Azureをコマンドラインから操作する 

# 準備
 
* 踏み台サーバーを構築します。
 * サーバー名： springboard
 * OS: ubuntu 14.04 LTS
 * ユーザ名： azureuser

次は、踏み台サーバーにAzure CLIをインストールします。
Azure CLI は、Azure Platform で使用できるオープン ソース・クロスプラットフォームのコマンド群です。JavaScript で記述されておりNode.js が必要です。
 
１． Node.jsとnpmをインストールします。

```
azureuser@springboard:~$ sudo apt-get update
----省略----
 
azureuser@springboard:~$ sudo apt-get install nodejs npm
----省略----
 
azureuser@springboard:~$ sudo update-alternatives --install /usr/bin/node node /usr/bin/nodejs 10
update-alternatives: using /usr/bin/nodejs to provide /usr/bin/node (node) in auto mode
 
azureuser@springboard:~$ node -v
v0.10.25
```
２． Azure CLIをインストールします。

```
azureuser@springboard:~$ sudo /usr/bin/npm install azure-cli -g
----省略----

azureuser@springboard:~$ azure -v
0.9.8
```

踏み台サーバーから仮想マシンをコントロールするための、ユーザ情報などの設定が必要です。

１． .publishsettings ファイルをダウンロードします。

```
azureuser@springboard:~$ 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
```

踏み台サーバーでGUIで操作することは難しいので、ローカルPCでブラウザを起動します。
そしてhttp://go.microsoft.com/fwlink/?LinkId=254432から .publishsettings をダウンロードし、踏み台サーバーへ転送します。

* ローカルPCのOSにより、転送方法が異なります。下に一例を示します。
 * Windows：　winSCPツール。　参照方法
 * LinxuやMac：　SCPコマンド。　参照方法
 
２． 踏み台サーバーに.publishsettings ファイルまたは証明書をインポートします。

```
azureuser@springboard:~$ azure account import XXXXXX-credentials.publishsettings
info: Executing command account import
info: account import command OK
 
azureuser@springboard:~$ azure account list
info: Executing command account list
data: Name Id Tenant Id Current
data: -------- ------------------------------------ --------- -------
data: XXX XXX undefined true
info: account list command OK
```

以上で、Azure CLIツールのインストールとユーザ情報設定が終わりました。


# 仮想マシンイメージを作成
 
クラウド上にサーバー構築する際、一台ずつ構築する必要がないです。仮想マシンのイメージを作って、このイメージから複数の仮想マシンを作成できます。
１．仮想マシンイメージを作成します。

```
azureuser@springboard:~$ azure vm capture -t wordpress-test wordpress-template
info: Executing command vm capture
+ Getting virtual machines
+ Checking image with name wordpress-template exists
+ Capturing VM
info: vm capture command OK
```
 
２．作成した仮想マシンイメージを確認します。

```
azureuser@springboard:~$ azure vm image list | grep wordpress-template
data: wordpress-template User Linux undefined
```
 
３．イメージから仮想マシンを作成するために、SSH 用の鍵を生成します。

```
azureuser@springboard:~$ openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout azure.key -out azure-cert.pem
Generating a 2048 bit RSA private key
----省略（＊１）----
 
azureuser@springboard:~$ ls
azure-cert.pem azure.key
azureuser@springboard:~$ mv -i azure* ~/.ssh
azureuser@springboard:~$ chmod 600 ~/.ssh/azure.key
azureuser@springboard:~$ cat >> ~/.ssh/config <<EOB
> Host *.cloudapp.net
> User azureuser
> IdentityFile $HOME/.ssh/azure.key
> EOB
```

＊1 説明： opensslの使い方などを以下のリンクに参照してください
openssl コマンドの操作
Apache + OpenSSL CSR生成手順 (新規)｜CSRの生成方法｜マニュアル｜サポート｜SSLサーバ証明書 ジオトラスト       
 

# 仮想マシンイメージから仮想マシンを作成
 
仮想マシンイメージが用意されました。複数サーバーを作成したい場合は、すぐ何台でもサーバーを構築できます。
コマンドは、
     azure vm create [options] <vm-name> <image> <userName> [password]
     options:
          --location パラメーターで場所を指定します
          --vm-size 仮想マシンのサイズを指定します
          --ssh-cert 証明書を指定します
です。

```
azureuser@springboard:~$ azure vm create --location 'Japan East' --vm-size ExtraSmall --ssh-cert ~/.ssh/azure-cert.pem wordpress-test1 wordpress-template azureuser
info: Executing command vm create
+ Looking up image wordpress-template
Enter VM 'azureuser' password:********
Confirm password: ********
+ Looking up cloud service
warn: --location option will be ignored
+ Getting cloud service properties
+ Looking up deployment
+ Configuring certificate
+ Creating VM
info: OK
info: vm create command OK
```
 
作成した仮想マシンへsshで接続できることを確認します。

```
azureuser@springboard:~$ ssh wordpress-test1.cloudapp.net
```
 
上記では、1台の仮想マシンを作成しましたが、同様のコマンドで何台も仮想マシンを構築できます。
 
仮想マシンやその他のAzureサーバーに対して、いろいろなコマンドで操作できます。
詳細は [Azure サービス管理での Mac、Linux、および Windows 用 Azure CLI の使用 Microsoft Azure](https://azure.microsoft.com/ja-jp/documentation/articles/virtual-machines-command-line-tools/)にたくさんありますので、参照してみてください。