Azure CLIの入門

もしMicrosoft Azureアカウントをお持ちで、まだAzureポータルを通じてリソースを管理している場合、それはもったいないことです。クリックを減らし、生産性を向上させる最良の方法の一つは、Azure CLIを使用することです。

Azure CLIはPythonで書かれたクロスプラットフォームのツールセットで、コマンドラインからほぼすべてのAzureリソースを管理できます。どのオペレーティングシステムを使用しているかに関係なく、Azure CLIはすべてのプラットフォームで一貫したエクスペリエンスを提供します。

このチュートリアルでは、Azure CLIの使い方を学びます。初期設定の実行方法、およびさまざまなAzure CLIコマンドを使用して一般的なリソースを作成および削除する方法を学びます。

前提条件

この記事はチュートリアルになります。ステップバイステップで進める予定の場合、次のいずれかが必要です。

  • Azure CLI – このチュートリアルではDockerコンテナでv2.20.0を使用しますが、他のプラットフォームでも同じようにコマンドが機能します。
  • Azure内でリソースを作成するためのアクセス権、おそらくサービス プリンシパルを使用してMicrosoftアカウントを介して。

az help

「Azure CLI」でコマンドを実行する前に、az helpコマンドの使用方法を学びましょう。Azure CLIには豊富なヘルプがあります。このチュートリアルではすべてのコマンドを網羅することは不可能なので、az helpの使用方法を学ぶことが重要です。

始めるには、ヘルプシステムを操作してさまざまなコマンドに関する詳細情報を確認する方法を見てみましょう。

典型的なヘルプの例の操作

例は最適な学習素材です。Azure CLIのヘルプシステムの使用方法を説明するために、Azureでリソースグループを作成する必要なコマンドを見つける例を進めます。

ターミナルを開いた状態で:

1. az helpコマンドを実行します。このコマンドは2つのタイプの出力を返します。グループとサブグループです。

コマンドはグループとして整理されます。通常、チュートリアル(またはドキュメント)ではこれらのグループを「コマンド」と呼びます。各グループはAzureサービスを表すように階層的に分かれています。

output of az help

2. groupと呼ばれるサブグループを見つけるまでスクロールします。以下の説明からわかるように、このサブグループはリソースグループを管理する責任があります。グループはアルファベット順に並んでいます。

scrolling down to find group

3. --helpパラメータを使用して、探しているコマンドを実行します。 --helpパラメータを使用すると、変更は行われません。グループまたはコマンドのすべてのヘルプドキュメントが返されます。

az group --help

以下に、groupグループと1つのサブグループ(lock)が含まれているのが見えます。

output of az group help

4. リソースグループを作成したい場合は、createコマンドが適切なコマンドのようです。これで、元のaz group参照によりより具体的なコマンドを追加して、ヘルプを見つけ続けることができます。

az group create --help

任意のコマンドで--helpパラメータを参照して、ヘルプドキュメントを表示できます。

現在、--helpパラメータはcreateコマンドの情報を表示します。コマンドには以下に示す引数があります。この例では、リソースグループと必要なlocationを指定するために必要な引数が得られます。

help parameter

az findで構文の例を見つける

--helpパラメータで簡単に探せない場合は、az findコマンドを見てみてください。このコマンドは、以下に示すように、グループ/コマンド参照を使用して構文の例を検索します。

たとえば、前述のように--helpでヘルプシステムをナビゲートする代わりに、az findで同じタスクを単一行で実行します。

az find "az group create"
output of find command

az configureを使用してデフォルトの構成を割り当て

Azure CLIには多くのコマンドと機能があります。これらの機能のそれぞれには、ログやデータ収集の設定など、さまざまな構成があります。Azure CLIを初めて設定する際に完了するべき最初のタスクの1つは、az configureコマンドを実行することです。

1つのコマンドで、az configureコマンドが3つの異なる設定を案内します:

  • 出力形式 – Azure CLIが出力する方法の7つの異なる方法
  • ログ – すべてのAzure CLIアクティビティをファイルに記録する機能
  • テレメトリ – Azure CLIの使用方法に関する情報をMicrosoftに送信するかどうかを有効または無効にする機能

始めるには、すでに Azure CLIがインストールされていると仮定してください:

1. ターミナル(BashまたはPowerShell)を開きます。

2. コマンドaz configureを入力します。すべての設定が.azure/configファイルに保存されることを知らせるシンプルなメニューが表示されます。続行するにはYを押します。

output from azconfigure

3. このコマンドではまず、デフォルトの出力形式を選択するように求められます。ここで、必要な出力形式を選択してください。デフォルトの出力形式は、コマンドを実行した後やエラーメッセージを受け取った後の画面に出力される内容を設定します。

If you’re unsure, below you’ll find some examples.

以下の例では、outputパラメータが使用されています。デフォルトとして選択した形式に関係なく、常にoutputパラメータでデフォルトの出力をオーバーライドできます。

JSON(Javaオブジェクト表記法)

json output

JSONC(コメント\着色付きJavaオブジェクト表記法)

