Rychlý start: Publikování virtuálního počítače s Ubuntu jako funkce virtuální sítě (VNF)

Tento rychlý start popisuje, jak pomocí az aosm rozšíření Azure CLI vytvořit a publikovat základní definici síťové funkce. Jejím účelem je předvést pracovní postup prostředků AOSM (Publisher Azure Operator Service Manager). Základní koncepty, které jsou zde uvedeny, jsou určeny k přípravě uživatelů na vytváření více vzrušujících služeb.

Požadavky

Vytvoření vstupního souboru

Spuštěním následujícího příkazu vygenerujte vstupní konfigurační soubor pro definici síťové funkce (NFD).

az aosm nfd generate-config --definition-type vnf

Po spuštění tohoto příkazu se vygeneruje soubor vnf-input.jsonc.

Poznámka:

Upravte soubor vnf-input.jsonc a nahraďte ho hodnotami zobrazenými v ukázce. Uložte soubor jako input-vnf-nfd.jsonc.

Pokud používáte existující skupinu prostředků, změňte publisher_resource_group_name pole tak, aby odpovídalo.

Tady je ukázkový soubor 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"
  }
}
Proměnná Popis
publisher_name Název prostředku publisheru, do kterého chcete definici publikovat. Vytvořeno, pokud neexistuje.
publisher_resource_group_name Skupina prostředků pro prostředek Publisheru Vytvořeno, pokud neexistuje.
acr_artifact_store_name Název prostředku ACR Artifact Store. Vytvořeno, pokud neexistuje.
location Umístění Azure, které se má použít při vytváření prostředků.
nf_name Název definice NF.
version Verze definice NF ve formátu A.B.C.
blob_artifact_store_name Název prostředku úložiště Artifact Store. Vytvořeno, pokud neexistuje.
expose_all_parameters Zda nebo ne zpřístupnit všechny parametry konfigurace NFD návrháři.
arm_template artifact_name: Název artefaktu.
file_path: Volitelné. Cesta k souboru artefaktu, který chcete nahrát z místního disku. Pokud to není nutné, odstraňte ho. Relativní cesty jsou relativní vzhledem ke konfiguračnímu souboru. V systému Windows uniknou všechna zpětná lomítka s jiným zpětným lomítkem.
verze: Verze artefaktu. Pro verzi šablon ARM musí být ve formátu A.B.C.
Vhd artifact_name: Název artefaktu.
file_path: Volitelné. Cesta k souboru artefaktu, který chcete nahrát z místního disku. Pokud to není nutné, odstraňte ho. Relativní cesty jsou relativní vzhledem ke konfiguračnímu souboru. V systému Windows uniknou všechna zpětná lomítka s jiným zpětným lomítkem.
blob_sas_url: Volitelné. Adresa URL SAS artefaktu objektu blob, který chcete zkopírovat do úložiště artefaktů Pokud to není nutné, odstraňte ho.
verze: Verze artefaktu. Verze artefaktu Pro verzi virtuálních pevných disků musí být ve formátu A-B-C.
"image_disk_size_GB: Volitelné. Určuje velikost prázdných datových disků v gigabajtech. Tato hodnota nemůže být větší než 1023 GB. Pokud to není nutné, odstraňte ho.
image_hyper_v_generation: Volitelné. Určuje HyperVGenerationType virtuálního počítače vytvořeného z image. Platné hodnoty jsou V1 a V2. V1 je výchozí hodnota, pokud není zadána. Pokud to není nutné, odstraňte ho.
image_api_version: Volitelné. Verze rozhraní API ARM použitá k vytvoření prostředku Microsoft.Compute/images. Pokud to není nutné, odstraňte ho.

Poznámka:

Při použití možnosti file_path je nezbytné mít spolehlivé připojení k internetu s dostatečnou šířkou pásma nahrávání, protože image VHD jsou obvykle velmi velké.

Důležité

Každá proměnná popsaná v předchozí tabulce musí být jedinečná. Název skupiny prostředků například nemůže existovat a názvy úložiště artefaktů a vydavatele a úložiště artefaktů musí být v dané oblasti jedinečné.

Sestavení definice síťové funkce (NFD)

