다음을 통해 공유


Azure Operator Nexus에 배포하기 위해 VNF(가상화된 네트워크 기능)를 AOSM(Azure Operator Service Manager)에 온보딩

이 방법 가이드에서 네트워크 기능 게시자 및 서비스 디자이너는 Azure CLI AOSM 확장을 사용하여 가상화된 네트워크 기능을 AOSM에 온보딩하는 방법을 알아봅니다. 이 VNF는 이후에 Azure Operator Nexus에 배포될 수 있습니다. 온보딩은 다단계 프로세스입니다. 필수 구성 요소를 충족하면 Azure CLI AOSM 확장을 사용하여 다음을 수행합니다.

  1. NFD(네트워크 기능 정의) 그룹 및 버전을 정의하는 BICEP 파일을 생성합니다.
  2. NFD를 게시하고 VNF 이미지를 아티팩트 저장소(AOSM 관리 ACR(Azure Container Registry))에 업로드합니다.
  3. NSD(네트워크 서비스 디자인 그룹 및 버전)를 정의하는 BICEP 파일에 게시된 NFD를 추가합니다.
  4. NSD를 게시합니다.

필수 조건

참고 항목

VNF를 AOSM에 온보딩하기 전에 Azure Operator Nexus 인스턴스에서 VM 배포가 성공하는지 테스트하는 것이 좋습니다.

Azure Operator Nexus VM(가상 머신) 이미지 및 ARM(Azure Resource Manager) 템플릿

  • Azure Operator Nexus Virtual Machine용 이미지를 만들었습니다. 이 이미지는 ACR에서 사용할 수 있어야 합니다.

  • Azure Operator Nexus Virtual Machine을 배포하는 ARM 템플릿을 만들었습니다.

  • VM ARM 템플릿(AzureCore 및 Azure Operator Nexus 모두)은 다음 리소스 공급자의 ARM 리소스만 배포할 수 있습니다.

    • Microsoft.Compute
    • Microsoft.Network
    • Microsoft.NetworkCloud
    • Microsoft.Storage
    • Microsoft.NetworkFabric
    • Microsoft.Authorization
    • Microsoft.ManagedIdentity
  • VNF ARM 템플릿은 하나의 VM을 배포해야 합니다. NSDV에 NFDV의 여러 인스턴스를 포함하여 여러 VM을 배포할 수 있습니다.

권한 구성

  • 리소스 그룹을 만들거나 기여자 역할이 있는 기존 리소스 그룹을 만들려면 이 구독에 대한 기여자 역할이 필요합니다.
  • 이미지가 포함된 원본 ACR에 대한 Reader/AcrPull 역할 할당이 필요합니다.
  • AOSM 관리 아티팩트 저장소를 포함할 구독에 대해 ContributorAcrPush 역할 할당이 필요합니다. 이러한 권한을 통해 Azure CLI AOSM 확장은 ACR에서 ACR로 직접 복사를 수행할 수 있습니다. 직접 복사는 한 ACR에서 다른 ACR로 이미지를 전송하는 가장 빠른 방법입니다.
    • 회사 정책에 따라 구독 범위 권한을 갖지 못할 수도 있습니다. az aosm nfd publishaz aosm nsd publish 명령에서 사용할 수 있는 --no-subscription-permissions 매개 변수는 AOSM 서비스에서 파생된 엄격한 범위의 권한을 사용하여 로컬 컴퓨터와의 2단계 복사를 오케스트레이션합니다. 이 2단계 복사는 속도가 느리지만 구독 범위 권한이 필요하지 않습니다.

Azure CLI 다운로드 및 설치

Azure CLI를 로컬로 설치하려면 Azure CLI 설치 방법을 참조하세요.

Azure CLI에 로그인하려면 az login 명령을 사용하고 터미널에 표시되는 프롬프트를 완료하여 인증을 완료합니다. 더 많은 로그인 옵션을 보려면 Azure CLI로 로그인을 참조하세요.

참고 항목

Windows 또는 macOS에서 실행 중인 경우 Docker 컨테이너에서 Azure CLI를 실행하는 것이 좋습니다. 자세한 내용은 Docker 컨테이너에서 Azure CLI를 실행하는 방법을 참조하세요. Azure Cloud Shell에서 Bash 환경을 사용할 수도 있습니다. 자세한 내용은 Azure Cloud Shell에서 Bash 환경을 사용하려면 Cloud Shell 시작을 참조하세요.

