Criar e carregar uma imagem de disco OpenBSD no Azure

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

Este artigo mostra como criar e carregar um disco rígido virtual (VHD) que contém o sistema operacional OpenBSD. Depois de carregá-lo, você pode usá-lo como sua própria imagem para criar uma máquina virtual (VM) no Azure por meio da CLI do Azure.

Pré-requisitos

Este artigo pressupõe que você tenha os seguintes itens:

  • Uma assinatura do Azure - Se não tiver uma conta, você poderá criar uma em apenas alguns minutos. Se você tiver uma assinatura do MSDN, confira Crédito Azure mensal para assinantes do Visual Studio. Caso contrário, saiba como criar uma conta de avaliação gratuita.
  • CLI do Azure – Verifique se você instalou a versão mais recente da CLI do Azure e entrou em uma conta do Azure usando az login.
  • Sistema operacional OpenBSD instalado em um arquivo .vhd – Um sistema operacional OpenBSD com suporte (AMD64 versão 6.6) deve ser instalado em um disco rígido virtual. Existem várias ferramentas para criar arquivos .vhd. Por exemplo, você pode usar uma solução de virtualização, como o Hyper-V, para criar o arquivo .vhd e instalar o sistema operacional. Para obter instruções sobre como instalar e usar o Hyper-V, confira Instalar o Hyper-V e criar uma máquina virtual.

Preparar imagem OpenBSD do Azure

Na VM em que você instalou o sistema de operacional OpenBSD 6.1, que adicionou suporte Hyper-V, conclua os procedimentos a seguir:

  1. Se DHCP não está habilitado durante a instalação, habilite o serviço da seguinte maneira:

    doas echo dhcp > /etc/hostname.hvn0
    
  2. Instalar um console serial da seguinte maneira:

    doas echo "stty com0 115200" >> /etc/boot.conf
    doas echo "set tty com0" >> /etc/boot.conf
    
  3. Configure a instalação do pacote da seguinte maneira:

    doas echo "https://ftp.openbsd.org/pub/OpenBSD" > /etc/installurl
    
  4. Por padrão, o usuário root encontra-se desabilitado nas máquinas virtuais no Azure. Os usuários podem executar comandos com privilégios elevados usando o comando doas na VM OpenBSD. Doas é habilitado por padrão.

  5. Instalar e configurar os pré-requisitos para o agente do Azure da seguinte maneira:

    doas pkg_add py-setuptools openssl git
    doas ln -sf /usr/local/bin/python2.7 /usr/local/bin/python
    doas ln -sf /usr/local/bin/python2.7-2to3 /usr/local/bin/2to3
    doas ln -sf /usr/local/bin/python2.7-config /usr/local/bin/python-config
    doas ln -sf /usr/local/bin/pydoc2.7  /usr/local/bin/pydoc
    
  6. A versão mais recente do agente do Azure sempre pode ser encontrada no GitHub. Instale o agente da seguinte maneira:

    doas git clone https://github.com/Azure/WALinuxAgent
    doas cd WALinuxAgent
    doas python setup.py install
    doas waagent -register-service
    

    Importante

    Depois de instalar o agente do Azure, convém verificar se ele está em execução da seguinte maneira:

    doas ps auxw | grep waagent
    root     79309  0.0  1.5  9184 15356 p1  S      4:11PM    0:00.46 python /usr/local/sbin/waagent -daemon (python2.7)
    doas cat /var/log/waagent.log
    
  7. Desprovisione o sistema para limpá-lo e torná-lo adequado para o desprovisionamento. O comando a seguir também exclui a última conta de usuário provisionada e os dados associados:

    doas waagent -deprovision+user -force
    

Observação

Se você estiver migrando uma máquina virtual específica e não quiser criar uma imagem generalizada, ignore a etapa de desprovisionamento.

Agora você pode desligar sua VM.

Preparar o VHD

O formato VHDX não tem suporte no Azure, somente o VHD fixo. Você pode converter o disco no formato VHD fixo usando o Gerenciador do Hyper-V ou o cmdlet convert-vhd do PowerShell. Um exemplo é como segue.

Convert-VHD OpenBSD61.vhdx OpenBSD61.vhd -VHDType Fixed

Criar recursos de armazenamento e carregar

Primeiro, crie um grupo de recursos com az group create. O exemplo a seguir cria um grupo de recursos chamado myResourceGroup na localização eastus:

az group create --name myResourceGroup --location eastus

Para carregar seu VHD, crie uma conta de armazenamento com criar conta de armazenamento az. O nome da conta de armazenamento deve ser exclusivo; portanto, forneça seu próprio nome. O exemplo a seguir cria uma conta de armazenamento chamada mystorageaccount:

az storage account create --resource-group myResourceGroup \
    --name mystorageaccount \
    --location eastus \
    --sku Premium_LRS

Para controlar o acesso à conta de armazenamento, obter a chave de armazenamento com az storage account keys list da seguinte maneira:

STORAGE_KEY=$(az storage account keys list \
    --resource-group myResourceGroup \
    --account-name mystorageaccount \
    --query "[?keyName=='key1']  | [0].value" -o tsv)

Para separar logicamente os VHDs que você carregue, crie um contêiner dentro da conta de armazenamento com criar contêiner de armazenamento az:

az storage container create \
    --name vhds \
    --account-name mystorageaccount \
    --account-key ${STORAGE_KEY}

Por fim, carregue o VHD com carregamento de blob de armazenamento az da seguinte maneira:

az storage blob upload \
    --container-name vhds \
    --file ./OpenBSD61.vhd \
    --name OpenBSD61.vhd \
    --account-name mystorageaccount \
    --account-key ${STORAGE_KEY}

Criar VM a partir de seu VHD

Você pode criar uma VM com um script de exemplo ou diretamente com criar vm az. Para especificar o VHD OpenBSD carregado, use o parâmetro --image da seguinte maneira:

az vm create \
    --resource-group myResourceGroup \
    --name myOpenBSD61 \
    --image "https://mystorageaccount.blob.core.windows.net/vhds/OpenBSD61.vhd" \
    --os-type linux \
    --admin-username azureuser \
    --ssh-key-value ~/.ssh/id_rsa.pub

Obter o endereço IP para sua VM OpenBSD com az vm lista--endereços ip da seguinte maneira:

az vm list-ip-addresses --resource-group myResourceGroup --name myOpenBSD61

Agora você pode SSH para sua VM OpenBSD normal:

ssh azureuser@<ip address>

Próximas etapas

Se você quiser saber mais sobre o suporte de Hyper-V em OpenBSD6.1, leia OpenBSD 6.1.

Se você quiser criar uma VM de disco gerenciado, leia disco az.