Bagikan melalui


Mulai cepat: Menerbitkan Ubuntu Virtual Machine (VM) sebagai Fungsi Jaringan Virtual (VNF)

Mulai cepat ini menjelaskan cara menggunakan az aosm ekstensi Azure CLI untuk membuat dan menerbitkan Definisi Fungsi Jaringan dasar. Tujuannya adalah untuk menunjukkan alur kerja sumber daya Publisher Azure Operator Service Manager (AOSM). Konsep dasar yang disajikan di sini dimaksudkan untuk mempersiapkan pengguna untuk membangun layanan yang lebih menarik.

Prasyarat

Membuat file input

Jalankan perintah berikut untuk menghasilkan file konfigurasi input untuk Definisi Fungsi Jaringan (NFD).

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

Setelah Anda menjalankan perintah ini, file vnf-input.jsonc dihasilkan.

Catatan

Edit file vnf-input.jsonc, ganti dengan nilai yang ditunjukkan dalam sampel. Simpan file sebagai input-vnf-nfd.jsonc.

Jika Anda menggunakan grup sumber daya yang ada, ubah publisher_resource_group_name bidang untuk mencocokkannya.

Berikut adalah contoh file 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"
  }
}
Variabel Deskripsi
publisher_name Nama sumber daya Publisher yang ingin Anda terbitkan definisi Anda. Dibuat jika tidak ada.
publisher_resource_group_name Grup sumber daya untuk sumber daya Publisher. Dibuat jika tidak ada.
acr_artifact_store_name Nama sumber daya Penyimpanan Artefak ACR. Dibuat jika tidak ada.
Lokasi Lokasi Azure untuk digunakan saat membuat sumber daya.
nf_name Nama definisi NF.
versi Versi definisi NF dalam format A.B.C.
blob_artifact_store_name Nama sumber daya Penyimpanan Artefak akun penyimpanan. Dibuat jika tidak ada.
ekspos_semua_parameter Apakah akan membuat semua parameter konfigurasi NFD tersedia untuk perancang atau tidak.
arm_template artifact_name: Nama artefak.
file_path: Opsional. Jalur file artefak yang ingin Anda unggah dari disk lokal Anda. Hapus jika tidak diperlukan. Jalur relatif relatif terhadap file konfigurasi. Pada Windows, keluar dari garis miring terbelakang dengan garis miring terbelakang lainnya.
version: Versi artefak. Untuk versi templat ARM harus dalam format A.B.C.
Vhd artifact_name: Nama artefak.
file_path: Opsional. Jalur file artefak yang ingin Anda unggah dari disk lokal Anda. Hapus jika tidak diperlukan. Jalur relatif relatif terhadap file konfigurasi. Pada Windows, keluar dari garis miring terbelakang dengan garis miring terbelakang lainnya.
blob_sas_url: Opsional. URL SAS artefak blob yang ingin Anda salin ke Penyimpanan Artefak Anda. Hapus jika tidak diperlukan.
version: Versi artefak. Versi artefak. Untuk versi VHD harus dalam format A-B-C.
"image_disk_size_GB: Opsional. Menentukan ukuran disk data kosong dalam gigabyte. Nilai ini tidak boleh lebih besar dari 1023 GB. Hapus jika tidak diperlukan.
image_hyper_v_generation: Opsional. Menentukan HyperVGenerationType dari VirtualMachine yang dibuat dari gambar. Nilai yang valid adalah V1 dan V2. V1 adalah default jika tidak ditentukan. Hapus jika tidak diperlukan.
image_api_version: Opsional. Versi ARM API yang digunakan untuk membuat sumber daya Microsoft.Compute/images. Hapus jika tidak diperlukan.

Catatan

Saat menggunakan opsi file_path, penting untuk memiliki koneksi internet yang andal dengan bandwidth unggahan yang memadai, karena gambar VHD biasanya sangat besar.

Penting

Setiap variabel yang dijelaskan dalam tabel sebelumnya harus unik. Misalnya, nama grup sumber daya belum dapat ada, dan nama penerbit dan penyimpanan artefak harus unik di wilayah tersebut.

Membangun Definisi Fungsi Jaringan (NFD)

Untuk membangun Definisi Fungsi Jaringan (NFD), mulai proses build.

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

