-
Notifications
You must be signed in to change notification settings - Fork 0
MS_AzureCLI
- 戻る(Azureのシェル)
- Azure PowerShell
- Azure Cloud Shell
- Azure CLI
- Azure Subscription の管理で、そろそろ必要になったので。
-
Azure PowerShellの Python 版
(Python があれば動作する)。
移行メモ(補足): 「Python 版」というのは実装言語の話で、
利用者が Python を意識する必要はない
(インストーラに Python が同梱される)。
Python 実装であることの実務上の意味は、
Windows / Linux / macOS で同じ挙動になるという点にある。
-
管理者として PowerShell を開始し、次のコマンドを実行。
Invoke-WebRequest -Uri https://aka.ms/installazurecliwindows -OutFile .\AzureCLI.msi Start-Process msiexec.exe -Wait -ArgumentList '/I AzureCLI.msi /quiet'
-
普通に、インストーラー(MSI)もあるもよう。
https://aka.ms/installazurecliwindows
補足(現在の推奨): 現在は winget が最も簡単である。
winget install -e --id Microsoft.AzureCLI
パッケージ マネージャ(apt / dnf / zypper)から導入する。
Linux と同じ方法で行ける。
> az -v
azure-cli 2.0.77
...
OAuth 2.0 for Native Apps の Loopback Interface Redirection
(OAuth 2.0 for Native Apps)
> az login
You have logged in. Now let us find all the subscriptions to which you have access...
OAuth 2.0 Device Authorization Grant
> az login
To sign in, use a web browser to open the page https://microsoft.com/devicelogin
and enter the code <認証コード> to authenticate.
補足(この 2 つの違いが示すもの): ブラウザが開ける端末では
ループバック リダイレクト(http://localhost:PORTに認可コードを受ける)、
ブラウザが無い端末では デバイス コード フロー(別端末で URL とコードを入力)が
使われる。これは OAuth 2.0 の
**「ネイティブ アプリで認可コードをどう受け取るか」**という
一般的な課題への標準的な解であり、
Azure CLI に限らずgh/kubectl/ Docker などでも同じ仕組みが使われている。
CLI ツールがブラウザを開く挙動の背景として知っておくとよい。なお、CI/CD で使う場合は対話ログインではなく
サービス プリンシパル(Azure Service Principal)
または マネージド ID(Azure Managed Identity)を使う。az login --service-principal -u <appId> -p <secret> --tenant <tenantId> az login --identity # マネージド ID(シークレット不要・推奨)
# 一覧
az account list --output table
# 選択
az account set --subscription "My Demos"# subscription の一覧
az account subscription list --output table
# location の一覧
az account list-locations --output table補足(
--queryが最大の武器): Azure CLI は既定で JSON を返すため、
JMESPath による絞り込みが強力に効く。# 名前とリソース グループだけを表で az vm list --query "[].{name:name, rg:resourceGroup}" -o table # 特定の条件で絞る az vm list --query "[?powerState=='VM running'].name" -o tsv
出力形式 用途 -o json(既定)スクリプトで jqに渡す-o table人が読む -o tsvシェル変数に代入(引用符が付かない)
-o tsvはVAR=$(az ... -o tsv)のように使うと便利で、
スクリプト内で最も多用する。
企業内から使う場合は HTTP_PROXY / HTTPS_PROXY 環境変数を設定する。
-
Azure CLIとは?Azure PowerShellとの違いについても解説
https://www.cloud-for-all.com/blog/azure-cli.html -
Azure PowerShell(使い分けはAzureのシェルを参照)
-
Azure CLI のドキュメント
https://learn.microsoft.com/cli/azure/ -
Azure CLI のインストール
https://learn.microsoft.com/cli/azure/install-azure-cli -
Azure CLI クエリを使用して出力を照会する(JMESPath)
https://learn.microsoft.com/cli/azure/query-azure-cli
Tags: 移行, シェル, インフラストラクチャ, クラウド, Azure
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。