Início Rápido: Criar um NSD (design de serviço de rede) para VM (máquina virtual) do Ubuntu como uma VNF (função virtualizada de rede)

Este início rápido descreve como usar a extensão da CLI do Azure az aosm para criar e publicar um design de serviço de rede básico.

Pré-requisitos

É necessária uma conta do Azure com uma assinatura ativa. Se você não tiver uma assinatura do Azure, siga as instruções aqui Iniciar gratuitamente para criar uma conta antes de começar.

Você deve seguir os pré-requisitos em Início Rápido: Publicar uma máquina virtual (VM) do Ubuntu como função virtualizada de rede (VNF).

Criar arquivo de entrada

Crie um arquivo de entrada para publicar o design do serviço de rede. Execute o seguinte comando para gerar o arquivo de configuração de entrada para o NSD (design do serviço de rede).

az aosm nsd generate-config

Um arquivo nsd-input.jsonc é gerado quando você executa esse comando.

Observação

Edite o arquivo nsd-input.jsonc, substituindo-o pelos valores mostrados no exemplo. Remova a seção em que resource_element_type está definido como ArmTemplate. Isso serve para adicionar infraestrutura (como VNets) a NSDs mais complicados, o que não é necessário neste início rápido. Salve o arquivo como input-vnf-nsd.jsonc.

Se você alterou o nome do publicador ao publicar o NFDV, use o nome do publicador para os campos publisher_name e publisher (o último está dentro da matriz resource_element_templates).

Se você tiver usado um nome de grupo de recursos diferente, atualize os campos publisher_resource_group_name e publisher_resource_group (o último está dentro da matriz 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"
        }
    }
  ]
}
Variável Descrição
publisher_name Nome do recurso Publicador para o qual você deseja que sua definição seja publicada. Criado se ele não existir.
publisher_resource_group_name Grupo de recursos para o recurso publicador. Criado se ele não existir.
acr_artifact_store_name Nome do recurso do repositório de artefatos do Registro de Contêiner do Azure (ACR). Criado se ele não existir.
local Local do Azure a ser usado ao criar recursos.
network-functions publisher: o nome do publicador no qual esta versão de definição de função de rede (NFDV) está publicado.
publisher_resource_group: o grupo de recursos no qual o publicador está hospedado.
name: o nome do grupo de definição de função de rede existente a ser implantado usando esse NSD.
version: a versão da definição de função de rede existente na qual basear esse NSD. Esse NSD consegue implantar qualquer NFDV com parâmetros de implantação compatíveis com esta versão.
publisher_offering_location: a região na qual o NFDV foi publicado.
type: tipo de função de rede. Os valores válidos são cnf ou vnf.
nsd_name Nome do grupo de design do serviço de rede. A coleção de versões de design do serviço de rede. Criado se não existir.
nsd_version Versão do NSD a ser criado. O formato deve ser A.B.C.
nsdv_description Descrição do NSDV.

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

Inicie o processo de build para o Design do Serviço de Rede (NSD) usando o seguinte comando:

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

Após a conclusão do processo de build, examine os seguintes arquivos gerados para obter insights sobre a arquitetura e a estrutura do NSD.

Esses arquivos são criados em um subdiretório chamado nsd-cli-output:

Diretório / Arquivo Descrição
nsd-cli-output/artifactManifest
deploy.bicep Modelo Bicep para criar o manifesto do artefato, com artefatos preenchidos do arquivo de entrada
nsd-cli-output/artifacts
artifacts.json Lista de artefatos (imagens e modelos do ARM) a serem carregados na publicação. Correlaciona-se com o manifesto do artefato
<nf-name>.bicep Modelo Bicep por RET de função de rede (NF) fornecido no arquivo de entrada, para implantar a NF. Esse modelo é convertido em um modelo do ARM e carregado no repositório de artefatos quando você executa o comando Publish
nsd-cli-output/base
deploy.bicep Modelo Bicep para criar o publicador, as contas de armazenamento e o grupo de design de serviço de rede compartilhado por todas as NSDVs deste grupo NSD
nsd-cli-output/nsdDefinition
deploy.bicep Modelo Bicep para criar a Versão de Design do Serviço de Rede (NSDV). Este modelo contém modelos de elemento de recurso filho, que são obtidos dos modelos do ARM ou NFs (para infraestrutura) definidos no arquivo nsd-input.jsonc
config-group-schema.json Esquema de grupo de configuração combinado para todas as NFs nesta NSDV. Esse esquema define as entradas que o operador precisa fornecer nos valores do grupo de configuração ao implantar a NSDV como parte de um serviço de rede do site (SNS).
<nf-name>-mappings.json Arquivo que mapeia os valores do grupo de configuração fornecidos pelo operador para os parâmetros de implantação definidos na NSDV. Há um por NF em sua NSDV
nsd-cli-output
all_deploy.parameters.json Superconjunto de todos os parâmetros de implantação da NF, fornecendo um único arquivo para personalizar nomes de recursos. A saída de valores para esse arquivo pelo comando de build é retirada do arquivo nsd-input.jsonc. Você pode editar os valores neste arquivo antes de executar a publicação, por exemplo, para publicar em um local diferente ou usar um nome de publicador diferente
index.json Arquivo usado internamente ao publicar recursos. Não editar

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

Para publicar o NSD (design do serviço de rede) e seus artefatos associados, emita o seguinte comando:

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

Navegue até o grupo de recursos do publicador para observar e examinar os recursos e artefatos que foram produzidos.

Estes recursos são criados:

Nome do Recurso Tipo de recurso
ubuntu-nsd O design do serviço de rede.
1.0.0 (ubuntu-nsd/1.0.0) A versão de design do serviço de rede.
ubuntu-nsd-nsd-manifest-1-0-0 Manifesto do Artefato do Publicador.
ConfigGroupSchema O esquema de grupo de configuração.

Próximas etapas