Udostępnij za pośrednictwem


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

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

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. Poniższy przykład obejmuje 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ą listy az storage account keys:

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ż dysk VHD za pomocą polecenia az storage blob upload:

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 :

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.