Setelah build selesai, periksa file yang dihasilkan untuk lebih memahami struktur Definisi Fungsi Jaringan (NFD).

File-file ini dibuat dalam subdirektori yang disebut vnf-cli-output:

Direktori / File Deskripsi
vnf-cli-output/artifactManifest
deploy.bicep File Bicep untuk membuat manifes artefak, dengan artefak yang isinya diambil dari file input
vnf-cli-output/artefak
artifacts.json Daftar artefak (gambar dan templat ARM) yang akan diunggah saat diterbitkan. Berkorelasi dengan manifes artefak
vnf-cli-output/base
deploy.bicep File Bicep untuk membuat sumber daya AOSM yang mendasari yang diperlukan untuk menjalankan NF (penerbit, acr, nfdg)
vnf-cli-output/nfDefinition
deploy.bicep Bicep untuk membuat Versi Definisi Fungsi Jaringan (NFDV), dengan informasi aplikasi fungsi jaringan dari templat ARM yang disediakan dalam file input
deployParameters.json Skema yang menentukan parameter penyebaran yang diperlukan untuk membuat Fungsi Jaringan (NF) dari Versi Definisi Fungsi Jaringan (NFDV) ini
<nama templat arm>-templateParameters.json File berisi parameter penyebaran yang disediakan untuk Versi Definisi Fungsi Jaringan (NFDV) yang dipetakan ke parameter yang diperlukan untuk templat ARM Komputer Virtual (VM). Parameter templat ARM VM ini bersumber dari templat ARM yang disediakan dalam file input
vhdParameters.json File berisi parameter penyebaran yang disediakan untuk Versi Definisi Fungsi Jaringan (NFDV) yang dipetakan ke parameter yang diperlukan untuk gambar VHD. Parameter konfigurasi VHD bersumber dari bagian VHD dari file input
vnf-cli-output
all_deploy.parameters.json Superset dari semua parameter penyebaran NF, menyediakan satu file untuk menyesuaikan nama sumber daya. Output nilai ke file ini oleh perintah build diambil dari file vnf-input.jsonc, tetapi dapat diedit dalam file ini sebelum menjalankan penerbitan, misalnya untuk menerbitkan ke lokasi yang berbeda atau menggunakan nama penerbit yang berbeda
index.json File digunakan secara internal saat menerbitkan sumber daya. Jangan edit

Catatan

Jika kesalahan dibuat, satu-satunya opsi untuk memperbaiki adalah menjalankan kembali perintah dengan pilihan yang tepat.

Menerbitkan Definisi Fungsi Jaringan dan mengunggah artefak

Jalankan perintah berikut untuk menerbitkan Definisi Fungsi Jaringan (NFD) dan unggah artefak terkait:

Catatan

Nama penerbit harus unik dalam suatu wilayah. Sangat mungkin bahwa 'ubuntu-publisher' yang ditentukan dalam contoh file konfigurasi sudah ada.

Jika Anda mendapatkan kesalahan yang mengatakan "Sumber daya penerbit privat dengan nama 'ubuntu-publisher' sudah ada di wilayah yang disediakan", edit publisher_name bidang dalam file konfigurasi sehingga unik (misalnya tambahkan akhiran string acak), jalankan build kembali perintah (di atas), lalu jalankan kembali perintah ini publish .

Jika Anda melanjutkan untuk membuat desain layanan jaringan, Anda harus menggunakan nama penerbit baru ini dalam resource_element_templates array.

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

Setelah perintah selesai, periksa sumber daya dalam Grup Sumber Daya Penerbit Anda untuk mengamati komponen dan artefak yang dibuat.

Sumber daya ini dibuat:

Nama Sumber Daya Jenis Sumber Daya
ubuntu-vm Definisi Fungsi Jaringan.
1.0.0 Versi Definisi Fungsi Jaringan.
ubuntu-publisher Penerbit.
ubuntu-vm-acr-manifest-1-0-0 Manifes Artefak Penerbit.
ubuntu-vm-sa-manifest-1-0-0 Manifes Artefak Penerbit.
ubuntu-acr Penyimpanan Artefak Penerbit.
ubuntu-blob-store Penyimpanan Artefak Penerbit.

Langkah berikutnya