Azure CLI を使用して Linux 仮想マシンをプロビジョニングする
Azure CLI は、Linux、macOS、Windows オペレーティング システムにローカルにインストールできます。 インストールの詳細は、オペレーティング システムによって異なり、Linux の場合はディストリビューションによっても異なります。
Note
Linux のインストール オプションの詳細については、「Linux に Azure CLI をインストールする」を参照してください。
Azure CLI を対話形式で使用するには、オペレーティング システム内で使用できるシェル (Windows では cmd.exe、Linux または macOS では Bash など) を起動し、コマンド プロンプトでコマンドを発行します。 反復的なタスクを自動化するには、選択したシェルのスクリプト構文を使用して、複数の CLI コマンドを 1 つのシェル スクリプトにまとめて、そのスクリプトを実行します。
Azure CLI のインストールを避けたい場合は、Azure Cloud Shell を使用できます。 Azure Cloud Shell は、Web ブラウザーから Azure リソースを管理するために使用できる対話型の認証済みシェルです。 Azure Cloud Shell では、Bash と Azure PowerShell を実行でき、現在のバージョンの Azure CLI が既にプレインストールされています。 Azure Cloud Shell にアクセスするには、Web ブラウザーで Azure Cloud Shell リンクを開くか、Azure portal でグローバル検索テキスト ボックスの横にある Azure Cloud Shell アイコンを選択して起動します。
Azure Cloud Shell には、認証が組み込まれているという利点があります。この認証では、Web ブラウザーから Azure サブスクリプションにアクセスするときに指定した資格情報が使用されます。 これにより、セッションを開始するたびに、Azure CLI をローカルで実行するときに必要な az login
コマンドを実行する必要がなくなります。
Azure CLI を使用して Linux VM をデプロイする
通常、Azure CLI を使用して、Linux を実行している Azure VM をプロビジョニングするプロセスには、次に大まかに示す一連の手順が含まれます。
- 適切な VM イメージを特定する。
- 適切な VM サイズを特定する。
- リソース グループを作成します。
- 仮想スイッチを作成して構成する。
- Azure VM を作成します。
既存の環境や要件に応じて、上記の各手順を完了する必要がない場合もあります。 たとえば、デプロイに既存のリソース グループまたは仮想ネットワーク サブネットを使用する場合などです。 さらに、Azure CLI ではさまざまな既定の設定がサポートされています。これは、一部のリソース設定に値を明示的に割り当てない場合に自動的に適用されます。 たとえば、Azure portal ベースのデプロイと同様に、既存の仮想ネットワークを指定しない場合、Azure CLI によって自動的にプロビジョニングされます。 このモジュールでは、Azure CLI の既定の設定を使用し、仮想ネットワークの作成プロセスをスキップします。
Note
Azure CLI を使用した仮想ネットワークの実装については、「クイック スタート: Azure CLI を使用して仮想ネットワークを作成する」を参照してください。
適切な VM イメージを特定する
プロビジョニング プロセスを開始する前に、まず、使用する VM イメージを決定する必要があります。 また、デプロイをホストする Azure リージョンでそのイメージを使用できるかどうかも確認する必要があります。
サブスクリプションで使用可能な Azure リージョンを一覧表示するには、Azure Cloud Shell ペインで Bash セッションから次のコマンドを実行します。
az account list-locations --output table
出力を調べて、使用するリージョンの [名前] 列の値を確認します。 ターゲットとして米国東部リージョンを選択した場合、名前は eastus になります。
適切なイメージを特定するには、発行元、オファー、SKU を決定する必要があります。 使用可能なオプションの一覧を絞り込むには、次のコマンドを実行して、前に特定したリージョンの Microsoft 以外の発行元を一覧表示します。
az vm image list-publishers --location eastus --query [].name --output tsv | grep -v "Microsoft" | more
注意
一覧は非常に広範囲にわたるため、出力を、使用可能なセッション バッファーに制限する必要があります。
Canonical
を選択したとします。 次に、次のコマンドを実行して、その発行元から入手可能なオファーを特定します。
az vm image list-offers --location eastus --publisher Canonical --query [].name --output tsv
0001-com-ubuntu-server-jammy
を選択したとします。 次に、次のコマンドを実行して、そのオファーで使用できる SKU を特定します。
az vm image list-skus --location eastus --publisher Canonical --offer 0001-com-ubuntu-server-focal --query [].name --output tsv
注意
Canonical は最近、オファー名を変更しました。 Ubuntu 20.04 より前のオファー名は UbuntuServer
でした。 Ubuntu 20.04 のオファー名は 0001-com-ubuntu-server-focal
で、Ubuntu 22.04 のオファー名は 0001-com-ubuntu-server-jammy
です。
特定のイメージを使用して Azure VM をデプロイするには、その Urn
プロパティの値を決定する必要があります。 この値は、発行元、オファー、SKU、オプションでイメージを一意に識別するバージョン番号 (省略可能) で構成されます。 バージョン番号を latest に設定することもできます。これは、ディストリビューションの最新バージョンを指定します。 米国東部リージョンにあるすべての Ubuntu 22_04-lts イメージの Urn
プロパティの値を表示するには、次のコマンドを実行します。
az vm image list --location eastus --publisher Canonical --offer 0001-com-ubuntu-server-jammy --sku 22_04-lts --all --output table
Note
UrnAlias
プロパティを使用して、デプロイ中に使用するイメージをより簡単に指定することができます (ただし、柔軟性は大幅に低下します)。 このプロパティは、最も一般的なイメージで簡単に使用でき、Azure CLI コマンド az vm image list --output table
を実行してその値を取得できます。 たとえば、UrnAlias
Ubuntu2204
は、イメージ Canonical:0001-com-ubuntu-server-jammy:22_04-lts-gen2:latest
に対応します。
適切な VM サイズを特定する
イメージの可用性に加えて、使用する予定の VM サイズが、デプロイをホストする Azure リージョンで利用可能であることも確認する必要があります。 これを確認するには、次のコマンドを実行します。
az vm list-sizes --location eastus --output table
一覧からサンプル デプロイに適した VM サイズを特定し、[名前] 列の値をメモします。 Azure VM プロビジョニングを開始する Azure CLI コマンドを実行する際は、同じ形式で名前を入力する必要があります。 Standard_F4s を選択したとします。
重要
先に進む前に、ターゲットの Azure リージョンでこの VM サイズが使用可能であることを確認し、必要に応じて、後続のコマンドのパラメーターの値を適宜調整します。
リソース グループを作成する
Azure VM のイメージとサイズを特定したので、プロビジョニング プロセスを開始できるようになりました。 まず、Azure VM とその依存リソースをホストするリソース グループを作成します。 リソース グループを作成するには、az group create
コマンドを使用します。 このコマンドでは、name パラメーターと location パラメーターの値の両方を指定する必要があります。これらのパラメーターは、それぞれリソース グループ名とターゲットの Azure リージョンを指定します。
az group create --name rg_lnx-cli --location eastus
このコマンドの出力は次の例のようになります。
{
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/sample-RG",
"location": "eastus",
"managedBy": null,
"name": "rg_lnx-cli",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": "Microsoft.Resources/resourceGroups"
}
Azure VM の作成
VM を作成するには、az vm create
コマンドを使用します。 このコマンドでは、OS イメージ、ディスク サイズ、管理資格情報など、さまざまなパラメーターがサポートされます。 次の例では、az vm create
コマンドによって、最新の Ubuntu 22_04-lts-gen2 SKU バージョンをホストする sample-cli-vm0 という名前の Azure VM のデプロイがトリガーされます。 プロビジョニング プロセスでは、SSH キー ペアに基づく認証を使用して、azureuser という名前の管理ユーザー アカウントを構成します。 秘密キーと公開キーが生成され、Azure VM への SSH アクセスを許可するために、ローカルで既定の場所 (~/.ssh) に格納されます。 Azure VM を作成するために使用するコード例を次に示します。
az vm create \
--resource-group rg_lnx-cli \
--name lnx-cli-vm \
--image Canonical:0001-com-ubuntu-server-jammy:22_04-lts-gen2:latest \
--size Standard_F4s \
--admin-username azureuser \
--generate-ssh-keys
注意
--size
パラメーターは省略可能です。 これを省略した場合、結果として生成されるサイズは、選択したイメージによって異なります。
Azure VM の実行は、その後すぐに (通常は数分以内に) 開始されます。 この Azure CLI コマンドの出力には、新しくデプロイされた Azure VM に関する JSON 形式の情報が含まれます。
{
"fqdns": "",
"id": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/rg_lnx-cli/providers/Microsoft.Compute/virtualMachines/lnx-cli-vm",
"location": "eastus",
"macAddress": "00-0D-3A-8C-C6-AE",
"powerState": "VM running",
"privateIpAddress": "10.0.0.4",
"publicIpAddress": "20.51.149.212",
"resourceGroup": "rg_lnx-cli",
"zones": ""
}
これで、秘密キーが保存されているコンピューターから、(<public_ip_address> プレースホルダーを、Azure CLI で生成された出力で識別した IP アドレスに置き換えた後) 次のコマンドを実行して、Azure VM に接続できるようになりました。
ssh azureuser@<public_ip_address>