Snabbstart: Publicera Ubuntu Virtual Machine (VM) som virtuell nätverksfunktion (VNF)
Den här snabbstarten az aosm
beskriver hur du använder Azure CLI-tillägget för att skapa och publicera en grundläggande definition för nätverksfunktioner. Syftet är att demonstrera arbetsflödet för AOSM-resurserna (Publisher Azure Operator Service Manager). De grundläggande begrepp som presenteras här är avsedda att förbereda användarna för att skapa mer spännande tjänster.
Förutsättningar
Ett Azure-konto med en aktiv prenumeration krävs. Om du inte har en Azure-prenumeration följer du anvisningarna här Börja kostnadsfritt för att skapa ett konto innan du börjar.
Slutför snabbstarten : Slutför kraven för att distribuera en virtualiserad nätverksfunktion i Azure Operator Service Manager
En befintlig resursgrupp där du har rollen Deltagare eller Rollen Deltagare för den här prenumerationen så att AOSM CLI-tillägget kan skapa resursgruppen.
Skapa indatafil
Kör följande kommando för att generera indatakonfigurationsfilen för NFD (Network Function Definition).
az aosm nfd generate-config --definition-type vnf
När du kör det här kommandot genereras en vnf-input.jsonc-fil.
Kommentar
Redigera filen vnf-input.jsonc och ersätt den med de värden som visas i exemplet. Spara filen som input-vnf-nfd.jsonc.
Om du använder en befintlig resursgrupp ändrar du fältet publisher_resource_group_name
så att det matchar det.
Här är en exempelfil för input-vnf-nfd.jsonc:
{
// Azure location to use when creating resources e.g uksouth
"location": "uksouth",
// Name of the Publisher resource you want your definition published to.
// Will be created if it does not exist.
"publisher_name": "ubuntu-publisher",
// Resource group for the Publisher resource.
// Will be created if it does not exist
"publisher_resource_group_name": "ubuntu-publisher-rg",
// Name of the ACR Artifact Store resource.
// Will be created if it does not exist.
"acr_artifact_store_name": "ubuntu-acr",
// Name of the network function.
"nf_name": "ubuntu-vm",
// Version of the network function definition in 1.1.1 format (three integers separated by dots).
"version": "1.0.0",
// If set to true, all NFD configuration parameters are made available to the designer, including optional parameters and those with defaults.
// If not set or set to false, only required parameters without defaults will be exposed.
"expose_all_parameters": false,
// Optional. Name of the storage account Artifact Store resource.
// Will be created if it does not exist (with a default name if none is supplied).
"blob_artifact_store_name": "ubuntu-blob-store",
// ARM template configuration. The ARM templates given here would deploy a VM if run. They will be used to generate the VNF.
"arm_templates": [
{
// Name of the artifact. Used as internal reference only.
"artifact_name": "ubuntu-template",
// Version of the artifact in 1.1.1 format (three integers separated by dots).
"version": "1.0.0",
// File path (absolute or relative to this configuration file) of the artifact you wish to upload from your local disk.
// Use Linux slash (/) file separator even if running on Windows.
"file_path": "ubuntu-template.json"
}
],
// VHD image configuration.
"vhd": {
// Optional. Name of the artifact. Name will be generated if not supplied.
"artifact_name": "",
// Version of the artifact in A-B-C format. Note the '-' (dash) not '.' (dot).
"version": "1-0-0",
// Supply either file_path or blob_sas_url, not both.
// File path (absolute or relative to this configuration file) of the artifact you wish to upload from your local disk.
// Leave as empty string if not required. Use Linux slash (/) file separator even if running on Windows.
"file_path": "livecd.ubuntu-cpc.azure.vhd",
// Optional. Specifies the size of empty data disks in gigabytes.
// This value cannot be larger than 1023 GB. Delete if not required.
"image_disk_size_GB": "30",
// Optional. Specifies the HyperVGenerationType of the VirtualMachine created from the image.
// Valid values are V1 and V2. V1 is the default if not specified. Delete if not required.
"image_hyper_v_generation": "V1",
// Optional. The ARM API version used to create the Microsoft.Compute/images resource.
// Delete if not required.
"image_api_version": "2023-03-01"
}
}
Olika | beskrivning |
---|---|
publisher_name | Namnet på den Publisher-resurs som du vill att definitionen ska publiceras till. Skapas om den inte finns. |
publisher_resource_group_name | Resursgrupp för Publisher-resursen. Skapas om den inte finns. |
acr_artifact_store_name | Namnet på resursen ACR Artifact Store. Skapas om den inte finns. |
Plats | Azure-plats att använda när du skapar resurser. |
nf_name | Namn på NF-definition. |
version | Version av NF-definitionen i A.B.C-format. |
blob_artifact_store_name | Namnet på lagringskontot Artifact Store-resursen. Skapas om den inte finns. |
expose_all_parameters | Om alla NFD-konfigurationsparametrar ska vara tillgängliga för designern eller inte. |
arm_template | artifact_name: Artefaktens namn. |
file_path: Valfritt. Filsökväg för artefakten som du vill ladda upp från den lokala disken. Ta bort om det inte behövs. Relativa sökvägar är relativa till konfigurationsfilen. I Windows slipper du omvänt snedstreck med ett annat omvänt snedstreck. | |
version: Version av artefakten. För ARM-mallar måste versionen vara i formatet A.B.C. | |
Vhd | artifact_name: Artefaktens namn. |
file_path: Valfritt. Filsökväg för artefakten som du vill ladda upp från den lokala disken. Ta bort om det inte behövs. Relativa sökvägar är relativa till konfigurationsfilen. I Windows slipper du omvänt snedstreck med ett annat omvänt snedstreck. | |
blob_sas_url: Valfritt. SAS-URL:en för blobartefakten som du vill kopiera till artefaktarkivet. Ta bort om det inte behövs. | |
version: Version av artefakten. Version av artefakten. För VHD-version måste vara i formatet A-B-C. | |
"image_disk_size_GB: Valfritt. Anger storleken på tomma datadiskar i gigabyte. Det här värdet får inte vara större än 1 023 GB. Ta bort om det inte behövs. | |
image_hyper_v_generation: Valfritt. Anger HyperVGenerationType för VirtualMachine som skapats från avbildningen. Giltiga värden är V1 och V2. V1 är standardvärdet om det inte anges. Ta bort om det inte behövs. | |
image_api_version: Valfritt. ARM API-versionen som används för att skapa resursen Microsoft.Compute/images. Ta bort om det inte behövs. |
Kommentar
När du använder alternativet file_path är det viktigt att ha en tillförlitlig Internetanslutning med tillräcklig uppladdningsbandbredd, eftersom VHD-avbildningarna vanligtvis är mycket stora.
Viktigt!
Varje variabel som beskrivs i föregående tabell måste vara unik. Resursgruppens namn kan till exempel inte redan finnas, och namn på utgivare och artefaktarkiv måste vara unika i regionen.
Skapa nätverksfunktionsdefinitionen (NFD)
Om du vill skapa NFD (Network Function Definition) initierar du byggprocessen.
az aosm nfd build --config-file input-vnf-nfd.jsonc --definition-type vnf
När bygget är klart undersöker du de genererade filerna för att bättre förstå NFD-strukturen (Network Function Definition).
Dessa filer skapas i en underkatalog som kallas vnf-cli-output:
Katalog/fil | beskrivning |
---|---|
vnf-cli-output/artifactManifest | |
deploy.bicep | Bicep-mall för att skapa artefaktmanifest, med artefakter ifyllda från indatafilen |
vnf-cli-output/artifacts | |
artifacts.json | Lista över artefakter (bilder och ARM-mallar) som ska laddas upp vid publicering. Korrelerar med artefaktmanifestet |
vnf-cli-output/base | |
deploy.bicep | Bicep-mall för att skapa underliggande AOSM-resurser som behövs för att starta en NF (utgivare, acr, nfdg) |
vnf-cli-output/nfDefinition | |
deploy.bicep | Bicep för att skapa NFDV (Network Function Definition Version) med programinformation för nätverksfunktioner från ARM-mallen som finns i indatafilen |
deployParameters.json | Schema som definierar distributionsparametrar som krävs för att skapa en nätverksfunktion (NF) från den här NFDV-versionen (Network Function Definition Version) |
<arm-template-name>-templateParameters.json | Filen innehåller de distributionsparametrar som tillhandahålls till NFDV (Network Function Definition Version) som mappats till de parametrar som krävs för ARM-mallen för virtuell dator (VM). Dessa ARM-mallparametrar för virtuella datorer kommer från ARM-mallarna som anges i indatafilen |
vhdParameters.json | Filen innehåller de distributionsparametrar som tillhandahålls till NFDV (Network Function Definition Version) som mappats till de parametrar som krävs för VHD-avbildningen. VHD-konfigurationsparametrarna kommer från avsnittet VHD i indatafilen |
vnf-cli-output | |
all_deploy.parameters.json | Superuppsättning av alla NF:s distributionsparametrar, vilket ger en enda fil för att anpassa resursnamn. Värdena som matas ut till den här filen med build-kommandot hämtas från filen vnf-input.jsonc, men kan redigeras i den här filen innan du kör publiceringen, till exempel för att publicera till en annan plats eller använda ett annat utgivarnamn |
index.json | Fil som används internt vid publicering av resurser. Redigera inte |
Kommentar
Om fel har gjorts är det enda alternativet att korrigera att köra kommandot igen med rätt val.
Publicera nätverksfunktionsdefinitionen och ladda upp artefakter
Kör följande kommando för att publicera NFD (Network Function Definition) och ladda upp de associerade artefakterna:
Kommentar
Utgivarnamn måste vara unika i en region. Det är ganska troligt att "ubuntu-publisher" som definierats i exempelkonfigurationsfilen redan finns.
Om du får ett felmeddelande om att det redan finns en privat utgivarresurs med namnet ubuntu-publisher i den angivna regionen redigerar publisher_name
du fältet i konfigurationsfilen så att den är unik (t.ex. lägger till ett suffix för slumpmässig sträng), kör build
kommandot (ovan) och kör sedan kommandot igen publish
.
Om du fortsätter med att skapa en nätverkstjänstdesign måste du använda det här nya pubilsher-namnet i matrisen resource_element_templates
.
az aosm nfd publish --build-output-folder vnf-cli-output --definition-type vnf
När kommandot har slutförts kontrollerar du resurserna i publisher-resursgruppen för att se de skapade komponenterna och artefakterna.
Dessa resurser skapas:
Resursnamn | Resurstyp |
---|---|
ubuntu-vm | Definition av nätverksfunktion. |
1.0.0 | Definitionsversion för nätverksfunktion. |
ubuntu-publisher | Utgivare. |
ubuntu-vm-acr-manifest-1-0-0 | Publisher Artifact Manifest. |
ubuntu-vm-sa-manifest-1-0-0 | Publisher Artifact Manifest. |
ubuntu-acr | Publisher Artifact Store. |
ubuntu-blob-store | Publisher Artifact Store. |