您可以使用 Azure CLI 建立 Ubuntu Server 20.04 LTS 虛擬機(VM)。 在本文中,您會建立和使用虛擬機。 本文也會說明如何:
- 使用遠端用戶端連線到虛擬機。
- 安裝 NGINX 網頁伺服器並檢視預設首頁。
- 清除未使用的資源。
必要條件
開始之前,請確定您有下列必要條件:
Azure Stack Hub Marketplace 中的 Linux 映射
Azure Stack Hub Marketplace 預設不包含 Linux 映射。 讓 Azure Stack Hub 操作員提供您需要的 Ubuntu Server 20.04 LTS 映像。 操作員可以使用將 Marketplace 專案從 Azure 下載至 Azure Stack Hub 中的指示。
Azure Stack Hub 需要特定版本的 Azure CLI 來建立和管理其資源。 如果您沒有針對 Azure Stack Hub 設定 Azure CLI,請透過 VPN 連線,登入以 Windows 為基礎的外部用戶端,並遵循 安裝和設定 Azure CLI 的指示。
公用安全殼層 (SSH) 金鑰,名稱 為 id_rsa.pub ,儲存在 Windows 使用者設定檔的 .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 網頁伺服器,因此您必須開啟埠 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 網頁伺服器
若要更新套件資源並安裝最新的 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 位址來存取網頁伺服器。 若要這樣做,請開啟瀏覽器,然後移至 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>
下一步
在本快速入門中,您已使用網頁伺服器部署基本的 Linux 伺服器虛擬機。 若要深入瞭解 Azure Stack Hub 虛擬機,請參閱 Azure Stack Hub 中虛擬機的考慮。