Helm 및 Docker 엔진

  • 호스트 컴퓨터에 Helm CLI를 설치합니다. Helm v3.8.0 이상을 사용해야 합니다.
  • 호스트 컴퓨터에 Docker를 설치합니다.

AOSM CLI 확장 설치

Az CLI AOSM 확장에는 Azure CLI 버전 2.54.0 이상이 필요합니다.

  1. 설치된 버전과 종속 라이브러리를 보려면 az version을 실행합니다.
  2. 현재 버전의 Azure CLI로 업그레이드하려면 az upgrade를 실행합니다.

다음 명령을 사용하여 AOSM CLI 확장을 설치합니다.

az extension add --name aosm

네트워크 기능 정의 그룹 및 버전 빌드

이 섹션에서는 네트워크 기능 정의 그룹 및 버전과 아티팩트 저장소를 정의하는 AOSM 리소스의 BICEP 템플릿을 사용하여 vnf-cli-output이라는 작업 디렉터리에 폴더를 만듭니다. 이러한 리소스는 궁극적으로 네트워크 서비스 디자인에 포함됩니다.

  1. VNF에 대한 Azure CLI AOSM 확장 입력 파일을 생성합니다.

    az aosm nfd generate-config --definition-type vnf-nexus --output-file <filename.jsonc>
    
  2. 이전 단계에서 생성한 입력 파일을 열고 인라인 주석을 사용하여 필요한 값을 입력합니다. 이 예에서는 Azure Operator Nexus에서 실행되는 가상 Contoso VNF에 대한 Az CLI AOSM 확장 입력 파일을 보여 줍니다.

    참고 항목

    Azure CLI AOSM 확장은 기본적으로 입력 ARM 템플릿에 기본값 없이 필수 매개 변수만 노출합니다. expose_all_parameterstrue로 설정하여 NFDV(네트워크 기능 정의 버전) 및 CGS(구성 그룹 스키마)의 모든 ARM 템플릿 매개 변수를 노출할 수 있습니다. 자세한 내용은 AOSM CLI 확장을 사용하여 매개 변수 노출을 참조하세요.

    {
        // Azure location to use when creating resources e.g uksouth
        "location": "eastus",
        // Name of the Publisher resource you want your definition published to.
        // Will be created if it does not exist.
        "publisher_name": "contoso",
        // Resource group for the Publisher resource.
        // Will be created if it does not exist.
        "publisher_resource_group_name": "contoso-vnf",
        // Name of the ACR Artifact Store resource.
        // Will be created if it does not exist.
        "acr_artifact_store_name": "contoso-vnf-artifact-store",
        // Name of the network function.
        "nf_name": "contoso-vnf",
        // 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,
        // 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": "contoso-vnf",
                // 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": "/home/contoso-vnf/contoso-vnf-arm-template.json"
            }
        ],
        // List of images to be pulled from the acr registry.
        // You must provide the source acr registry, the image name and the version.
        // For example: 'sourceacr.azurecr.io/imagename:imageversion'.
        "images": ["contoso-vnf.azurecr.io/contosovnf:1.0.0"]
    }```
    
    
  3. 다음 명령을 실행하여 네트워크 기능 정의 그룹 및 버전을 빌드합니다.

az aosm nfd build --definition-type vnf-nexus --config-file <filename.jsonc>

네트워크 기능 정의 그룹 및 버전 게시

이 단계에서는 네트워크 기능 정의와 네트워크 기능의 VM 이미지를 저장하는 데 사용되는 아티팩트 저장소를 정의하는 AOSM 리소스를 만듭니다. 또한 원본 ACR에서 직접 이미지를 복사하여 아티팩트 저장소에 이미지를 업로드합니다. 그렇지 않고 구독 범위 ContributorAcrPush 역할이 없는 경우에는 Docker 이미지를 로컬로 다시 태그 지정하고 AOSM 서비스에서 생성된 범위가 엄격한 자격 증명을 사용하여 아티팩트 저장소에 업로드합니다.

  1. 다음 명령을 실행하여 네트워크 기능 정의 그룹 및 버전을 게시합니다. 구독 범위 ContributorAcrPush 역할이 없는 경우 명령에 --no-subscription-permissions를 포함합니다.
az aosm nfd publish --build-output-folder vnf-cli-output --definition-type vnf

폴더와 파일 구조를 검토하고 필요한 경우 수정할 수 있습니다.

네트워크 서비스 디자인 그룹 및 버전 빌드

이 섹션에서는 작업 디렉터리에 nsd-cli-output이라는 폴더를 만듭니다. 이 폴더에는 네트워크 서비스 디자인 그룹 및 버전을 정의하는 AOSM 리소스의 BICEP 템플릿이 포함되어 있습니다. 이 네트워크 서비스 디자인은 이전 섹션에서 온보딩한 네트워크 기능을 배포할 사이트 네트워크 서비스 리소스에 사용되는 템플릿입니다.

  1. Azure CLI AOSM 확장 NSD 입력 파일을 생성합니다.

    az aosm nsd generate-config --output-file <nsd-output-filename.jsonc>
    
  2. 이전 단계에서 생성한 입력 파일을 열고 인라인 주석을 사용하여 필요한 값을 입력합니다. 생성된 입력 파일에는 ArmTemplate 형식의 추가 resource_element_type이 포함되어 있습니다. 이는 VNF를 온보딩할 때는 필요하지 않으며 삭제할 수 있습니다. 이 예에서는 가상 Contoso VNF를 Azure Operator Nexus 인스턴스에 배포하는 데 사용할 수 있는 가상 Contoso NSD에 대한 Az CLI AOSM 확장 입력 파일을 보여 줍니다.

    {
        // Azure location to use when creating resources e.g uksouth
        "location": "eastus",
        // Name of the Publisher resource you want your definition published to.
        // Will be created if it does not exist.
        "publisher_name": "contoso",
        // Resource group for the Publisher resource.
        // Will be created if it does not exist.
        "publisher_resource_group_name": "contoso-vnf",
        // Name of the ACR Artifact Store resource.
        // Will be created if it does not exist.
        "acr_artifact_store_name": "contoso-vnf-artifact-store",
        // Network Service Design (NSD) name. This is the collection of Network Service Design Versions. Will be created if it does not exist.
        "nsd_name": "contoso-vnf-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": "An NSD that deploys the onboarded contoso-vnf NFD",
        // 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": "contoso",
                    // The resource group that the publisher is hosted in.
                    "publisher_resource_group": "contoso-vnf",
                    // 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": "contoso-vnf",
                    // 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": "eastus",
                    // Type of Network Function. Valid values are 'cnf' or 'vnf'.
                    "type": "vnf"
                }
            }
        ]
    }
    

    참고 항목

    리소스 요소 템플릿 섹션은 NSD에 어떤 NFD가 포함되는지 정의합니다. 속성은 az aosm nfd build 명령에 전달된 입력 파일에 사용된 속성과 일치해야 합니다. 이는 Azure CLI AOSM 확장이 NSD를 빌드할 때 NFD가 올바르게 온보딩되었는지 유효성을 검사하기 때문입니다.

  3. 다음 명령을 실행하여 네트워크 서비스 디자인 그룹 및 버전 BICEP 템플릿을 빌드합니다.

az aosm nsd build --config-file <nsd-output-filename.jsonc>

폴더와 파일 구조를 검토하고 필요한 경우 수정할 수 있습니다.

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

이 단계에서는 네트워크 서비스 디자인 그룹 및 버전을 정의하는 AOSM 리소스를 만듭니다. 또한 NSD에 필요한 아티팩트를 아티팩트 저장소(네트워크 기능 ARM 템플릿)에 업로드합니다.

  1. 다음 명령을 실행하여 네트워크 서비스 디자인 그룹 및 버전을 게시합니다. 구독 범위 ContributorAcrPush 역할이 없는 경우 명령에 --no-subscription-permissions를 포함합니다.
az aosm nsd publish --build-output-folder nsd-cli-output

이제 AOSM 게시자 리소스의 전체 집합이 준비되었으며 연산자 흐름을 수행할 준비가 되었습니다.

다음 단계