Azure CLI を使用して、Ubuntu Server 20.04 LTS 仮想マシン (VM) を作成できます。 この記事では、仮想マシンを作成し、使用します。 この記事では、次の方法についても説明します。
- リモート クライアントを使用して仮想マシンに接続する。
- NGINX Web サーバーをインストールし、既定のホーム ページを表示する。
- 使用されていないリソースをクリーンアップします。
前提条件
開始する前に、以下の前提条件を確認してください。
Azure Stack Hub Marketplace 内の Linux イメージ
Azure Stack Hub Marketplace には、既定では Linux イメージが含まれていません。 Azure Stack Hub オペレーターに、必要な Ubuntu Server 20.04 LTS イメージを提供してもらう。 オペレーターは、Azure から Azure Stack Hub への Marketplace の項目のダウンロードに関する記事の手順を使用できます。
Azure Stack Hub には、そのリソースを作成して管理するために、Azure CLI の特定のバージョンが必要です。 Azure Stack Hub 用に構成された Azure CLI がない場合は、VPN 経由で接続している場合は Windows ベースの外部クライアントにサインインし、 Azure CLI のインストールと構成の手順に従います。
Windows ユーザー プロファイルの .ssh ディレクトリに保存された id_rsa.pub という名前の Secure Shell (SSH) 公開キー。 SSH キーの作成の詳細については、「 Azure Stack Hub で SSH キー ペアを使用する」を参照してください。
リソース グループを作成する
リソース グループは、Azure Stack Hub リソースのデプロイと管理を行うことができる論理コンテナーです。 Azure Stack Hub 統合システムから、 az group create コマンドを実行してリソース グループを作成します。
注
次のコード例では、すべての変数に値を割り当てています。 しかし、独自の値を割り当てることができます。
次の例では、ローカルの場所にランダムなサフィックスを持つ myResourceGroup という名前のリソース グループを作成します。
export RANDOM_SUFFIX=$(openssl rand -hex 3)
export RESOURCE_GROUP="myResourceGroup$RANDOM_SUFFIX"
export LOCATION="eastus2"
az group create --name $RESOURCE_GROUP --location $LOCATION
結果:
{
"id": "/subscriptions/xxxxx/resourceGroups/myResourceGroupxxx",
"location": "local",
"managedBy": null,
"name": "myResourceGroupxxx",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": "Microsoft.Resources/resourceGroups"
}
仮想マシンの作成
az vm create コマンドを使用して仮想マシンを作成します。 次の例では、myVM という名前の VM を作成します。 この例では、管理者ユーザー名として Demouser を使用します。 これらの値を、お使いの環境に適した内容に変更します。
export VM_NAME="myVM$RANDOM_SUFFIX"
az vm create \
--resource-group $RESOURCE_GROUP \
--name $VM_NAME \
--image "Ubuntu2204" \
--admin-username "azureuser" \
--assign-identity \
--generate-ssh-keys \
--public-ip-sku Standard \
--location $LOCATION
結果:
{
"fqdns": "",
"id": "/subscriptions/xxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.Compute/virtualMachines/myVMxxx",
"location": "local",
"name": "myVMxxx",
"osProfile": {
"computerName": "myVMxxx",
"adminUsername": "Demouser"
},
"publicIpAddress": "x.x.x.x",
"powerState": "VM running",
"provisioningState": "Succeeded"
}
パブリック IP アドレスは、 PublicIpAddress パラメーターで返されます。 後で仮想マシンで使うため、アドレスをメモします。
Web トラフィック用にポート 80 を開く
この仮想マシンは IIS Web サーバーを実行するため、インターネット トラフィックへのポート 80 を開く必要があります。 ポートを開くために、az vm open-port コマンドを使用します。
az vm open-port --port 80 --resource-group $RESOURCE_GROUP --name $VM_NAME
結果:
{
"endPort": 80,
"name": "openPort80",
"port": 80,
"protocol": "Tcp",
"provisioningState": "Succeeded",
"resourceGroup": "myResourceGroupxxx",
"startPort": 80
}
SSH を使用して仮想マシンに接続する
SSH がインストールされたクライアント コンピューターから、仮想マシンに接続します。 Windows クライアントで作業する場合は、 PuTTY を使用して接続を作成します。 仮想マシンに接続するには、 ssh コマンドを使用できます。
NGINX Web サーバーのインストール
パッケージ リソースを更新し、最新の NGINX パッケージをインストールするため、次のスクリプトを実行します。
output=$(az vm run-command invoke --resource-group $RESOURCE_GROUP --name $VM_NAME --command-id RunShellScript --scripts 'apt-get -y install nginx')
value=$(echo "$output" | jq -r '.value[0].message')
extracted=$(echo "$value" | awk '/[stdout]/,/[stderr]/' | sed '/[stdout]/d' | sed '/[stderr]/d')
echo "$extracted"
NGINX のようこそページの表示
NGINX Web サーバーがインストールされ、仮想マシン上のポート 80 が開かれたので、その仮想マシンのパブリック IP アドレスを使用して Web サーバーにアクセスできます。 そのためには、ブラウザーを開き、http://<public IP address> に移動します。 または、 curl コマンドを使用して NGINX ウェルカム ページを表示することもできます。
export PUBLIC_IP=$(az vm show -d -g $RESOURCE_GROUP -n $VM_NAME --query publicIps -o tsv)
output=$(az vm run-command invoke --resource-group $RESOURCE_GROUP --name $VM_NAME --command-id RunShellScript --scripts 'curl -v http://localhost')
value=$(echo "$output" | jq -r '.value[0].message')
extracted=$(echo "$value" | awk '/[stdout]/,/[stderr]/' | sed '/[stdout]/d' | sed '/[stderr]/d')
echo "$extracted"
結果:
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
次のステップ
このクイック スタートでは、Web サーバーがインストールされた基本の Linux サーバー仮想マシンをデプロイしました。 Azure Stack Hub 仮想マシンの詳細については、Azure Stack Hub の仮想マシンの考慮事項に関するページを参照してください。