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
Wymagane jest konto platformy Azure z aktywną subskrypcją. Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem postępuj zgodnie z instrukcjami podanymi w temacie Rozpocznij bezpłatnie , aby utworzyć konto.
Istniejąca grupa zasobów, w której masz rolę Współautor lub rola Współautor dla tej subskrypcji, aby rozszerzenie interfejsu wiersza polecenia usługi AOSM mogło utworzyć grupę zasobów.
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. |