Compartilhar via


Integrar uma VNF (Função virtualizada de rede) para a implantação no Nexus do Operador do Azure no AOSM (Gerenciador de Serviço do Operador do Azure)

Neste guia de instruções, os Editores de funções de rede e Designers de serviço aprendem a usar a extensão do AOSM da CLI do Azure para integrar uma função virtualizada de rede ao AOSM. Posteriormente, essa VNF pode ser implantada no Nexus do Operador do Azure. A integração é um processo de várias etapas. Depois de cumprir os pré-requisitos, você usará a extensão do AOSM da CLI do Azure para:

  1. Gerar arquivos BICEP que definem um grupo e uma versão de NFD (Definição de função de rede).
  2. Publicar a NFD e carregar a imagem da VNF em um Repositório de artefatos [ACR (Registro de Contêiner do Azure) gerenciado pelo AOSM].
  3. Adicionar a NFD publicada nos arquivos BICEP que definem um grupo e uma versão do NSD (Design do serviço de rede).
  4. Publicar o NSD.

Pré-requisitos

Observação

É altamente recomendável que você tenha testado que a implantação da VM tenha êxito na instância do Nexus do Operador do Azure antes de integrar a VNF ao AOSM.

Imagens da VM (máquina virtual) do Nexus do Operador do Azure e modelos do ARM (Azure Resource Manager)

Configurar permissões

  • Você precisa da função de Colaborador da sua assinatura para criar um Grupo de recursos ou de um Grupo de recursos existente no qual já tenha a função de Colaborador.
  • Você precisa das atribuições de função Reader/AcrPull no ACR de origem que contém suas imagens.
  • Você precisa das atribuições de função Contributor e AcrPush na assinatura que conterá o Repositório de Artefatos gerenciado pelo AOSM. Essas permissões permitem que a Extensão AOSM da CLI do Azure faça uma cópia direta de ACR para ACR. A cópia direta é o método mais rápido de transferir imagens de um ACR para outro.
    • A política da sua empresa pode impedir que você tenha permissões no escopo da assinatura. O parâmetro --no-subscription-permissions, disponível nos comandos az aosm nfd publish e az aosm nsd publish, usa permissões com escopo rígido derivadas do serviço do AOSM para orquestrar uma cópia em duas etapas de e para o seu computador local. Essa cópia em duas etapas é mais lenta, mas não requer permissões no escopo da assinatura.

Baixar e instalar a CLI do Azure

Para instalar a CLI do Azure localmente, confira Como instalar a CLI do Azure.

Para entrar na CLI do Azure, use o comando az login e preencha os prompts exibidos no seu terminal para concluir a autenticação. Para ver mais opções de entrada, confira Entrar na CLI do Azure.

Observação

Para execuções no Windows ou no macOS, considere executar a CLI do Azure em um contêiner do Docker. Para obter mais informações, confira Como executar a CLI do Azure em um contêiner do Docker. Você também pode usar o ambiente Bash no Azure Cloud Shell. Para obter mais informações, consulte Iniciar o Cloud Shell para usar o ambiente Bash no Azure Cloud Shell.

Mecanismo Helm e Docker

  • Instale a CLI do Helm no computador host. É necessário usar o Helm v3.8.0 ou posterior.
  • Instale o Docker no computador host.

Instalar a extensão AOSM da CLI

A Extensão AOSM da CLI do Az requer a versão 2.54.0 ou posterior da CLI do Azure.

  1. Execute az version para ver a versão e as bibliotecas dependentes que estão instaladas.
  2. Execute az upgrade para atualizar para a versão mais recente da CLI do Azure.

Instale a extensão AOSM da CLI usando este comando:

az extension add --name aosm

Criar o grupo e versão da Definição de função de rede

