Integrar uma VNF (Função de Rede Virtualizada) para implantação no Azure Operator Nexus ao Azure Operator Service Manager (AOSM)
Neste guia de instruções, os Editores de Função de Rede e os Designers de Serviço aprendem a usar a extensão AOSM da CLI do Azure para integrar uma função de rede virtualizada ao AOSM. Essa VNF pode ser implantada posteriormente no Azure Operator Nexus. A integração é um processo de várias etapas. Depois de atender aos pré-requisitos, você usará a extensão AOSM da CLI do Azure para:
- Gere arquivos BICEP que definem um Grupo e Versão de Definição de Função de Rede (NFD).
- Publique o NFD e carregue a imagem VNF em um Repositório de Artefatos (Azure Container Registry (ACR) gerenciado pelo AOSM).
- Adicione seu NFD publicado aos arquivos BICEP que definem um Network Service Design Group and Version (NSD).
- Publique a NSD.
Pré-requisitos
- Você tem acesso a uma instância do Azure Operator Nexus e concluiu os pré-requisitos para a implantação da carga de trabalho.
- Você habilitou o AOSM em sua assinatura do Azure.
Nota
É altamente recomendável que você tenha testado se a implantação da VM é bem-sucedida em sua instância do Azure Operator Nexus antes de integrar o VNF ao AOSM.
Imagens de máquina virtual (VM) do Azure Operator Nexus e modelos do Azure Resource Manager (ARM)
Você criou uma imagem para a Máquina Virtual Nexus do Operador do Azure. Esta imagem deve estar disponível num ACR.
Você criou um modelo ARM que implanta uma Máquina Virtual Nexus do Operador do Azure.
O modelo VM ARM (para AzureCore e Azure Operator Nexus) só pode implantar recursos ARM dos seguintes Provedores de Recursos
- Microsoft.Compute
- Microsoft.Network
- Microsoft.NetworkCloud
- Microsoft.Storage
- Microsoft.NetworkFabric
- Microsoft.Authorization
- Microsoft.ManagedIdentity
O modelo VNF ARM deve implantar uma VM. Várias VMs podem ser implantadas incluindo várias instâncias do NFDV no NSDV.
Configurar permissões
- Você precisa da função de Colaborador em sua assinatura para criar um Grupo de Recursos ou um Grupo de Recursos existente onde você tenha a função de Colaborador.
- Você precisa das
Reader
/AcrPull
atribuições de função no ACR de origem que contém suas imagens. - Você precisa das
Contributor
atribuições eAcrPush
de função 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 com escopo de assinatura. O
--no-subscription-permissions
parâmetro, disponível nosaz aosm nfd publish
comandos andaz aosm nsd publish
, usa permissões com escopo restrito derivadas do serviço AOSM para orquestrar uma cópia de duas etapas de e para sua máquina local. Essa cópia em duas etapas é mais lenta, mas não requer permissões com escopo de assinatura.
- A política da sua empresa pode impedir que você tenha permissões com escopo de assinatura. O
Baixar e instalar a CLI do Azure
Para instalar a CLI do Azure localmente, consulte Como instalar a CLI do Azure.
Para entrar na CLI do Azure, use o az login
comando e conclua os prompts exibidos no terminal para concluir a autenticação. Para obter mais opções de entrada, consulte Entrar com a CLI do Azure.
Nota
Se estiver a utilizar o Windows ou macOS, considere executar a CLI do Azure num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker. Você também pode usar o ambiente Bash no shell de nuvem do Azure. Para obter mais informações, consulte Iniciar o Cloud Shell para usar o ambiente Bash no Azure Cloud Shell.
Motor Helm e Docker
- Instale a CLI do Helm no computador host. Você deve usar o Helm v3.8.0 ou posterior.
- Instale o Docker no computador host.
Instalar a extensão AOSM CLI
A Extensão AOSM da Az CLI requer a versão 2.54.0 ou posterior da CLI do Azure.
- Execute
az version
para ver a versão e as bibliotecas dependentes que estão instaladas. - Execute
az upgrade
para atualizar para a versão atual da CLI do Azure.
Instale a extensão AOSM CLI usando este comando:
az extension add --name aosm
Criar o Grupo e a Versão de 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 AOSM que definem seu Grupo e Versão de Definição de Função de Rede e o Repositório de Artefatos. Em última análise, esses recursos serão incluídos no seu Design de Serviço de Rede
Gere o arquivo de entrada de extensão AOSM da CLI do Azure para uma VNF.
az aosm nfd generate-config --definition-type vnf-nexus --output-file <filename.jsonc>
Abra o arquivo de entrada gerado na etapa anterior e use os comentários embutidos para inserir os valores necessários. Este exemplo mostra o arquivo de entrada da extensão AOSM Az CLI para um VNF Contoso fictício, que é executado no Azure Operator Nexus.
Nota
A extensão AOSM da CLI do Azure expõe apenas os parâmetros necessários sem valores padrão no modelo ARM de entrada por padrão. Você pode definir
expose_all_parameters
paratrue
expor todos os parâmetros de modelo ARM na Versão de Definição de Função de Rede (NFDV) e no Esquema de Grupo de Configuração (CGS). Consulte Exposição de parâmetros usando a extensão AOSM CLI para obter informações mais detalhadas.{ // 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"] }```
Execute o seguinte comando 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 e a versão do grupo de definições de função de rede
Esta 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 de VM da Função de Rede. Ele também carrega as imagens para o Repositório de Artefatos copiando-as diretamente do ACR de origem ou, se você não tiver escopo Contributor
e AcrPush
funções de assinatura, remarcando as imagens do docker localmente e carregando para o Repositório de Artefatos usando credenciais com escopo restrito geradas a partir do serviço AOSM.
- Execute o seguinte comando para publicar o Grupo e a Versão de Definição de Função de Rede. Se você não tiver escopo
Contributor
eAcrPush
funções de assinatura, inclua--no-subscription-permissions
no comando.
az aosm nfd publish --build-output-folder vnf-cli-output --definition-type vnf
Você pode revisar a estrutura de pastas e arquivos e fazer modificações, se necessário.
Criar o grupo e a versão do Network Service Design
Esta seção cria uma pasta no diretório de trabalho chamada nsd-cli-output
. Esta pasta contém os modelos BICEP dos recursos AOSM que definem um Grupo e Versão de Design de Serviço de Rede. Este Design de Serviço de Rede é um modelo usado no recurso Serviço de Rede do Site que implantará a Função de Rede integrada nas seções anteriores.
Gere o arquivo de entrada NSD da extensão AOSM da CLI do Azure.
az aosm nsd generate-config --output-file <nsd-output-filename.jsonc>
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 adicional
resource_element_type
do tipoArmTemplate
. Isso é desnecessário ao integrar um VNF; você pode excluí-lo. Este exemplo mostra o arquivo de entrada de extensão AOSM Az CLI para um NSD Contoso fictício que pode ser usado para implantar um VNF Contoso fictício em uma instância do Azure Operator Nexus.{ // 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" } } ] }
Nota
A seção de modelo de elemento de recurso define qual NFD está incluído na NSD. As propriedades devem corresponder às usadas no arquivo de entrada passado para o
az aosm nfd build
comando. Isso ocorre porque a Extensão AOSM da CLI do Azure valida que o NFD foi integrado corretamente ao criar o NSD.Execute o seguinte comando para criar os modelos Network Service Design Group e Version BICEP.
az aosm nsd build --config-file <nsd-output-filename.jsonc>
Você pode revisar a estrutura de pastas e arquivos e fazer modificações, se necessário.
Publicar o projeto de serviço de rede (NSD)
Esta etapa cria os recursos do AOSM que definem o Grupo e a Versão do Design do Serviço de Rede. Ele também carrega artefatos exigidos pela NSD para o Repositório de Artefatos (modelo ARM de Função de Rede).
- Execute o seguinte comando para publicar o Network Service Design Group and Version. Se você não tiver escopo
Contributor
eAcrPush
funções de 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 do editor AOSM e está pronto para executar o fluxo do operador.