Partilhar via


Guia de início rápido: publicar a máquina virtual (VM) do Ubuntu como função de rede virtual (VNF)

Este guia de início rápido descreve como usar a extensão CLI do az aosm Azure para criar e publicar uma definição básica de função de rede. Sua finalidade é demonstrar o fluxo de trabalho dos recursos do Publisher Azure Operator Service Manager (AOSM). Os conceitos básicos apresentados aqui destinam-se a preparar os usuários para construir serviços mais interessantes.

Pré-requisitos

Criar arquivo de entrada

Execute o seguinte comando para gerar o arquivo de configuração de entrada para a definição de função de rede (NFD).

az aosm nfd generate-config --definition-type vnf

Depois de executar esse comando, um arquivo vnf-input.jsonc é gerado.

Nota

Edite o arquivo vnf-input.jsonc, substituindo-o pelos valores mostrados no exemplo. Salve o arquivo como input-vnf-nfd.jsonc.

Se você estiver usando um grupo de recursos existente, altere o publisher_resource_group_name campo para correspondê-lo.

Aqui está um exemplo de arquivo input-vnf-nfd.jsonc:

{
  // 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.
  // Will be created if it does not exist
  "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",
  // Name of the network function.
  "nf_name": "ubuntu-vm",
  // 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,
  // Optional. Name of the storage account Artifact Store resource.
  // Will be created if it does not exist (with a default name if none is supplied).
  "blob_artifact_store_name": "ubuntu-blob-store",
  // 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": "ubuntu-template",
      // 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": "ubuntu-template.json"
    }
  ],
  // VHD image configuration.
  "vhd": {
    // Optional. Name of the artifact. Name will be generated if not supplied.
    "artifact_name": "",
    // Version of the artifact in A-B-C format. Note the '-' (dash) not '.' (dot).
    "version": "1-0-0",
    // Supply either file_path or blob_sas_url, not both.
    // File path (absolute or relative to this configuration file) of the artifact you wish to upload from your local disk.
    // Leave as empty string if not required. Use Linux slash (/) file separator even if running on Windows.
    "file_path": "livecd.ubuntu-cpc.azure.vhd",
    // Optional. Specifies the size of empty data disks in gigabytes.
    // This value cannot be larger than 1023 GB. Delete if not required.
    "image_disk_size_GB": "30",
    // Optional. Specifies the HyperVGenerationType of the VirtualMachine created from the image.
    // Valid values are V1 and V2. V1 is the default if not specified. Delete if not required.
    "image_hyper_v_generation": "V1",
    // Optional. The ARM API version used to create the Microsoft.Compute/images resource.
    // Delete if not required.
    "image_api_version": "2023-03-01"
  }
}
Variável Description
publisher_name Nome do recurso do Publisher no qual você deseja publicar sua definição. Criado se não existir.
publisher_resource_group_name Grupo de recursos para o recurso Publicador. Criado se não existir.
acr_artifact_store_name Nome do recurso ACR Artifact Store. Criado se não existir.
localização Local do Azure a ser usado ao criar recursos.
nf_name Nome da definição de novo alimento.
Versão Versão da definição de NF em formato A.B.C.
blob_artifact_store_name Nome do recurso Armazenamento de Artefatos da conta de armazenamento. Criado se não existir.
expose_all_parameters Se todos os parâmetros de configuração NFD devem ou não ser disponibilizados para o designer.
arm_template artifact_name: Nome do artefato.
file_path: Opcional. Caminho do arquivo do artefato que você deseja carregar do disco local. Exclua, se não for necessário. Os caminhos relativos são relativos ao arquivo de configuração. No Windows, escape de qualquer barra invertida com outra barra invertida.
versão: Versão do artefato. Para modelos ARM, a versão deve estar no formato A.B.C.
VHD artifact_name: Nome do artefato.
file_path: Opcional. Caminho do arquivo do artefato que você deseja carregar do disco local. Exclua, se não for necessário. Os caminhos relativos são relativos ao arquivo de configuração. No Windows, escape de qualquer barra invertida com outra barra invertida.
blob_sas_url: Opcional. URL SAS do artefato de blob que você deseja copiar para sua Loja de Artefatos. Exclua, se não for necessário.
versão: Versão do artefato. Versão do artefato. Para VHDs a versão deve estar no formato A-B-C.
"image_disk_size_GB: Opcional. Especifica o tamanho dos discos de dados vazios em gigabytes. Esse valor não pode ser maior que 1023 GB. Exclua, se não for necessário.
image_hyper_v_generation: Opcional. Especifica o HyperVGenerationType do VirtualMachine criado a partir da imagem. Os valores válidos são V1 e V2. V1 é o padrão se não for especificado. Exclua, se não for necessário.
image_api_version: Opcional. A versão da API ARM usada para criar o recurso Microsoft.Compute/images. Exclua, se não for necessário.

