Executar Azure IoT Edge em Máquinas Virtuais do Ubuntu
Aplica-se a: IoT Edge 1.5 IoT Edge 1.4
Importante
O IoT Edge 1.5 LTS e o IoT Edge 1.4 LTS são versões com suporte. O IoT Edge 1.4 LTS chegará ao fim da vida útil em 12 de novembro de 2024. Se você estiver em uma versão anterior, confira Atualizar o IoT Edge.
O runtime do Azure IoT Edge é o que transforma um dispositivo em um dispositivo do IoT Edge. O runtime pode ser implantado em dispositivos pequenos como um Raspberry Pi ou grandes como um servidor industrial. Após um dispositivo ser configurado com o runtime do IoT Edge, você pode começar a implantar a lógica de negócios nele da nuvem.
Para saber mais sobre como funciona o runtime do IoT Edge e quais componentes estão incluídos, veja Entender o runtime do Azure IoT Edge e sua arquitetura.
Este artigo lista as etapas necessárias para implantar uma máquina virtual Ubuntu 20.04 LTS com o runtime do Azure IoT Edge instalado e configurado usando uma cadeia de conexão de dispositivo fornecida previamente. A implantação é realizada usando um modelo do Azure Resource Manager baseado em cloud-init, mantido no repositório do projeto iotedge-vm-deploy.
Na primeira inicialização, a máquina virtual instala a versão mais recente do runtime do Azure IoT Edge por meio do cloud-init. Ela também define uma cadeia de conexão fornecida antes do runtime ser iniciado, permitindo que você configure e conecte com facilidade o dispositivo do IoT Edge sem a necessidade de iniciar uma sessão do SSH ou da área de trabalho remota.
Implantar usando o botão Implantar no Azure
O Botão implantar no Azure permite a implantação simplificada dos modelos do Azure Resource Manager mantidos no GitHub. Esta seção demonstrará o uso do botão Implantar no Azure, contido no repositório do projeto iotedge-vm-deploy.
Implantaremos uma VM Linux habilitada para Azure IoT Edge usando o modelo do Azure Resource Manager iotedge-vm-deploy. Para começar, selecione o seguinte botão:
Na recém-criada janela, preencha os campos de formulário disponíveis:
Campo Descrição Assinatura A assinatura ativa do Azure na qual a máquina virtual será implantada. Grupo de recursos Um Grupo de Recursos existente ou recém-criado para conter a máquina virtual e os recursos associados. Região A região geográfica na qual a máquina virtual será implantada. Esse valor assumirá a localização do Grupo de Recursos selecionado como padrão. Prefixo do rótulo DNS Um valor obrigatório de sua preferência que será usado para prefixar o nome do host da máquina virtual. Nome de Usuário do Administrador Um nome de usuário que recebe privilégios raiz na implantação. Cadeia de conexão do dispositivo Uma cadeia de conexão do dispositivo para um dispositivo criado no Hub IoT pretendido. Tamanho da VM O tamanho da máquina virtual que será implantada. Versão do sistema operacional Ubuntu A versão do sistema operacional Ubuntu que será instalada na máquina virtual de base. Tipo de Autenticação Escolha sshPublicKey ou senha, de acordo com sua preferência. Senha ou chave de administrador O valor da Chave Pública SSH ou o valor da senha, dependendo do Tipo de Autenticação escolhida. Selecione
Next : Review + create
para revisar os termos e selecione Criar para iniciar a implantação.Verifique se a implantação foi concluída com êxito. Um recurso de máquina virtual é implantado no grupo de recursos selecionado. Anote o nome do computador. Ele terá o formato
vm-0000000000000
. Além disso, anote o Nome DNS associado, que deve estar no formato<dnsLabelPrefix>
.<location>
.cloudapp.azure.com.O Nome DNS pode ser obtido na seção Visão geral da máquina virtual implantada recentemente no portal do Azure.
Caso queira usar o SSH nessa VM após a instalação, use o Nome DNS associado a este comando:
ssh <adminUsername>@<DNS_Name>
Implantar da CLI do Azure
Verifique se você instalou a extensão de IoT da CLI do Azure com:
az extension add --name azure-iot
Em seguida, se você estiver usando a CLI do Azure na sua área de trabalho, comece entrando:
az login
Se você tiver várias assinaturas, selecione aquela que gostaria de usar:
Liste suas assinaturas:
az account list --output table
Copie o campo SubscriptionID da assinatura que você quer usar.
Defina sua assinatura de trabalho com a ID que você copiou:
az account set -s <SubscriptionId>
Crie um novo grupo de recursos (ou especifique um existente nas próximas etapas):
az group create --name IoTEdgeResources --location westus2
Crie uma nova máquina virtual:
Para usar o authenticationType de
password
, confira o seguinte exemplo:az deployment group create \ --resource-group IoTEdgeResources \ --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/main/edgeDeploy.json" \ --parameters dnsLabelPrefix='my-edge-vm1' \ --parameters adminUsername='<REPLACE_WITH_USERNAME>' \ --parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id <REPLACE_WITH_DEVICE-NAME> --hub-name <REPLACE-WITH-HUB-NAME> -o tsv) \ --parameters authenticationType='password' \ --parameters adminPasswordOrKey="<REPLACE_WITH_SECRET_PASSWORD>"
Para se autenticar com uma chave SSH, você pode fazer isso especificando o authenticationType de
sshPublicKey
e, em seguida, fornecendo o valor da chave SSH no parâmetro adminPasswordOrKey. Consulte o seguinte exemplo:#Generate the SSH Key ssh-keygen -m PEM -t rsa -b 4096 -q -f ~/.ssh/iotedge-vm-key -N "" #Create a VM using the iotedge-vm-deploy script az deployment group create \ --resource-group IoTEdgeResources \ --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/main/edgeDeploy.json" \ --parameters dnsLabelPrefix='my-edge-vm1' \ --parameters adminUsername='<REPLACE_WITH_USERNAME>' \ --parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id <REPLACE_WITH_DEVICE-NAME> --hub-name <REPLACE-WITH-HUB-NAME> -o tsv) \ --parameters authenticationType='sshPublicKey' \ --parameters adminPasswordOrKey="$(< ~/.ssh/iotedge-vm-key.pub)"
Verifique se a implantação foi concluída com êxito. Um recurso de máquina virtual deve ser implantado no grupo de recursos selecionado. Anote o nome do computador. Ele terá o formato
vm-0000000000000
. Além disso, anote o Nome DNS associado, que deve estar no formato<dnsLabelPrefix>
.<location>
.cloudapp.azure.com.O nome DNS pode ser obtido da saída formatada em JSON da etapa anterior, dentro da seção saídas, como parte da entrada SSH público. O valor dessa entrada pode ser usado para o SSH dentro computador recém-implantado.
"outputs": { "public SSH": { "type": "String", "value": "ssh <adminUsername>@<DNS_Name>" } }
O Nome DNS pode ser obtido na seção Visão Geral da máquina virtual recém-implantada no portal do Azure.
Caso queira usar o SSH nessa VM após a instalação, use o Nome DNS associado a este comando:
ssh <adminUsername>@<DNS_Name>
Próximas etapas
Agora que você tem um dispositivo IoT Edge provisionado com o runtime instalado, é possível implantar os módulos do IoT Edge.
Se você estiver tendo problemas para instalar corretamente o runtime do IoT Edge, confira a página de solução de problemas.
Para atualizar uma instalação existente para a versão mais recente do IoT Edge, consulte Atualizar o IoT Edge de segurança e o runtime do IoT Edge.
Se você quiser abrir portas para acessar a VM por meio do SSH ou de outras conexões de entrada, veja a documentação de Máquinas Virtuais do Azure sobre a abertura de portas e pontos de extremidade para uma VM do Linux.