Dela via


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

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.

Nästa steg