Tworzenie i przekazywanie obrazu dysku OpenBSD na platformę Azure

Dotyczy: ✔️ Maszyny wirtualne z systemem Linux — elastyczne zestawy skalowania ✔️

W tym artykule pokazano, jak utworzyć i przekazać wirtualny dysk twardy (VHD), który zawiera system operacyjny OpenBSD. Po przekazaniu możesz użyć go jako własnego obrazu, aby utworzyć maszynę wirtualną na platformie Azure za pomocą interfejsu wiersza polecenia platformy Azure.

Wymagania wstępne

W tym artykule założono, że masz następujące elementy:

Przygotowywanie obrazu OpenBSD dla platformy Azure

Na maszynie wirtualnej, na której zainstalowano system operacyjny OpenBSD 6.1, który dodał obsługę funkcji Hyper-V, wykonaj następujące procedury:

  1. Jeśli protokół DHCP nie jest włączony podczas instalacji, włącz usługę w następujący sposób:

    doas echo dhcp > /etc/hostname.hvn0
    
  2. Skonfiguruj konsolę szeregową w następujący sposób:

    doas echo "stty com0 115200" >> /etc/boot.conf
    doas echo "set tty com0" >> /etc/boot.conf
    
  3. Skonfiguruj instalację pakietu w następujący sposób:

    doas echo "https://ftp.openbsd.org/pub/OpenBSD" > /etc/installurl
    
  4. Domyślnie root użytkownik jest wyłączony na maszynach wirtualnych na platformie Azure. Użytkownicy mogą uruchamiać polecenia z podwyższonym poziomem uprawnień przy użyciu polecenia na maszynie doas wirtualnej OpenBSD. Doas jest domyślnie włączony.

  5. Zainstaluj i skonfiguruj wymagania wstępne dla agenta platformy Azure w następujący sposób:

    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. Najnowszą wersję agenta platformy Azure można zawsze znaleźć w witrynie GitHub. Zainstaluj agenta w następujący sposób:

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

    Ważne

    Po zainstalowaniu agenta platformy Azure warto sprawdzić, czy działa w następujący sposób:

    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. Anuluj aprowizowanie systemu, aby go wyczyścić i uczynić go odpowiednim do anulowania aprowizacji. Następujące polecenie usuwa również ostatnie aprowizowane konto użytkownika i skojarzone dane:

    doas waagent -deprovision+user -force
    

Uwaga

Jeśli migrujesz określoną maszynę wirtualną i nie chcesz tworzyć uogólnionego obrazu, pomiń krok anulowania aprowizacji.

Teraz możesz zamknąć maszynę wirtualną.

Przygotowywanie wirtualnego dysku twardego

Format VHDX nie jest obsługiwany na platformie Azure, tylko stały dysk VHD. Dysk można przekonwertować na stały format VHD przy użyciu Menedżera funkcji Hyper-V lub polecenia cmdlet konwertuj-vhd programu PowerShell. Przykład jest następujący.

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

Tworzenie zasobów magazynu i przekazywanie

Najpierw utwórz grupę zasobów za pomocą polecenia az group create. W poniższym przykładzie pokazano tworzenie grupy zasobów o nazwie myResourceGroup w lokalizacji eastus:

az group create --name myResourceGroup --location eastus

Aby przekazać dysk VHD, utwórz konto magazynu za pomocą polecenia az storage account create. Nazwy kont magazynu muszą być unikatowe, dlatego podaj własną nazwę. Poniższy przykład tworzy konto magazynu o nazwie mystorageaccount:

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

Aby kontrolować dostęp do konta magazynu, uzyskaj klucz magazynu za pomocą polecenia az storage account keys list w następujący sposób:

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

Aby logicznie oddzielić przekazywane wirtualne dyski twarde, utwórz kontener na koncie magazynu za pomocą polecenia az storage container create:

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

Na koniec przekaż wirtualny dysk twardy za pomocą polecenia az storage blob upload w następujący sposób:

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

Tworzenie maszyny wirtualnej na podstawie wirtualnego dysku twardego

Maszynę wirtualną można utworzyć przy użyciu przykładowego skryptu lub bezpośrednio za pomocą polecenia az vm create. Aby określić przekazany dysk VHD openBSD, użyj parametru --image w następujący sposób:

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

Uzyskaj adres IP maszyny wirtualnej OpenBSD za pomocą polecenia az vm list-ip-addresses w następujący sposób:

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

Teraz możesz połączyć się przy użyciu protokołu SSH z maszyną wirtualną OpenBSD w zwykły sposób:

ssh azureuser@<ip address>

Następne kroki

Jeśli chcesz dowiedzieć się więcej o obsłudze funkcji Hyper-V w systemie OpenBSD6.1, przeczytaj OpenBSD 6.1.

Jeśli chcesz utworzyć maszynę wirtualną na podstawie dysku zarządzanego, przeczytaj az disk.