Azure CLIとChefを始めるためのSubscription関係まとめ
Azureを使っている人で、各種の自動化を行いたい人にとっては、Azure CLIやChefといったツールは
とても大切なものだろう。ところが、実際に使おうと思うと、そこに至るまでのところで引っかかりやすい。
今回の記事ではAzure CLIをダウンロードしてから、実際に使えるようにするためのオペレーションを
整理してみた。今回はWindows10で検証しているが、Macでも同じ手順である。
- Azure CLIのダウンロードとインストール
Azure CLI のインストールにあるWindowsインストーラーを落として実行するとよい。Mac/Linuxも同じノリでインストール自体は簡単だ。ここに乗っている手順で基本OKだ。ちなみにchefを使いたい人もAzure CLIの設定が住んでいる必要があるので注意が必要だ。
Windowsの場合は、ダウンロード、実行だけでは、PATHにAzure CLIが反映されない。下記の場所にazureコマンドが存在するのでパスに追加する。
>set PATH=%PATH%;"C:\Program Files (x86)\Microsoft SDKs\Azure\CLI\wbin"
>azure
info: _ _____ _ ___ ___
info: /_\ |_ / | | | _ \ __|
info: _ ___/ _ \__/ /| |_| | / _|___ _ _
info: (___ /_/ \_\/___|\___/|_|_\___| _____)
info: (_______ _ _) _ ______ _)_ _
info: (______________ _ ) (___ _ _)
info:
info: Microsoft Azure: Microsoft's Cloud Platform
永続的に追加したいときは下記のようにするとよい
SETX /M PATH "%PATH%;C:\Program Files (x86)\Microsoft SDKs\Azure\CLI\wbin"
- Organizationユーザの作成とサブスクリプションの付与
さて、混乱しやすい部分だが、Azure CLIは組織ユーザ(Organizationユーザ)でしかログイン
できない。よって、多くの読者はOrganizationユーザを作っていないと思うので、まず先に
それを作る必要がある。
Azure Portalから Active Directory を選択してみよう。ディレクトリが表示されるはずだ。なければ適当な名前をつけて、作成しよう。
そして、その作成したディレクトリをクリックしよう。次にユーザタブをクリックする。組織ユーザがない人はここの「ユーザの追加」をクリックする
すると組織ユーザが登録できるようになるはずだ。尚、組織ユーザの作成の最後で初期パスワードが付与
される。これは一時的なものですでに失効している。
次に「設定」タブをクリックする。先ほどの操作で組織ユーザを作ったので、今度はサブスクリプション
と紐づける。「管理者」タブをクリックしよう。
「追加」ボタンを押すと「サブスクリプションの共同管理者の指定」という画面がでてくるので、ここで
組織ユーザに割り当てるサブスクリプションを指定すればよい。これで準備完了だ。
ちなみに、ある人のサブスクリプションで、ほかの人にも同じサブスクリプションを使いたい場合、
その人でログインし、このオペレーションを行い、組織ユーザの作成、サブスクリプションの紐づけをするとよい。
最後に、Azure Portalからサインアウトして、いま作成した組織ユーザでログインしなおす。最初に
付与されたパスワードはすでに失効しているので、ここで、新しいパスワードを入力しなおせばよい。
これでAzure側の設定は完了だ。
- Azure CLI側の設定
3.1. login
早速組織ユーザでログインしてみよう
> azure login -u XXXXX@XXXXXX.onmicrosoft.com
:
+
info: login command OK
もし、下記のエラーがでたら、Azureに再ログインしてパスワードを再設定する手順が
できていないと思われる。
error: Get Token request returned http error: 401 and server response: {"error":"user_password_expired","error_description":"AADSTS70002: Error validating credentials. AADSTS50055: Password is expired.
3.2. Credentialsのインポート
次にCredentaialsを取得、インポートする必要がある。
次のコマンドを発行すると、Webブラウザが起動し、サブスクリプション情報がはいった
Credentaialsがダウンロードされるので、それをどこかに保存しておこう。
>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
そして、インポートする。次のコマンドの実態は、.azure/azureProfile.json
を作ることをする。
ここでPay-As-You-Go...は先ほどダウンロードしたファイルだ。
>azure account import ./Pay-As-You-Go-9-9-2015-credentials.publishsettings
info: Executing command account import
info: account import command OK
さて、ちゃんとサブスクリプションが紐づいたか見てみよう。
>azure account list
info: Executing command account list
data: Name Id Tenant Id Current
data: ------------------------- ------------------------------------ ------------------------------------ -------
data: Pay-As-You-Go 37xxxxx-13xx-4dxx-xx00-xxxxdd898bb2 xxxx1d61-xx86-xxe7-xxff-xxxxd6c937ba true
data: Microsoft Azure A plan xxxx383f-xx95-xx9e-xx2d-xxxxc6166cc9 xxxx88bf-xxf1-xxaf-xxab-xxxx011db47 false
info: account list command OK
もし、複数サブスクリプションを持っていて、違うのを使いたい場合は、次のコマンドを
発行するとよい。ちなみにxxxxで始まっているのは先ほどのazure account list
で
でてきたサブスクリプションのIDだ。それを指定すると、指定されたサブスクリプションが
指定されるようになります。
>azure account set xxxx383f-xx95-xx9e-xx2d-xxxxc6166cc9
これで、準備完了!xPlatCLI(Azure CLI)とChefの自動化を楽しんでくださいね!