Creare e caricare un'immagine disco OpenBSD in Azure

Si applica a: ✔️ Set di scalabilità flessibili di macchine virtuali ✔️ Linux

Questo articolo descrive come creare e caricare un disco rigido virtuale (VHD) che contiene il sistema operativo OpenBSD. Dopo il caricamento, è possibile usarlo come immagine personalizzata per creare una macchina virtuale in Azure tramite l'interfaccia della riga di comando di Azure.

Prerequisiti

In questo articolo si presuppone che l'utente disponga degli elementi seguenti:

Preparare l'immagine OpenBSD per Azure

Nella macchina virtuale in cui è stato installato il sistema operativo OpenBSD 6.1 con l'aggiunta del supporto Hyper-V, completare le procedure seguenti:

  1. Se DHCP non è stato abilitato durante l'installazione, abilitare il servizio come segue:

    doas echo dhcp > /etc/hostname.hvn0
    
  2. Configurare una console seriale come segue:

    doas echo "stty com0 115200" >> /etc/boot.conf
    doas echo "set tty com0" >> /etc/boot.conf
    
  3. Configurare l'installazione del pacchetto come segue:

    doas echo "https://ftp.openbsd.org/pub/OpenBSD" > /etc/installurl
    
  4. Per impostazione predefinita, l'utente root è disabilitato nelle macchine virtuali in Azure. Gli utenti possono eseguire comandi con privilegi elevati usando il comando doas nella VM OpenBSD. Doas è abilitato per impostazione predefinita.

  5. Installare e configurare i prerequisiti per l'agente di Azure come segue:

    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. La versione più recente dell'agente di Azure è sempre disponibile in GitHub. Installare l'agente come segue:

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

    Importante

    Dopo aver installato l'agente di Azure, è consigliabile verificare che sia in esecuzione come segue:

    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. Effettuare il deprovisioning del sistema per pulirlo e renderlo adatto per il deprovisioning. Il comando seguente elimina anche l'ultimo account utente di cui è stato effettuato il provisioning e i dati associati:

    doas waagent -deprovision+user -force
    

Nota

Se si esegue la migrazione di una macchina virtuale specifica e non si vuole creare un'immagine generalizzata, ignorare il passaggio di deprovisioning.

Ora è possibile arrestare la macchina virtuale.

Preparare il disco rigido virtuale

Il formato VHDX non è supportato in Azure, solo nei VHD fissi. È possibile convertire il disco in formato VHD fisso usando la console di gestione di Hyper-V o il cmdlet convert-vhd di PowerShell. Di seguito è riportato un esempio.

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

Creare e caricare risorse di archiviazione

Creare prima un gruppo di risorse con az group create. L'esempio seguente crea un gruppo di risorse denominato myResourceGroup nella posizione eastus:

az group create --name myResourceGroup --location eastus

Per caricare il disco rigido virtuale, creare un account di archiviazione con il comando az storage account create. Il nome dell'account di archiviazione deve essere univoco; assegnare quindi all'account il proprio nome. L'esempio seguente crea un account di archiviazione denominato mystorageaccount:

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

Per controllare l'accesso all'account di archiviazione, ottenere la chiave di archiviazione con az storage account keys list come segue:

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

Per separare in modo logico i dischi rigidi virtuali caricati, creare un contenitore nell'account di archiviazione con az storage container create:

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

Caricare infine il disco rigido virtuale con az storage blob upload come segue:

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

Creare una macchina virtuale dal disco rigido virtuale

È possibile creare una macchina virtuale con un script di esempio o direttamente con az vm create. Per specificare il disco rigido virtuale OpenBSD caricato, usare il parametro --image come segue:

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

Ottenere l'indirizzo IP per la VM OpenBSD con az vm list-ip-addresses come segue:

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

Ora è possibile connettersi alla VM OpenBSD tramite SSH nel modo usuale:

ssh azureuser@<ip address>

Passaggi successivi

Per altre informazioni sul supporto di Hyper-V in OpenBSD6.1, vedere OpenBSD 6.1.

Per creare una macchina virtuale dal disco gestito, vedere az disk.