【初心者】UbuntuサーバからAzure CLIを使ってみました

UbuntuサーバからAzure CLIを使ってみました。

Azure CLIに触れる

Azure コマンド ライン インターフェイス (Azure CLI)をLinuxサーバにインストールします。
今回、UbuntuサーバにAzure CLIをインストールし、Azure上の仮想マシンを起動/停止してみます。

Azure CLI をインストールします。

node.js、npmをインストールします。

sios@ubuntu:~$ curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sios@ubuntu:~$ sudo apt-get install -y nodejs
sios@ubuntu:~$ sudo apt-get install -y build-essential
sios@ubuntu:~$ node --version
v4.5.0
sios@ubuntu:~$ npm --version
2.15.9

npm パッケージからAzure CLIをインストールします

sios@ubuntu:~$ sudo npm install azure-cli -g
sios@ubuntu:~$ azure --version
0.10.3 (node: 4.5.0)

サブスクリプションへの接続

azure login コマンドを実行し、表示されたURLにブラウザでアクセスし、コードを入力します。
※多要素認証でなく、組織のMicrosoftアカウントであれば非対話型での認証が可能なようです。azure login -u account@example.com

sios@ubuntu:~$ azure login
info: Executing command login
\info: To sign in, use a web browser to open the page https://aka.ms/devicelogin. Enter the code XXXXXXXXX to authenticate.
-
sios@ubuntu:~$ azure login
info: Executing command login
\info: To sign in, use a web browser to open the page https://aka.ms/devicelogin. Enter the code XXXXXXXXX to authenticate.
|info: Added subscription TESTSUBSCRIPTION1
info: Added subscription TESTSUBSCRIPTION2
info: Setting subscription "TESTSUBSCRIPTION1" as default
+
info: login command OK

サブスクリプションを確認します。アクティブなのはCurrent列のtrue値であるものです。

sios@ubuntu:~$ azure account list
info: Executing command account list
data: Name Id Current State
data: -------------- ------------------------------------ ------- -------
data: TESTSUBSCRIPTION1 11112222-aaaa-bbbb-cccc-ddddddddddd true Enabled
data: TESTSUBSCRIPTION2 33334444-wwww-xxxx-yyyy-zzzzzzzzzzzz false Enabled
info: account list command OK
sios@ubuntu:~$

現在のサブスクリプションを変更する場合は以下の要領で実施します。

sios@ubuntu:~$ azure account set TESTSUBSCRIPTION2
info: Executing command account set
info: Setting subscription to TESTSUBSCRIPTION2 with id 33334444-wwww-xxxx-yyyy-zzzzzzzzzzzz.
info: Changes saved
info: account set command OK
sios@ubuntu:~$

Azureの仮想マシンを起動/停止します

サブスクリプションのリソースグループを一覧表示

sios@ubuntu:~$ azure group list
info: Executing command group list
+ Listing resource groups
data: Name Location Provisioning State Tags:
data: ------------------------- --------- ------------------ -----
data: test-resource-group-1 japaneast Succeeded null
data: test-resource-group-2 japaneast Succeeded null
data: test-resource-group-3 japaneast Succeeded null
data: test-resource-group-4 japaneast Succeeded null
data: test-resource-group-5 japaneast Succeeded null
data: test-resource-group-6 japaneast Succeeded null
data: test-resource-group-7 japaneast Succeeded null
data: test-resource-group-8 japaneast Succeeded null
info: group list command OK

リソースグループ内の仮想マシンをを取得します。'|'(パイプ)を使用してgrepなど組み合わすことも可能です。

sios@ubuntu:~$ azure vm list | grep ldap-server
data: test-resource-group-1 ldap-server Succeeded VM deallocated japanwest Standard_DS1
sios@ubuntu:~$

仮想マシン起動し、azure vm list で確認すると runningに遷移しているのがわかります。

sios@ubuntu:~$ azure vm start test-resource-group-1 ldap-server
info: Executing command vm start
+ Looking up the VM ldap-server
+ Starting the virtual machine ldap-server
info: vm start command OK
sios@ubuntu:~$
sios@ubuntu:~$ azure vm list | grep ldap-server
data: test-resource-group-1 ldap-server Succeeded VM running japanwest Standard_DS1
sios@ubuntu:~$
#起動
vm start [options]  resource-group name
#停止
vm restart [options] resource-group name
#再起動
vm restart [options]  resource-group name
#停止してリソースを開放
vm deallocate [options] resource-group name

最後に

AzureをWeb上から操作すると、しばしば迷子になる私ですが、
AzureCLIを利用することで心理的なハードルがぐぐっと低くなりました。
この機能使いbashなどでスクリプトを実装してcronでスケジューリングするということもやっていきたいと思います。

関連ドキュメント

Azure CLI のインストール
https://github.com/Azure/azure-content-jajp/blob/master/articles/xplat-cli-install.md
Azure コマンド ライン インターフェイス (Azure CLI) からの Azure サブスクリプションへの接続
https://github.com/Azure/azure-content-jajp/blob/master/articles/xplat-cli-connect.md
Resource Manager モードでの Azure CLI コマンド
https://github.com/Azure/azure-content-jajp/blob/master/articles/virtual-machines/azure-cli-arm-commands.md

 

 

Be the first to comment

コメント投稿

Your email address will not be published.


*