jsonc output

テーブル

table output

TSV(タブ区切り値)

tsv output

YAML(YAMLはマークアップ言語ではありません)

yaml output

YAMLC(コメント\着色付きYAML)

yamlc output

なし–Azure CLIはエラーまたは警告のみを返します。

4. 出力形式を設定したら、Azure CLIはログを有効にするように求めます。ここで、すべてのコマンドと出力をファイルに記録するには、Yを選択します。

Output Format

ここでYを選択すると、CLIを使用して収集されたすべてのコマンドと出力を含むログが作成されます。このログはLinuxおよびmacOSでは$HOME/.azure/logsディレクトリに、Windowsでは%USERPROFILE%\.azure\logsにあります。

以下に、ログの例を示します。

Log file contents after executing az login

5. 次に、Azure CLIはテレメトリデータの送信を求めます。ここでYを選択すると、Azure CLIの使用方法に関する匿名情報がMicrosoftに送信されます。

Telemetry Data

Microsoftが収集する情報に関する詳細は、Azure CLIから匿名データの収集に関するMicrosoftのプライバシー情報を参照してください。

最後に、az configureを使用してCLIオブジェクトのキャッシュの有効期限値を設定するように求められます。これはデフォルトの値である10のままにしておく必要があります。

cli object cache setting

Azure CLIのトラブルシューティング時にMicrosoftからアドバイスされた場合を除き、CLIオブジェクトのTTLを変更しないでください。

デフォルトパラメータ値の設定

Azure CLIには、場所やグループなどの同じパラメータを持つさまざまなコマンドがあります。これらのパラメータの値を毎回毎回入力する代わりに、デフォルトのパラメータ値を設定できます。

パラメータのデフォルト値を設定するには、az configure--defaultsパラメータを使用します。このパラメータを使用すると、パラメータとそのデフォルト値を定義できます。たとえば、さまざまなコマンドでlocationgroupを入力するのが面倒であれば、問題ありません。いくつかのデフォルト値を設定します。

次の例では、デフォルトのリージョン(location)をwestus2、リソースグループ(group)をMyResourceGroupに設定しています。これで、locationgroupパラメータを持つ任意のAzure CLIコマンドを実行すると、Azure CLIがこれらのパラメータに自動的に値を渡します。

az configure --defaults location=westus2 group=MyResourceGroup

コンテナを使用している場合、各コンテナインスタンスでデフォルトを設定することで、特定の地域、サブスクリプション、またはリソースグループを管理することができます。上記のコマンドを使用して、デフォルトの地域とデフォルトのリソースグループを設定するために、各コンテナに4つのコンテナを作成することができます。

ブラウザでの認証

Azure CLIの基本を学びましたが、実際には何も行っていません。さて、リソースの作成に進む前に、az loginコマンドを使用してAzureにログインする必要があります。

複数のAzureサブスクリプションを持っている場合は、az account listコマンドを実行してすべてのサブスクリプションを見つけます。サブスクリプションを見つけたら、az account set --subscription <subscription name>コマンドを実行してセッションで使用するサブスクリプションを設定します。グローバルなsubscriptionパラメータを使用して明示的にサブスクリプションを指定することもできます。

1. ターミナルを開き、az loginコマンドを実行します。このコマンドはブラウザウィンドウを開き、ユーザー名とパスワードを入力するページに移動します。

az login in Powershell session

2. Azureアカウントの資格情報を入力するか、以下に示す既存のユーザーアカウントをクリックします。

authenticate with Microsoft

3. Azureがアカウントを認証したら、Webブラウザを閉じてAzure CLIセッションに戻ります。 az loginコマンドは、認証トークンを持っていることを確認するために、サブスクリプションに関する情報を返します。

Output from az login, once authenticated

デバイスコードを使用した認証

もしブラウザのないシステムで認証トークンをダウンロードしたい場合、または別のコンピュータで認証トークンを取得したい場合は、--use-device-codeパラメータを使用してください。このパラメータを使用すると、ユーザーは別のデバイスから提供されたコードを使用して認証できます。

デバイスコードを使用して認証するには、ターミナルを開いて次の手順を実行してください:

az loginコマンドを--use-device-codeパラメータを使用して実行します。この時、az loginコマンドはブラウザを開かず、代わりに別のコンピュータのデバイスログインページに提供するコードを表示します。

az login --use-device-code
output of az-login —use-device-code

2. 別のコンピュータで、異なるURLに移動してhttps://microsoft.com/deviceloginにアクセスし、提供されたコードを貼り付け、次へをクリックします。

Enter code to authenticate

3. これでAzureに認証するために資格情報を入力し、必要でなければブラウザを閉じます。

choosing an account to authenticate with

Azure CLIセッションで、az loginはサブスクリプション情報を返します。

verification your session is logged on to azure

Azure CLIの出力オプション

前述の通り、Azure CLIはさまざまな方法で出力を返すことができます。デフォルトの出力を定義し、outputパラメータを使用して即座に変更できます。ただし、outputパラメータは出力の動作を変更する唯一のパラメータではありません。

