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 go możesz użyć go jako własnego obrazu do utworzenia maszyny wirtualnej (VM) na platformie Azure za pomocą interfejsu Azure CLI.

Wymagania wstępne

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

  • Subskrypcja platformy Azure: jeśli nie masz konta, możesz utworzyć je za kilka minut. Jeśli masz subskrypcję MSDN, zobacz Miesięczne środki na korzystanie z platformy Azure dla subskrybentów programu Visual Studio. W przeciwnym razie dowiedz się, jak utworzyć bezpłatne konto próbne.
  • Azure CLI: upewnij się, że masz zainstalowane najnowsze narzędzie Azure CLI i że jesteś zalogowany(-a) do swojego konta platformy Azure za pomocą polecenia az login.
  • System operacyjny OpenBSD zainstalowany w pliku .vhd: Obsługiwany system operacyjny OpenBSD (wersja 6.6 AMD64) musi być zainstalowany w pliku VHD. Istnieje wiele narzędzi do tworzenia plików vhd. Na przykład można użyć rozwiązania wirtualizacji, takiego jak funkcja Hyper-V, aby utworzyć plik vhd i zainstalować system operacyjny. Aby uzyskać instrukcje dotyczące sposobu instalowania i używania funkcji Hyper-V, zobacz Instalowanie funkcji Hyper-V i tworzenie maszyny wirtualnej.

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ę:

    doas echo dhcp > /etc/hostname.hvn0
    
  2. Skonfiguruj konsolę szeregową:

    doas echo "stty com0 115200" >> /etc/boot.conf
    doas echo "set tty com0" >> /etc/boot.conf
    
  3. Konfigurowanie instalacji pakietu:

    doas echo "https://ftp.openbsd.org/pub/OpenBSD" > /etc/installurl
    
  4. Domyślnie konto użytkownika root jest wyłączone na maszynach wirtualnych platformy 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 agenta platformy 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. Najnowszą wersję agenta platformy Azure można znaleźć w usłudze GitHub. Zainstaluj agenta:

    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:

    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 konkretną maszynę wirtualną i nie chcesz tworzyć uogólnionego obrazu, pomiń krok dezaprowizowania.

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

Przygotuj dysk VHD

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. Oto przykład:

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

Utwórz zasoby magazynu i prześlij pliki

Najpierw utwórz grupę zasobów za pomocą polecenia az group create. Poniższy przykład obejmuje tworzenie grupy zasobów o nazwie myResourceGroup w lokalizacji eastus:

az group create --name myResourceGroup --location eastus

Aby przesłać plik VHD, utwórz konto magazynu za pomocą polecenia az storage account create. Nazwy kont magazynowych muszą być unikalne, więc 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:

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

Aby logicznie oddzielić przesyłane dyski VHD, utwórz kontener w ramach konta magazynu za pomocą polecenia az storage container create:

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

Na koniec prześlij swój plik VHD za pomocą az storage blob upload:

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

Utwórz maszynę wirtualną z dysku VHD

Maszynę wirtualną można utworzyć przy użyciu przykładowego skryptu lub bezpośrednio za pomocą polecenia az vm create. Aby wskazać przesłany dysk VHD systemu OpenBSD, użyj parametru --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

Uzyskaj adres IP maszyny wirtualnej OpenBSD za pomocą polecenia az vm list-ip-addresses:

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>
  • Aby dowiedzieć się więcej o obsłudze funkcji Hyper-V w systemie OpenBSD 6.1, przeczytaj OpenBSD 6.1.
  • Aby utworzyć maszynę wirtualną na podstawie dysku zarządzanego, przeczytaj az disk.