Esta seção cria uma pasta no diretório de trabalho chamada vnf-cli-output com os modelos BICEP dos recursos do AOSM que definem o grupo e a versão da Definição de função de rede e o Repositório de artefatos. Esses recursos serão incluídos no seu Design do serviço de rede.

  1. Gere o arquivo de entrada de extensão do AOSM da CLI do Azure para uma VNF.

    az aosm nfd generate-config --definition-type vnf-nexus --output-file <filename.jsonc>
    
  2. Abra o arquivo de entrada gerado na etapa anterior e use os comentários embutidos para inserir os valores necessários. Esse exemplo mostra o arquivo de entrada da extensão do AOSM da CLI do Az para uma VNF da Contoso fictícia, que é executada no Nexus do Operador do Azure.

    Observação

    Por padrão, a extensão do AOSM da CLI do Azure expõe apenas os parâmetros necessários sem valores padrão no modelo do ARM da entrada. Você pode definir expose_all_parameters como true para expor todos os parâmetros do modelo do ARM na NFDV (Versão de definição de função de rede) e no CGS (Esquema de grupo de configuração). Para obter informações detalhadas, confira Exposição de parâmetros usando a extensão da CLI do 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",
        // 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. Execute o comando a seguir para criar o grupo e a versão de Definição de função de rede.

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

Publicar o grupo a versão de Definição de função de rede

Essa etapa cria os recursos do AOSM que definem a Definição de função de rede e o Repositório de artefatos que serão usados para armazenar as imagens da VM da Função de rede. Ela também carrega as imagens para o Repositório de artefatos copiando-os diretamente do ACR de origem ou, se você não tiver as funções Contributor e AcrPush do escopo de assinatura, marcando novamente as imagens do Docker localmente e carregando para o Repositório de artefatos usando credenciais com escopo rígido geradas do serviço do AOSM.

  1. Execute o comando a seguir para publicar o grupo e a versão de Definição de função de rede. Se você não tiver as funções Contributor e AcrPush no escopo da assinatura, inclua --no-subscription-permissions no comando.
az aosm nfd publish --build-output-folder vnf-cli-output --definition-type vnf

Você pode analisar a estrutura de pastas e arquivos e fazer modificações se necessário.

Criar a o grupo e a versão de Design do serviço de rede

Esta seção cria uma pasta no diretório de trabalho chamado nsd-cli-output. Essa pasta contém os modelos BICEP dos recursos do AOSM que definem um grupo e uma versão do Design do serviço de rede. Esse Design do serviço de rede é um modelo usado no recurso Serviço de rede do site que implantará a Função de rede que você integrou nas seções anteriores.

  1. Gere o arquivo de entrada do NSD da Extensão do AOSM da CLI do Azure.

    az aosm nsd generate-config --output-file <nsd-output-filename.jsonc>
    
  2. Abra o arquivo de entrada gerado na etapa anterior e use os comentários embutidos para inserir os valores necessários. O arquivo de entrada gerado contém um resource_element_typeadicional do tipo ArmTemplate. Isso não é necessário ao integrar uma VNF; você pode excluí-lo. Esse exemplo mostra o arquivo de entrada da extensão AOSM da CLI do Az para um NSD da Contoso fictícia, que pode ser usada para implantar uma VNF da Contoso fictícia em uma instância do Nexus do Operador do Azure.

    {
        // 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"
                }
            }
        ]
    }
    

    Observação

    A seção de modelo do elemento do recurso define qual NFD está incluído no NSD. As propriedades devem corresponder às usadas no arquivo de entrada repassado para o comando az aosm nfd build. Isso ocorre porque a Extensão do AOSM da CLI do Azure valida se o NFD foi integrado corretamente ao compilar o NSD.

  3. Execute o comando a seguir para criar os modelos BICEP do grupo e da versão do Design do serviço de rede.

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

Você pode analisar a estrutura de pastas e arquivos e fazer modificações se necessário.

Publicar o NSD (design do serviço de rede)

Essa etapa cria os recursos do AOSM que definem o grupo e a versão de Design do serviço de rede. Também carrega artefatos exigidos pelo NSD para o Repositório de artefatos (modelo do ARM da Função de rede).

  1. Execute o comando a seguir para publicar o grupo e a versão de Design do serviço de rede. Se você não tiver as funções Contributor e AcrPush no escopo da assinatura, inclua --no-subscription-permissions no comando.
az aosm nsd publish --build-output-folder nsd-cli-output

Agora você tem um conjunto completo de recursos de distribuidor do AOSM e está pronto para executar o fluxo do operador.

Próximas etapas