Chcete-li vytvořit definici síťové funkce (NFD), zahajte proces sestavení.

az aosm nfd build --config-file input-vnf-nfd.jsonc --definition-type vnf

Po dokončení sestavení prozkoumejte vygenerované soubory, abyste lépe porozuměli struktuře definice síťové funkce (NFD).

Tyto soubory se vytvoří v podadresáři s názvem vnf-cli-output:

Adresář / soubor Popis
vnf-cli-output/artifactManifest
deploy.bicep Šablona Bicep pro vytvoření manifestu artefaktů s artefakty vyplněnými ze vstupního souboru
vnf-cli-output/artifacts
artifacts.json Seznam artefaktů (obrázků a šablon ARM), které se mají nahrát při publikování Koreluje s manifestem artefaktu.
vnf-cli-output/base
deploy.bicep Šablona Bicep pro vytvoření podkladových prostředků AOSM potřebných ke spuštění NF (vydavatel, acr, nfdg)
vnf-cli-output/nfDefinition
deploy.bicep Bicep k vytvoření verze definice síťové funkce (NFDV) s informacemi o aplikaci síťových funkcí ze šablony ARM poskytnuté ve vstupním souboru
deployParameters.json Schéma definující parametry nasazení potřebné k vytvoření síťové funkce (NF) z této verze definice síťové funkce (NFDV)
<arm-template-name>-templateParameters.json Soubor obsahuje parametry nasazení poskytnuté verzi definice síťové funkce (NFDV) namapované na parametry požadované pro šablonu ARM virtuálního počítače. Tyto parametry šablon ARM virtuálního počítače pocházejí ze šablon ARM poskytovaných ve vstupním souboru.
vhdParameters.json Soubor obsahuje parametry nasazení poskytnuté verzi definice síťové funkce (NFDV) namapované na parametry požadované pro image virtuálního pevného disku. Konfigurační parametry virtuálního pevného disku pocházejí z oddílu VHD vstupního souboru.
vnf-cli-output
all_deploy.parameters.json Nadmnožina všech parametrů nasazení NF poskytuje jeden soubor pro přizpůsobení názvů prostředků. Hodnoty výstupu tohoto souboru příkazem sestavení pocházejí ze souboru vnf-input.jsonc, ale před spuštěním publikování je možné je upravit v tomto souboru, například publikovat do jiného umístění nebo použít jiný název vydavatele.
index.json Soubor používaný interně při publikování prostředků. Neupravovat

Poznámka:

Pokud došlo k chybám, jedinou možností, jak opravit, je znovu spustit příkaz se správnými výběry.

Publikování definice síťové funkce a nahrání artefaktů

Spuštěním následujícího příkazu publikujte definici síťové funkce (NFD) a nahrajte přidružené artefakty:

Poznámka:

Názvy vydavatelů musí být v rámci oblasti jedinečné. Je docela pravděpodobné, že "ubuntu-publisher" definovaný v ukázkovém konfiguračním souboru již existuje.

Pokud se zobrazí chyba "Prostředek privátního vydavatele s názvem ubuntu-publisher již existuje v zadané oblasti", upravte publisher_name pole v konfiguračním souboru tak, aby bylo jedinečné (např. přidání přípony náhodného řetězce), znovu spusťte build příkaz (výše) a pak tento publish příkaz znovu spusťte.

Pokud budete pokračovat vytvořením návrhu síťové služby, budete muset v poli použít tento nový název pubilšeru resource_element_templates .

az aosm nfd publish --build-output-folder vnf-cli-output --definition-type vnf

Po dokončení příkazu zkontrolujte prostředky ve skupině prostředků vydavatele a prohlédněte si vytvořené komponenty a artefakty.

Vytvoří se tyto prostředky:

Název prostředku Typ prostředku
Ubuntu-vm Definice síťové funkce
1.0.0 Verze definice síťové funkce
ubuntu-publisher Vydavatel.
ubuntu-vm-acr-manifest-1-0-0 Manifest artefaktů vydavatele.
ubuntu-vm-sa-manifest-1-0-0 Manifest artefaktů vydavatele.
ubuntu-acr Úložiště artefaktů vydavatele.
ubuntu-blob-store Úložiště artefaktů vydavatele.

Další kroky