다음을 통해 공유


AOSM(Azure Operator Service Manager) NSDV(네트워크 서비스 디자인 버전)에 ARM(Azure Resource Manager) 리소스 추가

AOSM(Azure Operator Service Manager)을 사용하면 NFDV(네트워크 기능 정의 버전)와 ARM(Azure Resource Manager) 템플릿을 NSDV(네트워크 서비스 디자인 버전)로 결합할 수 있습니다. NSDV는 네트워크 기능과 실행에 필요한 Azure 인프라를 모두 포함하는 네트워크 서비스에 대한 단일 템플릿이 됩니다. 그러면 운영자는 NF(네트워크 기능)와 해당 인프라를 한 번의 작업으로 배포할 수 있습니다.

이 방법 가이드에서는 Azure CLI AOSM 확장을 사용하여 CNF(컨테이너화된 네트워크 기능)와 ARM(Azure Resource Manager) 리소스가 모두 포함된 NSDV를 빌드하고 게시하는 방법을 알아봅니다.

온보딩은 다단계 프로세스입니다. 필수 구성 요소를 충족하면 Azure CLI AOSM 확장을 사용하여 다음을 수행합니다.

  1. 이전에 온보딩된 CNF에 대한 기존 NSDV 입력 파일을 수정합니다.
  2. AOSM 리소스 정의를 빌드하는 데 필요한 정보로 입력 파일을 채웁니다.
  3. 입력 파일과 ARM 템플릿을 기반으로 NSDV(네트워크 서비스 디자인 그룹 및 버전)를 정의하는 BICEP 파일을 생성합니다.
  4. NSDV를 게시하고 ARM 템플릿을 아티팩트 저장소(AOSM 관리 ACR(Azure Container Registry))에 업로드합니다.

이 방법 가이드에서는 AKV(Azure Key Vault)를 Azure 리소스의 예로 사용하지만 모든 Azure 리소스는 동일한 단계에 따라 온보딩할 수 있습니다. 이 문서에서는 CNF를 NF 예로 사용합니다. NSDV 입력 파일의 사소한 차이점을 제외하면 VNF(가상화된 네트워크 기능)의 프로세스는 동일합니다.

필수 조건

  • Azure 구독에서 AOSM을 사용하도록 설정했습니다.
  • CNF가 Azure Operator Nexus에서 실행되도록 의도된 경우 Azure Operator Nexus 인스턴스에 액세스할 수 있으며 워크로드 배포를 위한 필수 구성 요소를 완료했습니다.
  • CNF를 온보딩했으며 az aosm nsd generate-config 파일로 생성한 입력 파일을 CLI를 실행 중인 컴퓨터의 로컬 스토리지에서 사용할 수 있습니다.

권한 구성

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

ARM 템플릿

  • CLI를 실행하는 컴퓨터의 로컬 스토리지에 배포하려는 Azure 리소스를 정의하는 ARM 템플릿이 있어야 합니다.
  • NSDV를 배포할 운영자에게 노출하려는 모든 매개 변수는 ARM 템플릿에서 매개 변수로 정의되어야 합니다.

참고 항목

Az CLI AOSM 확장은 BICEP 템플릿에 정의된 Azure 리소스 온보딩을 지원하지 않습니다. 그러나 bicep build 명령을 사용하여 BICEP 파일을 ARM 템플릿으로 변환할 수 있습니다. 자세한 정보와 지침은 bicep CLI 설명서를 참조하세요.

Helm 및 Docker 엔진

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

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 시작을 참조하세요.

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

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

  1. CNF를 온보딩할 때 생성한 NSDV 입력 파일을 엽니다.

    참고 항목

    CNF 온보딩에서 NSDV 입력 파일이 없는 경우 az aosm nsd generate-config --output-file <nsd-output-filename.jsonc> 명령을 사용하여 새 입력 파일을 생성할 수 있습니다.

  2. 입력 파일의 인라인 주석을 사용하여 필수 값을 입력합니다. 이 예에서는 Azure 위치의 Arc 연결 Nexus Kubernetes 클러스터 및 AKV 인스턴스에 가상 Contoso CNF를 배포하는 데 사용할 수 있는 가상 Contoso NSDV에 대한 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",
        // Name of the ACR Artifact Store resource.
        // Will be created if it does not exist.
        "acr_artifact_store_name": "contoso-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-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-cnf NFD and an Azure Key Vault",
        // 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",
                    // 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-cnf-nfd",
                    // 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": "cnf"
                }
            },
            {
                // Type of Resource Element. Either NF or ArmTemplate
                "resource_element_type": "ArmTemplate",
                // Properties of the Resource Element.
                "properties": {
                    // Name of the artifact. Used as internal reference only.
                    "artifact_name": "contoso-keyvault",
                    // 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": "./contoso-keyvault.json"
                }
            }
        ]
    }
    

    참고 항목

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

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

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

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

네트워크 서비스 디자인 그룹 및 버전 게시

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

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

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

다음 단계