Udostępnij za pośrednictwem


Szybki start: publikowanie maszyny wirtualnej z systemem Ubuntu jako funkcji sieci wirtualnej (VNF)

W tym przewodniku Szybki start opisano sposób używania rozszerzenia interfejsu az aosm wiersza polecenia platformy Azure do tworzenia i publikowania podstawowej definicji funkcji sieciowej. Jego celem jest zademonstrowanie przepływu pracy zasobów programu Azure Operator Service Manager (AOSM) wydawcy. Przedstawione tutaj podstawowe pojęcia mają na celu przygotowanie użytkowników do tworzenia bardziej ekscytujących usług.

Wymagania wstępne

Tworzenie pliku wejściowego

Wykonaj następujące polecenie, aby wygenerować plik konfiguracji danych wejściowych dla definicji funkcji sieciowej (NFD).

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

Po wykonaniu tego polecenia zostanie wygenerowany plik vnf-input.jsonc.

Uwaga

Zmodyfikuj plik vnf-input.jsonc, zastępując go wartościami przedstawionymi w przykładzie. Zapisz plik jako input-vnf-nfd.jsonc.

Jeśli używasz istniejącej grupy zasobów, zmień publisher_resource_group_name pole, aby je dopasować.

Oto przykładowy plik 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"
  }
}
Zmienna opis
publisher_name Nazwa zasobu wydawcy, do którego chcesz opublikować definicję. Utworzono, jeśli nie istnieje.
publisher_resource_group_name Grupa zasobów dla zasobu wydawcy. Utworzono, jeśli nie istnieje.
acr_artifact_store_name Nazwa zasobu magazynu artefaktów usługi ACR. Utworzono, jeśli nie istnieje.
location Lokalizacja platformy Azure do użycia podczas tworzenia zasobów.
nf_name Nazwa definicji NF.
version Wersja definicji NF w formacie A.B.C.
blob_artifact_store_name Nazwa zasobu magazynu Artifact Store. Utworzono, jeśli nie istnieje.
expose_all_parameters Określa, czy wszystkie parametry konfiguracji NFD mają być dostępne dla projektanta.
arm_template artifact_name: nazwa artefaktu.
file_path: opcjonalne. Ścieżka pliku artefaktu, który chcesz przekazać z dysku lokalnego. Usuń, jeśli nie jest to wymagane. Ścieżki względne są względne względem pliku konfiguracji. W systemie Windows wszelkie ukośniki odwrotne z innym ukośnikiem odwrotnym.
version: wersja artefaktu. Wersja szablonów usługi ARM musi mieć format A.B.C.
Vhd artifact_name: nazwa artefaktu.
file_path: opcjonalne. Ścieżka pliku artefaktu, który chcesz przekazać z dysku lokalnego. Usuń, jeśli nie jest to wymagane. Ścieżki względne są względne względem pliku konfiguracji. W systemie Windows wszelkie ukośniki odwrotne z innym ukośnikiem odwrotnym.
blob_sas_url: opcjonalne. Adres URL sygnatury dostępu współdzielonego artefaktu obiektu blob, który chcesz skopiować do magazynu artefaktów. Usuń, jeśli nie jest to wymagane.
version: wersja artefaktu. Wersja artefaktu. W przypadku dysków VHD wersja musi mieć format A-B-C.
"image_disk_size_GB: opcjonalne. Określa rozmiar pustych dysków danych w gigabajtach. Ta wartość nie może być większa niż 1023 GB. Usuń, jeśli nie jest to wymagane.
image_hyper_v_generation: opcjonalne. Określa hyperVGenerationType maszyny wirtualnej utworzonej na podstawie obrazu. Prawidłowe wartości to V1 i V2. Wersja 1 jest wartością domyślną, jeśli nie zostanie określona. Usuń, jeśli nie jest to wymagane.
image_api_version: opcjonalne. Wersja interfejsu API usługi ARM używana do tworzenia zasobu Microsoft.Compute/images. Usuń, jeśli nie jest to wymagane.

Uwaga

W przypadku korzystania z opcji file_path ważne jest, aby mieć niezawodne połączenie internetowe z wystarczającą przepustowością przekazywania, ponieważ obrazy wirtualnego dysku twardego są zwykle bardzo duże.

Ważne

Każda zmienna opisana w poprzedniej tabeli musi być unikatowa. Na przykład nazwa grupy zasobów nie może już istnieć, a nazwy magazynów artefaktów i wydawcy muszą być unikatowe w regionie.

Tworzenie definicji funkcji sieci (NFD)

