Introdução ao FreeBSD no Azure

Aplica-se a: ✔️ VMs do Linux ✔️ Conjuntos de dimensionamento flexíveis

Este artigo fornece uma visão geral da execução de uma VM (máquina virtual) FreeBSD no Azure.

Visão geral

O FreeBSD para Azure é um sistema operacional avançado usado para capacitar servidores modernos, desktops e plataformas incorporadas.

A Microsoft está disponibilizando imagens do FreeBSD no Azure com o Agente convidado da VM Azure pré-configurado. No momento, as seguintes versões do FreeBSD são oferecidas como imagens pela Microsoft:

  • FreeBSD 10.4 no Azure Marketplace
  • FreeBSD 11.2 no Azure Marketplace
  • FreeBSD 11.3 no Azure Marketplace
  • FreeBSD 12.0 no Azure Marketplace

As versões do FreeBSD a seguir também incluem o Agente Convidado da VM do Azure. Eles são oferecidos como imagens pela FreeBSD Foundation:

  • FreeBSD 11.4 no Azure Marketplace
  • FreeBSD 12.2 no Azure Marketplace
  • FreeBSD 13.0 no Azure Marketplace

O agente é responsável pela comunicação entre a VM do FreeBSD e a malha do Azure para operações como provisionamento da VM no primeiro uso (nome de usuário, senha, chave SSH e nome do host) e habilitação da funcionalidade para extensões de VM seletivas.

Para versões futuras do FreeBSD, a estratégia é manter-se atualizado e disponibilizar as versões mais recentes logo após a publicação pela equipe de engenharia de versão do FreeBSD.

Criar uma VM do FreeBSD por meio da CLI do Azure no FreeBSD

Primeiro, você precisa instalar a CLI do Azure seguindo os comandos em um computador FreeBSD:

curl -L https://aka.ms/InstallAzureCli | bash

Se o bash não estiver instalado no seu computador FreeBSD, execute o comando a seguir antes da instalação:

sudo pkg install bash

Se o Python não estiver instalado no seu computador FreeBSD, execute o comando a seguir antes da instalação:

sudo pkg install python38
cd /usr/local/bin 
sudo rm /usr/local/bin/python 
sudo ln -s /usr/local/bin/python3.8 /usr/local/bin/python

Durante a instalação, você será solicitado a Modify profile to update your $PATH and enable shell/tab completion now? (Y/n). Se responder y e inserir /etc/rc.conf como a path to an rc file to update, você poderá ver ERROR: [Errno 13] Permission denied. Para resolvê-lo, você deve conceder a permissão de gravação ao usuário atual sobre o arquivo etc/rc.conf.

Agora você pode entrar no Azure e criar sua VM do FreeBSD. O exemplo a seguir mostra como criar uma VM FreeBSD 11.0. Você também pode adicionar o parâmetro --public-ip-address-dns-name com um nome DNS exclusivo para um IP público recém-criado.

az login 
az group create --name myResourceGroup --location eastus
az vm create --name myFreeBSD11 \
    --resource-group myResourceGroup \
    --image MicrosoftOSTC:FreeBSD:11.0:latest \
    --admin-username azureuser \
    --generate-ssh-keys

Em seguida, é possível entrar na VM do FreeBSD pelo endereço IP impresso na saída da implantação acima.

ssh azureuser@xx.xx.xx.xx -i /etc/ssh/ssh_host_rsa_key

Extensões de VM para FreeBSD

As extensões de VM a seguir têm suporte no FreeBSD.

VMAccess

A extensão VMAccess pode:

  • Redefinir a senha do usuário sudo original.
  • Criar um novo usuário sudo com a senha especificada.
  • Definir a chave pública do host com a chave fornecida.
  • Redefinir a chave pública do host fornecida durante o provisionamento da VM se a chave do host não for fornecida.
  • Abra a porta SSH (22) e restaure o sshd_config se reset_ssh estiver definido como true.
  • Remover o usuário existente.
  • Verificar os discos.
  • Reparar o disco adicionado.

CustomScript

A extensão CustomScript pode:

  • Se for fornecida, baixar os scripts personalizados do Armazenamento do Azure ou do armazenamento público externo (por exemplo, GitHub).
  • Executar o script de ponto de entrada.
  • Oferecer suporte ao comando embutido.
  • Converter automaticamente o estilo newline do Windows em scripts de Shell e Python.
  • Remover automaticamente BOM em scripts de Shell e Python.
  • Proteger dados confidenciais em CommandToExecute.

Observação

A VM do FreeBSD só oferece suporte ao CustomScript versão 1. x até o momento.

Autenticação: nomes de usuário, senhas e chaves SSH

Ao criar uma VM FreeBSD usando o portal do Azure, você deve fornecer um nome de usuário, uma senha ou uma chave pública SSH.

Os nomes de usuário para implantação de uma VM do FreeBSD no Azure não devem corresponder aos nomes de contas do sistema (UID <100) já presentes na VM (“root”, por exemplo).

Atualmente, há suporte apenas para a chave RSA SSH. Uma chave SSH multilinha deve começar com ---- BEGIN SSH2 PUBLIC KEY ---- e terminar com ---- END SSH2 PUBLIC KEY ----.

Obter privilégios de superusuário

A conta de usuário especificada durante a implantação da instância de VM no Azure é uma conta privilegiada. O pacote do sudo foi instalado na imagem de FreeBSD publicada.

Depois de fazer logon usando essa conta de usuário, você poderá executar comandos como raiz usando a sintaxe de comando.

$ sudo <COMMAND>

Opcionalmente, é possível obter um shell root usando sudo -s.

Problemas conhecidos

O Agente convidado de VM do Azure versão 2.2.2 tem um problema conhecido que causa a falha de provisionamento da VM do FreeBSD no Azure. A correção foi capturada pelo Agente Convidado da VM do Azure versão 2.2.3 e versões posteriores.