다음을 통해 공유


빠른 시작: Ubuntu VM(Virtual Machine)용 NSD(네트워크 서비스 디자인)를 VNF(가상화된 네트워크 기능)로 설계

이 빠른 시작에서는 az aosm Azure CLI 확장을 사용하여 기본 네트워크 서비스 디자인을 만들고 게시하는 방법을 설명합니다.

필수 조건

활성 구독이 있는 Azure 계정이 필요합니다. Azure 구독이 없는 경우 시작하기 전에 무료로 시작에 있는 지침에 따라 계정을 만듭니다.

빠른 시작: Ubuntu VM(가상 머신)을 VNF(가상화된 네트워크 기능)로 게시의 전제 조건을 따라야 합니다.

입력 파일 만들기

네트워크 서비스 디자인을 게시하기 위한 입력 파일을 만듭니다. 다음 명령을 실행하여 NSD(Network Service Design)에 대한 입력 구성 파일을 생성합니다.

az aosm nsd generate-config

이 명령을 실행할 때 nsd-input.jsonc 파일이 생성됩니다.

참고 항목

nsd-input.jsonc 파일을 편집하여 샘플에 표시된 값으로 바꿉니다. resource_element_type이 ArmTemplate으로 설정된 섹션을 제거합니다. 이 빠른 시작에서는 필요하지 않은 더 복잡한 NSD에 인프라(예: VNet)를 추가하기 위한 것입니다. 파일을 input-vnf-nsd.jsonc로 저장합니다.

NFDV를 게시할 때 게시자 이름을 변경한 경우 publisher_namepublisher 필드 모두에 게시자 이름을 사용합니다(후자는 resource_element_templates 배열 내에 있음).

다른 리소스 그룹 이름을 사용한 경우 publisher_resource_group_namepublisher_resource_group 필드를 모두 업데이트합니다(후자는 resource_element_templates 배열 내에 있음).

{
  // 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.
  // You should create this before running the publish command.
  "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",
  // Network Service Design (NSD) name. This is the collection of Network Service Design Versions. Will be created if it does not exist.
  "nsd_name": "ubuntu-nsd",
  // Version of the NSD to be created. This should be in the format A.B.C
  "nsd_version": "1.0.0",
  // Optional. Description of the Network Service Design Version (NSDV).
  "nsdv_description": "Plain ubuntu VM",
  // List of Resource Element Templates (RETs).
  // There must be at least one NF RET.
  // ArmTemplate RETs are optional. Delete if not required.
  "resource_element_templates": [
      {
        // Type of Resource Element. Either NF or ArmTemplate
        "resource_element_type": "NF",
        "properties": {
            // The name of the existing publisher for the NSD.
            "publisher": "ubuntu-publisher",
            // The resource group that the publisher is hosted in.
            "publisher_resource_group": "ubuntu-publisher-rg",
            // The name of the existing Network Function Definition Group to deploy using this NSD.
            // This will be the same as the NF name if you published your NFDV using the CLI.
            "name": "ubuntu-vm",
            // The version of the existing Network Function Definition to base this NSD on.
            // This NSD will be able to deploy any NFDV with deployment parameters compatible with this version.
            "version": "1.0.0",
            // The region that the NFDV is published to.
            "publisher_offering_location": "uksouth",
            // Type of Network Function. Valid values are 'cnf' or 'vnf'.
            "type": "vnf"
        }
    }
  ]
}
변수 설명
publisher_name 정의를 게시하려는 게시자 리소스의 이름입니다. 존재하지 않는 경우 만들어집니다.
publisher_resource_group_name 게시자 리소스에 대한 리소스 그룹입니다. 존재하지 않는 경우 만들어집니다.
acr_artifact_store_name ACR(Azure Container Registry) 아티팩트 저장소 리소스의 이름입니다. 존재하지 않는 경우 만들어집니다.
location 리소스를 만들 때 사용할 Azure 위치입니다.
network-functions 게시자: 이 NFDV(네트워크 함수 정의 버전)가 게시된 게시자의 이름입니다.
publisher_resource_group - 게시자가 호스트되는 리소스 그룹입니다.
name - 이 NSD를 사용하여 배포할 기존 네트워크 기능 정의 그룹의 이름입니다.
version - 이 NSD의 기반이 되는 기존 네트워크 기능 정의의 버전입니다. 이 NSD는 이 버전과 호환되는 배포 매개 변수를 사용하여 모든 NFDV를 배포할 수 있습니다.
publisher_offering_location: NFDV가 게시되는 지역입니다.
type: 네트워크 기능의 형식입니다. 유효한 값은 cnf 또는 vnf입니다.
nsd_name 네트워크 서비스 디자인 그룹 이름입니다. 네트워크 서비스 디자인 버전의 컬렉션입니다. 존재하지 않는 경우 생성됩니다.
nsd_version 만들 NSD의 버전입니다. A.B.C 형식이어야 합니다.
nsdv_description NSDV에 대한 설명입니다.