Aby utworzyć definicję funkcji sieciowej (NFD), zainicjuj proces kompilacji.

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

Po zakończeniu kompilacji sprawdź wygenerowane pliki, aby lepiej zrozumieć strukturę definicji funkcji sieciowej (NFD).

Te pliki są tworzone w podkatalogu o nazwie vnf-cli-output:

Katalog/plik opis
vnf-cli-output/artifactManifest
deploy.bicep Szablon Bicep umożliwiający utworzenie manifestu artefaktu z artefaktami wypełnionymi z pliku wejściowego
vnf-cli-output/artifacts
artifacts.json Lista artefaktów (obrazów i szablonów usługi ARM) do przekazania w ramach publikowania. Koreluje z manifestem artefaktu
vnf-cli-output/base
deploy.bicep Szablon Bicep umożliwiający utworzenie bazowych zasobów AOSM potrzebnych do uruchamiania systemu plików NF (wydawca, acr, nfdg)
vnf-cli-output/nfDefinition
deploy.bicep Bicep w celu utworzenia wersji definicji funkcji sieciowej (NFDV) z informacjami o aplikacji funkcji sieciowej z szablonu usługi ARM podanego w pliku wejściowym
deployParameters.json Schemat definiujący parametry wdrożenia wymagane do utworzenia funkcji sieciowej (NF) z tej wersji definicji funkcji sieciowej (NFDV)
<arm-template-name>-templateParameters.json Plik zawiera parametry wdrożenia podane w wersji definicji funkcji sieciowej (NFDV) zamapowane na parametry wymagane dla szablonu usługi ARM maszyny wirtualnej. Te parametry szablonu usługi ARM maszyny wirtualnej pochodzą z szablonów usługi ARM podanych w pliku wejściowym
vhdParameters.json Plik zawiera parametry wdrożenia podane w wersji definicji funkcji sieciowej (NFDV) zamapowane na parametry wymagane dla obrazu VHD. Parametry konfiguracji wirtualnego dysku twardego pochodzą z sekcji wirtualnego dysku twardego pliku wejściowego
vnf-cli-output
all_deploy.parameters.json Nadzbiór wszystkich parametrów wdrażania systemu plików NF, zapewniając pojedynczy plik do dostosowywania nazw zasobów. Wartości wyjściowe tego pliku za pomocą polecenia kompilacji są pobierane z pliku vnf-input.jsonc, ale mogą być edytowane w tym pliku przed uruchomieniem publikowania, na przykład w celu opublikowania w innej lokalizacji lub użycia innej nazwy wydawcy
index.json Plik używany wewnętrznie podczas publikowania zasobów. Nie edytuj

Uwaga

Jeśli wystąpiły błędy, jedyną opcją do poprawienia jest ponowne uruchomienie polecenia z odpowiednimi wyborami.

Publikowanie definicji funkcji sieciowej i przekazywanie artefaktów

Wykonaj następujące polecenie, aby opublikować definicję funkcji sieciowej (NFD) i przekazać skojarzone artefakty:

Uwaga

Nazwy wydawców muszą być unikatowe w obrębie regionu. Prawdopodobnie plik "ubuntu-publisher" zdefiniowany w przykładowym pliku konfiguracji już istnieje.

Jeśli zostanie wyświetlony komunikat o błędzie "Zasób wydawcy prywatnego o nazwie ubuntu-publisher już istnieje w podanym regionie", zmodyfikuj publisher_name pole w pliku konfiguracji, aby było unikatowe (np. dodać losowy sufiks ciągu), uruchom build ponownie polecenie (powyżej), a następnie uruchom ponownie to publish polecenie.

Jeśli utworzysz projekt usługi sieciowej, musisz użyć tej nowej nazwy obiektu pubilsher w tablicy resource_element_templates .

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

Po zakończeniu polecenia sprawdź zasoby w grupie zasobów wydawcy, aby obserwować utworzone składniki i artefakty.

Te zasoby są tworzone:

Nazwa zasobu Typ zasobu
ubuntu-vm Definicja funkcji sieciowej.
1.0.0 Wersja definicji funkcji sieciowej.
ubuntu-publisher Wydawca.
ubuntu-vm-acr-manifest-1-0-0 Manifest artefaktu wydawcy.
ubuntu-vm-sa-manifest-1-0-0 Manifest artefaktu wydawcy.
ubuntu-acr Magazyn artefaktów programu Publisher.
ubuntu-blob-store Magazyn artefaktów programu Publisher.

Następne kroki