快速入門:完成在 Azure 操作員服務管理員中部署虛擬化網路函式的必要條件
開始使用 Azure 操作員服務管理員之前,請確定您已註冊必要的資源提供者,並安裝必要的工具來與服務互動。
必要條件
下載並安裝 Azure CLI
您可以在 Azure Cloud Shell 中使用 Bash 環境。 如需詳細資訊,請參閱 Azure Cloud Shell 中的 Bash 快速入門。
如果您想要在本機執行 CLI 參考命令,請使用 如何安裝 Azure CLI 來安裝 Azure CLI。
如果您是在 Windows 或 macOS 上執行機器,請考慮在 Docker 容器中執行 Azure CLI。 如需詳細資訊,請參閱〈如何在 Docker 容器中執行 Azure CLI〉。
針對本機安裝,請使用 az login
命令登入 Azure CLI。
請遵循您終端機上顯示的步驟,完成驗證程序。 如需其他登入選項,請參閱 使用 Azure CLI 登入。
使用 Azure CLI 登入
若要使用 Azure CLI 登入,請發出下列命令。
az login
選取訂用帳戶
若要使用訂用帳戶標識碼變更使用中的訂用帳戶,請發出下列命令。
az account set --subscription "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
安裝 Azure 操作員服務管理員 (AOSM) CLI 擴充功能
若要安裝 Azure 操作員服務管理員 CLI 擴充功能,請發出下列命令。
az extension add --name aosm
執行 az version
以判斷已安裝的版本和相依連結庫。 藉由發出 命令 az upgrade
升級至最新版本。
註冊必要的資源提供者
在使用 Azure 操作員服務管理員之前,您必須先執行這些命令來註冊必要的資源提供者。 註冊程式最多可能需要 5 分鐘的時間。
# Register Resource Provider
az provider register --namespace Microsoft.ContainerInstance
驗證註冊狀態
若要確認資源提供者的註冊狀態,您可以執行下列命令:
# Query the Resource Provider
az provider show -n Microsoft.ContainerInstance --query "{RegistrationState: registrationState, ProviderName: namespace}"
成功時,會顯示下列輸出:
{
"ProviderName": "Microsoft.ContainerInstance",
"RegistrationState": "Registered"
}
注意
資源提供者註冊可能需要幾分鐘的時間才能完成。 註冊成功之後,您就可以開始使用網路函式管理員 (NFM) 或 Azure 操作員服務管理員。
虛擬網絡 函式 (VNF) 需求
下載並擷取Ubuntu映像
如果您已經擁有可透過 Azure Blob 記憶體中的 SAS URL 存取的 Ubuntu 映射,您可以省略此步驟來節省時間。 請記住,Ubuntu 映射的大小約為 650 MB,因此傳輸程式可能需要一段時間。
# Download the Ubuntu image
wget https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64-azure.vhd.tar.gz
# Extract the downloaded image
tar -xzvf jammy-server-cloudimg-amd64-azure.vhd.tar.gz
虛擬機 (VM) ARM 範本
本快速入門會使用下列適用於Ubuntu虛擬機 (VM) 的ARM樣本範例。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.21.1.54444",
"templateHash": "2626436546580286549"
}
},
"parameters": {
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
},
"subnetName": {
"type": "string"
},
"ubuntuVmName": {
"type": "string",
"defaultValue": "ubuntu-vm"
},
"virtualNetworkId": {
"type": "string"
},
"sshPublicKeyAdmin": {
"type": "string"
},
"imageName": {
"type": "string"
}
},
"variables": {
"imageResourceGroup": "[resourceGroup().name]",
"subscriptionId": "[subscription().subscriptionId]",
"vmSizeSku": "Standard_D2s_v3"
},
"resources": [
{
"type": "Microsoft.Network/networkInterfaces",
"apiVersion": "2021-05-01",
"name": "[format('{0}_nic', parameters('ubuntuVmName'))]",
"location": "[parameters('location')]",
"properties": {
"ipConfigurations": [
{
"name": "ipconfig1",
"properties": {
"subnet": {
"id": "[format('{0}/subnets/{1}', parameters('virtualNetworkId'), parameters('subnetName'))]"
},
"primary": true,
"privateIPAddressVersion": "IPv4"
}
}
]
}
},
{
"type": "Microsoft.Compute/virtualMachines",
"apiVersion": "2021-07-01",
"name": "[parameters('ubuntuVmName')]",
"location": "[parameters('location')]",
"properties": {
"hardwareProfile": {
"vmSize": "[variables('vmSizeSku')]"
},
"storageProfile": {
"imageReference": {
"id": "[extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', variables('subscriptionId'), variables('imageResourceGroup')), 'Microsoft.Compute/images', parameters('imageName'))]"
},
"osDisk": {
"osType": "Linux",
"name": "[format('{0}_disk', parameters('ubuntuVmName'))]",
"createOption": "FromImage",
"caching": "ReadWrite",
"writeAcceleratorEnabled": false,
"managedDisk": "[json('{\"storageAccountType\": \"Premium_LRS\"}')]",
"deleteOption": "Delete",
"diskSizeGB": 30
}
},
"osProfile": {
"computerName": "[parameters('ubuntuVmName')]",
"adminUsername": "azureuser",
"linuxConfiguration": {
"disablePasswordAuthentication": true,
"ssh": {
"publicKeys": [
{
"path": "/home/azureuser/.ssh/authorized_keys",
"keyData": "[parameters('sshPublicKeyAdmin')]"
}
]
},
"provisionVMAgent": true,
"patchSettings": {
"patchMode": "ImageDefault",
"assessmentMode": "ImageDefault"
}
},
"secrets": [],
"allowExtensionOperations": true
},
"networkProfile": {
"networkInterfaces": [
{
"id": "[resourceId('Microsoft.Network/networkInterfaces', format('{0}_nic', parameters('ubuntuVmName')))]"
}
]
}
},
"dependsOn": [
"[resourceId('Microsoft.Network/networkInterfaces', format('{0}_nic', parameters('ubuntuVmName')))]"
]
}
]
}
將上述 json 檔案儲存為 本機電腦上的ubuntu-template.json 。