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
É necessária uma conta do Azure com uma subscrição ativa. Se você não tiver uma assinatura do Azure, siga as instruções aqui Comece grátis para criar uma conta antes de começar.
Conclua o Guia de início rápido: conclua os pré-requisitos para implantar uma função de rede virtualizada no Azure Operator Service Manager
Um Grupo de Recursos existente onde você tem a função de Colaborador ou a função de Colaborador sobre esta assinatura para que a extensão da CLI do AOSM possa criar o grupo de recursos.
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. |