Nota

Ao usar a opção file_path, é essencial ter uma conexão de internet confiável com largura de banda de upload suficiente, já que as imagens VHD geralmente são muito grandes.

Importante

Cada variável descrita na tabela anterior deve ser única. Por exemplo, o nome do grupo de recursos ainda não pode existir e os nomes do editor e do repositório de artefatos devem ser exclusivos na região.

Criar a definição de função de rede (NFD)

Para construir a definição de função de rede (NFD), inicie o processo de compilação.

az aosm nfd build --config-file input-vnf-nfd.jsonc --definition-type vnf

Quando a compilação estiver concluída, examine os arquivos gerados para entender melhor a estrutura de definição de função de rede (NFD).

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

Diretório / Arquivo Description
vnf-cli-output/artifactManifest
deploy.bicep Modelo de bíceps para criar manifesto de artefato, com artefatos preenchidos a partir do arquivo de entrada
vnf-cli-output/artefatos
artifacts.json Lista de artefatos (imagens e modelos ARM) a serem carregados na publicação. Correlaciona-se com o manifesto do artefato
vnf-cli-saída/base
deploy.bicep Modelo Bicep para criar recursos AOSM subjacentes necessários para criar um NF (publisher, acr, nfdg)
vnf-cli-output/nfDefinição
deploy.bicep Bicep para criar a Versão de Definição de Função de Rede (NFDV), com informações de aplicativo de função de rede do modelo ARM fornecido no arquivo de entrada
deployParameters.json Esquema que define os parâmetros de implantação necessários para criar uma Função de Rede (NF) a partir desta Versão de Definição de Função de Rede (NFDV)
<arm-template-name>-templateParameters.json O arquivo contém os parâmetros de implantação fornecidos para a Versão de Definição de Função de Rede (NFDV) mapeada para os parâmetros necessários para o modelo ARM de Máquina Virtual (VM). Esses parâmetros de modelo VM ARM são originados dos modelos ARM fornecidos no arquivo de entrada
vhdParameters.json O arquivo contém os parâmetros de implantação fornecidos para a Versão de Definição de Função de Rede (NFDV) mapeados para os parâmetros necessários para a imagem VHD. Os parâmetros de configuração VHD são originados da seção VHD do arquivo de entrada
vnf-cli-saída
all_deploy.parameters.json Superconjunto de todos os parâmetros de implantação da NF, fornecendo um único arquivo para personalizar nomes de recursos. Os valores de saída para este arquivo pelo comando build são retirados do arquivo vnf-input.jsonc, mas podem ser editados nesse arquivo antes de executar publish, por exemplo, para publicar em um local diferente ou usar um nome de editor diferente
index.json Arquivo usado internamente ao publicar recursos. Não editar

Nota

Se foram cometidos erros, a única opção a corrigir é executar novamente o comando com as seleções adequadas.

Publicar a definição de função de rede e carregar artefatos

Execute o seguinte comando para publicar a definição de função de rede (NFD) e carregar os artefatos associados:

Nota

Os nomes dos editores devem ser exclusivos dentro de uma região. É bastante provável que o 'ubuntu-publisher' definido no arquivo de configuração de exemplo já exista.

Se você receber um erro dizendo "Um recurso de editor privado com o nome 'ubuntu-publisher' já existe na região fornecida", edite o publisher_name campo no arquivo de configuração para que ele seja exclusivo (por exemplo, adicione um sufixo de string aleatório), execute novamente o build comando (acima) e, em seguida, execute novamente este publish comando.

Se você continuar a criar um design de serviço de rede, precisará usar esse novo nome pubilsher na resource_element_templates matriz.

az aosm nfd publish --build-output-folder vnf-cli-output --definition-type vnf

Quando o comando for concluído, inspecione os recursos dentro do Grupo de Recursos do Publisher para observar os componentes e artefatos criados.

Estes recursos são criados:

Nome do Recurso Tipo de Recurso
ubuntu-vm Definição da função de rede.
1.0.0 Versão de definição de função de rede.
ubuntu-editor Fabricante.
ubuntu-vm-acr-manifest-1-0-0 Manifesto de Artefato do Editor.
ubuntu-vm-sa-manifest-1-0-0 Manifesto de Artefato do Editor.
ubuntu-acr Loja de Artefactos do Editor.
ubuntu-blob-loja Loja de Artefactos do Editor.

Próximos passos