冗長性を変更したり、出力をフィルタリングしたり、エラー出力の動作を変更したりするには、次のパラメータを使用してください。

  • query – すべてのコマンドの出力をフィルタリングするためにJMESPathクエリ言語を使用します。詳細はthis articleを参照してください。
  • verbose – Azureで作成されたリソースに関する情報とそれらのリソースについての詳細な情報を返します。
  • debug – デバッグ用に使用されるCLI操作に関する低レベルな情報を返します。
  • only-show-errors – エラーを表示し、警告を抑制します。

リソースグループの作成

Azureに認証されたので、許可されたすべてのリソースを管理できるようになりました。まず、リソースグループの作成の一般的な例を実行しましょう。

Azure CLIがインストールされたコンピューターで、CLIでAzureにすでに認証されていると仮定します:

以下に示すように、az group createコマンドを使用してリソースグループを作成します。このコマンドは、North Europe locationTESTGrpという名前のresource-groupを作成し、すべてのverbose出力を返します。

az group create --location northeurope --resource-group TESTGrp --verbose
output of az group create

2. Azureがリソースを作成したことを確認します。az group list

az group list

TESTGrpリソースグループが作成されたことに気付きます。

output of az group list

3. たくさんのリソースグループを選別する必要があるかもしれません。スクロールする代わりに、queryパラメータを使用してリストを絞り込んでください。以下のコマンドは、JMESPathを使用して北ヨーロッパのlocationにあるリソースグループのみを返します。

az group list --query "[?location=='northeurope']"
output of a JMESPath query

Linux仮想マシンの作成

最後の例では、Azure CLIを使用してAzure VMを作成する方法を学びます。仮想マシンの作成とその周りの設定を学ぶことは良いスキルです。Azure VMの作成は、クラウドの旅の中で繰り返し実行する可能性のある一般的なタスクです。

この演習では、デフォルトの設定でAzure Linux VMを作成し、前のセクションで作成したリソースグループに展開します。

Azure VMは、ディスクイメージ、仮想ネットワークアダプター、仮想マシンなど、すべてが一緒に動作する多くのAzureリソースで構成されています。

Azure CLIを使用してAzure VMを作成するには:

1. az vm image listコマンドを実行して、VMのすべての利用可能なVMイメージを検索します。このコマンドは、すべてのキャッシュ/オフラインイメージを返します。az vm image list

az vm image list

このデモでは、以下で強調されているUbuntuLTSイメージを選択してください。

Cached list of images available

Azure CLIは、すべてのVMイメージのキャッシュされたリストを維持します。UbuntuLTSイメージが表示されない場合は、allパラメータを使用して更新されたリストを取得してください。

2. VM に使用するディスクイメージがわかったら、az vm create を使用して VM を作成します。以下のコードスニペットは、UbuntuLTS image を使用して resource-group TESTGrp で VM nameATAVM1 として作成します。Azure が VM を作成すると、後で接続するための SSH キー (generate-ssh-keys) を生成し、JSON (output) で出力します。

az vm create --resource-group TESTGrp \
   --name ATAVM1 \ ## 仮想マシンのホスト名
   --image UbuntuLTS \ ## az vm image list で取得したイメージ名
   --generate-ssh-keys \ ## VM で使用するための SSH キーを自動生成
   --output json \ ## 出力を JSON で返すためのフォーマットのオーバーライド
   --verbose ## 追加の出力

1 つの長い Azure CLI コマンドを、末尾にバックスラッシュを使用して複数行に分割します。

az vm create コマンドには、VM を構築するためのさらに多くの方法があります。ヘルプシステムはあなたの味方です! az vm create --help

コマンドが正常に開始された場合、次のスクリーンショットと同様のものが表示されます。

VM being created

verbose パラメーターを使用することで、緑色で使用される実際の REST API メソッドとパラメーターが表示されます。

3. デプロイメントが完了すると、出力の最後のセクションに VM の情報が表示されます。このデモでは特に、パブリック IP アドレスをコピーします。これはインターネット経由で VM に接続するために必要です。

output from vm creation

以下は、今の時点で、上記で見つけたUbuntu VMのパブリックIPアドレスを使用してSSH経由でUbuntu VMに接続します。これを行うには、お気に入りのSSHクライアントを開き、以下に示すようにユーザーazureuserとしてVMに接続します。デフォルトでは、az vm createコマンドはazureuserというローカルユーザーを作成します。

connected to the vm created

VMを作成する際にgenerate-ssh-keysパラメータを使用したため、パスワードなしでVMにSSHできました。これにより、秘密鍵が~/.sshディレクトリにダウンロードされ、パブリックキーがVMにアップロードされ、認証できるようになります。

5. 今、VMとリソースグループをクリーンアップします。

az group delete --name TestGRP

次のステップ

Azure CLIの準備が整いました。これでリソースの管理ができる準備が整いました!次は何をしますか?

Source:
https://adamtheautomator.com/azure-cli/