Partilhar via


Introdução ao FreeBSD no Azure

Aplica-se a: ✔️ Linux VMs ✔️ Conjuntos de escala flexível

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

Descrição geral

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

A Microsoft está disponibilizando imagens do FreeBSD no Azure com o Azure VM Guest Agent pré-configurado. Atualmente, 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 seguintes versões do FreeBSD também incluem o Azure VM Guest Agent. Eles são oferecidos como imagens pela Fundação FreeBSD:

  • 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 provisionar a VM na primeira utilização (nome de usuário, senha ou chave SSH e nome do host) e habilitar a funcionalidade para extensões seletivas de VM.

Quanto às futuras versões do FreeBSD, a estratégia é manter-se atualizado e disponibilizar os últimos lançamentos logo após serem publicados pela equipe de engenharia de lançamento do FreeBSD.

Criar uma VM do FreeBSD através da CLI do Azure no FreeBSD

Primeiro, você precisa instalar a CLI do Azure por meio do seguinte comando em uma máquina FreeBSD:

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

Se o bash não estiver instalado na sua máquina FreeBSD, execute o seguinte comando antes da instalação:

sudo pkg install bash

Se o Python não estiver instalado na sua máquina FreeBSD, execute os seguintes comandos 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 você responder y e digitar /etc/rc.conf como a path to an rc file to update, você pode ver ERROR: [Errno 13] Permission denied. Para resolver esse problema, você deve conceder a permissão de gravação para o usuário atual em relação ao 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 do FreeBSD 11.0. Você também pode adicionar o parâmetro --public-ip-address-dns-name com um nome DNS globalmente 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, você pode entrar na sua VM do FreeBSD através do endereço IP impresso na saída da implantação anterior.

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

Extensões de VM para FreeBSD

As seguintes extensões de VM são suportadas no FreeBSD.

VMAccess

A extensão VMAccess pode:

  • Redefina a senha do usuário sudo original.
  • Crie um novo usuário sudo com a senha especificada.
  • Defina a chave de host pública com a chave fornecida.
  • Redefina a chave de host pública 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 if reset_ssh está definido como true.
  • Remover o utilizador existente.
  • Verifique os discos.
  • Repare um disco adicionado.

CustomScript

A extensão CustomScript pode:

  • Se fornecido, baixe os scripts personalizados do Armazenamento do Azure ou do armazenamento público externo (por exemplo, GitHub).
  • Execute o script de ponto de entrada.
  • Suporte a comandos embutidos.
  • Converta automaticamente newline no estilo Windows em shell e scripts Python.
  • Remova a lista técnica em scripts shell e Python automaticamente.
  • Proteja dados confidenciais no CommandToExecute.

Nota

A VM do FreeBSD só suporta o CustomScript versão 1.x até agora.

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

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

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

Atualmente, apenas a chave RSA SSH é suportada. Uma chave SSH de várias linhas 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 de sudo foi instalado na imagem publicada do FreeBSD.

Depois de iniciar sessão através desta conta de utilizador, pode executar comandos como root utilizando a sintaxe do comando.

$ sudo <COMMAND>

Opcionalmente, você pode obter um shell raiz usando sudo -s.

Problemas conhecidos

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