Aracılığıyla paylaş


Hızlı Başlangıç: Ubuntu Sanal Makinesini (VM) Sanal Ağ İşlevi (VNF) olarak yayımlama

Bu hızlı başlangıçta, temel bir Ağ İşlevi Tanımı oluşturmak ve yayımlamak için Azure CLI uzantısının az aosm nasıl kullanılacağı açıklanmaktadır. Amacı, Publisher Azure Operatör Hizmet Yöneticisi (AOSM) kaynaklarının iş akışını göstermektir. Burada sunulan temel kavramlar, kullanıcıları daha heyecan verici hizmetler oluşturmaya hazırlamaya yöneliktir.

Önkoşullar

Giriş dosyası oluşturma

Aşağıdaki komutu yürüterek Ağ İşlevi Tanımı (NFD) için giriş yapılandırma dosyasını oluşturun.

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

Bu komutu yürütürken bir vnf-input.jsonc dosyası oluşturulur.

Not

vnf-input.jsonc dosyasını örnekte gösterilen değerlerle değiştirerek düzenleyin. Dosyayı input-vnf-nfd.jsonc olarak kaydedin.

Var olan bir kaynak grubunu kullanıyorsanız, alanı bu grupla publisher_resource_group_name eşleşecek şekilde değiştirin.

Örnek bir input-vnf-nfd.jsonc dosyası aşağıda verilmiştir:

{
  // 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"
  }
}
Değişken Açıklama
publisher_name Tanımınızın yayımlanmasını istediğiniz Publisher kaynağının adı. Yoksa oluşturulur.
publisher_resource_group_name Publisher kaynağı için kaynak grubu. Yoksa oluşturulur.
acr_artifact_store_name ACR Yapıt Deposu kaynağının adı. Yoksa oluşturulur.
konum Kaynak oluştururken kullanılacak Azure konumu.
nf_name NF tanımının adı.
versiyon A.B.C biçiminde NF tanımının sürümü.
blob_artifact_store_name Depolama hesabı Yapıt Deposu kaynağının adı. Yoksa oluşturulur.
tüm_parametreleri_göster Tüm NFD yapılandırma parametrelerini tasarımcının kullanımına sunup sunmayacağı.
arm_template artifact_name: Yapıtın adı.
file_path: İsteğe bağlı. Yerel diskinizde karşıya yüklemek istediğiniz yapıtın dosya yolu. Gerekli değilse silin. Göreli yollar yapılandırma dosyasına göredir. Windows'ta herhangi bir ters eğik çizgiden başka bir ters eğik çizgiyle kaçış.
version: Yapıtın sürümü. ARM şablonları sürümü A.B.C biçiminde olmalıdır.
Vhd artifact_name: Yapıtın adı.
file_path: İsteğe bağlı. Yerel diskinizde karşıya yüklemek istediğiniz yapıtın dosya yolu. Gerekli değilse silin. Göreli yollar yapılandırma dosyasına göredir. Windows'ta herhangi bir ters eğik çizgiden başka bir ters eğik çizgiyle kaçış.
blob_sas_url: İsteğe bağlı. Yapıt Deponuza kopyalamak istediğiniz blob yapıtın SAS URL'si. Gerekli değilse silin.
version: Yapıtın sürümü. Yapıtın sürümü. VHD'lerin sürümü A-B-C biçiminde olmalıdır.
"image_disk_size_GB: İsteğe bağlı. Boş veri disklerinin boyutunu gigabayt cinsinden belirtir. Bu değer 1023 GB'tan büyük olamaz. Gerekli değilse silin.
image_hyper_v_generation: İsteğe bağlı. Görüntüden oluşturulan VirtualMachine'in HyperVGenerationType değerini belirtir. Geçerli değerler V1 ve V2'dir. Belirtilmezse V1 varsayılan değerdir. Gerekli değilse silin.
image_api_version: İsteğe bağlı. Microsoft.Compute/images kaynağını oluşturmak için kullanılan ARM API sürümü. Gerekli değilse silin.

Not

file_path seçeneğini kullanırken, VHD görüntüleri genellikle çok büyük olduğundan yeterli karşıya yükleme bant genişliğine sahip güvenilir bir İnternet bağlantısına sahip olmak önemlidir.

Önemli

Önceki tabloda açıklanan her değişken benzersiz olmalıdır. Örneğin, kaynak grubu adı zaten var olamaz ve yayımcı ve yapıt deposu adları bölgede benzersiz olmalıdır.

Ağ İşlevi Tanımını (NFD) Oluşturma

