Criar e carregar uma imagem de disco do OpenBSD no Azure

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

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:

Preparar imagem do OpenBSD para o Azure

Na VM onde você instalou o sistema operacional OpenBSD 6.1, que adicionou suporte ao Hyper-V, conclua os seguintes procedimentos:

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

    doas echo dhcp > /etc/hostname.hvn0
    
  2. Configure 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 é desabilitado root em máquinas virtuais no Azure. Os usuários podem executar comandos com privilégios elevados usando o doas comando na VM do OpenBSD. Doas é ativado por padrão.

  5. Instale e configure 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 Azure Agent, é recomendável verificar se ele está sendo executado 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 desprovisionamento. O comando a seguir também exclui a última conta de usuário provisionada e os dados associados:

    doas waagent -deprovision+user -force
    

Nota

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

Agora você pode desligar sua VM.

Preparar o VHD

O formato VHDX não é suportado no Azure, apenas VHD fixo. Você pode converter o disco para o formato VHD fixo usando o Gerenciador do Hyper-V ou o cmdlet convert-vhd do PowerShell. Um exemplo é o seguinte.

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

Crie recursos de armazenamento e carregue

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

az group create --name myResourceGroup --location eastus

Para carregar seu VHD, crie uma conta de armazenamento com az storage account create. Os nomes das contas de armazenamento devem ser exclusivos, 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, obtenha a chave de armazenamento com a lista de chaves da conta de armazenamento az 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 carregados, crie um contêiner dentro da conta de armazenamento com az storage container create:

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

Finalmente, carregue seu VHD com az storage blob upload 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 do VHD

Você pode criar uma VM com um script de exemplo ou diretamente com az vm create. Para especificar o VHD do OpenBSD que você carregou, use o --image parâmetro 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

Obtenha o endereço IP para sua VM do OpenBSD com az vm list-ip-addresses da seguinte maneira:

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

Agora você pode SSH para sua VM do OpenBSD normalmente:

ssh azureuser@<ip address>

Próximos passos

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

Se você quiser criar uma VM a partir do disco gerenciado, leia az disk.