Condividi tramite


Creare e caricare un'immagine disco OpenBSD in Azure

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

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 un'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:

    doas echo dhcp > /etc/hostname.hvn0
    
  2. Configurare la console seriale:

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

    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:

    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. È possibile trovare la versione più recente dell'agente di Azure in GitHub. Installare l'agente:

    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:

    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. Eseguire il deprovisioning del sistema per pulire il sistema e renderlo idoneo per un nuovo 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. Ecco 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. Nell'esempio seguente viene creato un gruppo di risorse denominato myResourceGroup nella località 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. Nell'esempio seguente viene creato un nuovo 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 il az storage account keys list:

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:

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:

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:

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>
  • Per altre informazioni sul supporto di Hyper-V in OpenBSD 6.1, vedere OpenBSD 6.1.
  • Per creare una macchina virtuale dal disco gestito, vedere az disk.