Ağ İşlevi Tanımını (NFD) oluşturmak için derleme işlemini başlatın.

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

Derleme tamamlandıktan sonra, Ağ İşlevi Tanımı (NFD) yapısını daha iyi anlamak için oluşturulan dosyaları inceleyin.

Bu dosyalar vnf-cli-output adlı bir alt dizinde oluşturulur:

Dizin / Dosya Açıklama
vnf-cli-output/artifactManifest
deploy.bicep Giriş dosyasından doldurulan yapıtlarla yapıt bildirimi oluşturmak için Bicep dosyası
vnf-cli-output/artifacts
artifacts.json Yayımlama sırasında karşıya yüklenecek yapıtların (resimler ve ARM şablonları) listesi. Yapıt bildirimiyle bağıntılar
vnf-cli-output/base
deploy.bicep Bir NF (publisher, acr, nfdg) başlatmak için gereken temel AOSM kaynaklarını oluşturacak Bicep dosyası.
vnf-cli-output/nfDefinition
deploy.bicep Giriş dosyasında sağlanan ARM şablonundan ağ işlevi uygulama bilgileriyle Ağ İşlevi Tanımı Sürümünü (NFDV) oluşturmak için Bicep
deployParameters.json Bu Ağ İşlevi Tanım Sürümünden (NFDV) bir Ağ İşlevi (NF) oluşturmak için gereken dağıtım parametrelerini tanımlayan şema
<arm-template-name>-templateParameters.json Dosya, Sanal Makine (VM) ARM şablonu için gereken parametrelerle eşlenmiş Ağ İşlevi Tanımı Sürümü'ne (NFDV) sağlanan dağıtım parametrelerini içerir. Bu VM ARM şablonu parametreleri, giriş dosyasında sağlanan ARM şablonlarından kaynaklanmıştır
vhdParameters.json Dosya, VHD görüntüsü için gereken parametrelerle eşlenmiş Ağ İşlevi Tanımı Sürümü'ne (NFDV) sağlanan dağıtım parametrelerini içerir. VHD yapılandırma parametreleri giriş dosyasının VHD bölümünden kaynaklanmıştır
vnf-cli-output
all_deploy.parameters.json Tüm NF dağıtım parametrelerinin üst kümesi, kaynak adlarını özelleştirmek için tek bir dosya sağlar. Derleme komutu tarafından bu dosyaya giden değerler vnf-input.jsonc dosyasından alınır, ancak yayımlama çalıştırılmadan önce bu dosyada düzenlenebilir, örneğin farklı bir konuma yayımlamak veya farklı bir yayımcı adı kullanmak için
index.json Kaynakları yayımlarken dahili olarak kullanılan dosya. Düzenleme

Not

Hatalar yapıldıysa, düzeltmenin tek seçeneği komutu doğru seçimlerle yeniden çalıştırmaktır.

Ağ İşlevi Tanımını yayımlama ve yapıtları karşıya yükleme

Aşağıdaki komutu yürüterek Ağ İşlevi Tanımı'nı (NFD) yayımlayın ve ilişkili yapıtları karşıya yükleyin:

Not

Yayımcı adları bir bölge içinde benzersiz olmalıdır. Büyük olasılıkla örnek yapılandırma dosyasında tanımlanan 'ubuntu-publisher' zaten var.

"Sağlanan bölgede 'ubuntu-publisher' adlı özel bir yayımcı kaynağı zaten var" hatasını alırsanız, yapılandırma dosyasındaki alanı benzersiz olacak şekilde düzenleyin publisher_name (örneğin, rastgele dize son eki ekleyin), komutu yeniden çalıştırın build (yukarıda) ve sonra bu publish komutu yeniden çalıştırın.

Ağ hizmeti tasarımı oluşturmaya devam ederseniz, dizide resource_element_templates bu yeni yayımcı adını kullanmanız gerekir.

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

Komut tamamlandığında, oluşturulan bileşenleri ve yapıtları gözlemlemek için Publisher Kaynak Grubunuzdaki kaynakları inceleyin.

Bu kaynaklar oluşturulur:

Kaynak Adı Kaynak Türü
ubuntu-vm Ağ İşlevi Tanımı.
1.0.0 Ağ İşlevi Tanımı Sürümü.
ubuntu-publisher Yayımcı.
ubuntu-vm-acr-manifest-1-0-0 Publisher Yapıt Bildirimi.
ubuntu-vm-sa-manifest-1-0-0 Publisher Yapıt Bildirimi.
ubuntu-acr Publisher Yapıt Deposu.
ubuntu-blob-store Publisher Yapıt Deposu.

Sonraki adımlar