NSD(네트워크 서비스 디자인) 빌드

다음 명령을 사용하여 NSD(네트워크 서비스 디자인)에 대한 빌드 프로세스를 시작합니다.

az aosm nsd build --config-file input-vnf-nsd.jsonc

빌드 프로세스가 완료된 후 생성된 다음 파일을 검토하여 NSD의 아키텍처 및 구조에 대한 인사이트를 얻으세요.

이러한 파일은 nsd-cli-output이라는 하위 디렉터리에 생성됩니다.

디렉터리/파일 설명
nsd-cli-output/artifactManifest
deploy.bicep 입력 파일에서 채워진 아티팩트로 아티팩트 매니페스트를 생성하는 Bicep 템플릿
nsd-cli-output/artifacts
artifacts.json 게시 시 업로드할 아티팩트(이미지 및 ARM 템플릿) 목록입니다. 아티팩트 매니페스트와 상관 관계가 있음
<nf-name>.bicep NF를 배포하기 위해 입력 파일에 제공된 NF(네트워크 함수) RET당 Bicep 템플릿입니다. 이 템플릿은 ARM 템플릿으로 변환되고 게시 명령을 실행할 때 아티팩트 저장소에 업로드됩니다.
nsd-cli-output/base
deploy.bicep 이 NSD 그룹의 모든 NSDV가 공유하는 게시자, 스토리지 계정 및 네트워크 서비스 디자인 그룹을 생성하기 위한 Bicep 템플릿
nsd-cli-output/nsdDefinition
deploy.bicep NSDV(네트워크 서비스 디자인 버전)를 생성하기 위한 Bicep 템플릿입니다. 이 템플릿에는 nsd-input.jsonc 파일에 정의된 게시된 NF 또는 ARM 템플릿(인프라용)에서 가져온 자식 리소스 요소 템플릿이 포함되어 있습니다.
config-group-schema.json 이 NSDV의 모든 NF에 대해 결합된 구성 그룹 스키마입니다. 이 스키마는 SNS(사이트 네트워크 서비스)의 일부로 NSDV를 배포할 때 운영자가 구성 그룹 값에 제공해야 하는 입력을 정의합니다.
<nf-name>-mappings.json 운영자가 제공한 구성 그룹 값을 NSDV에 정의된 배포 매개 변수에 매핑하는 파일입니다. NSDV에는 NF당 하나씩 있습니다.
nsd-cli-output
all_deploy.parameters.json 모든 NF 배포 매개 변수의 상위 집합으로, 리소스 이름을 사용자 지정하기 위한 단일 파일을 제공합니다. 빌드 명령에 의해 이 파일에 출력되는 값은 nsd-input.jsonc 파일에서 가져옵니다. 게시를 실행하기 전에 이 파일의 값을 편집할 수 있습니다(예: 다른 위치에 게시하거나 다른 게시자 이름 사용).
index.json 리소스를 게시할 때 내부적으로 사용되는 파일입니다. 편집 안 함

NSD(네트워크 서비스 디자인) 게시

NSD(Network Service Design) 및 관련 아티팩트를 게시하려면 다음 명령을 실행합니다.

az aosm nsd publish --build-output-folder nsd-cli-output

게시자 리소스 그룹으로 이동하여 생성된 리소스와 아티팩트를 관찰하고 검토하세요.

다음 리소스가 생성됩니다.

리소스 이름 리소스 종류
ubuntu-nsd 네트워크 서비스 디자인입니다.
1.0.0(ubuntu-nsd/1.0.0) 네트워크 서비스 디자인 버전입니다.
ubuntu-nsd-nsd-manifest-1-0-0 게시자 아티팩트 매니페스트입니다.
ConfigGroupSchema 구성 그룹 스키마입니다.

다음 단계