Créer et charger une image de disque OpenBSD sur Azure

S’applique à : ✔️ Machines virtuelles Linux ✔️ Groupes identiques flexibles

Cet article montre comment créer et charger un disque dur virtuel (VHD) contenant le système d’exploitation OpenBSD. Après l’avoir chargé, vous pouvez l’utiliser comme image personnelle pour créer une machine virtuelle (VM) dans Azure via Azure CLI.

Prérequis

Cet article part du principe que vous disposez des éléments suivants :

  • Abonnement Azure : si vous ne possédez pas de compte, vous pouvez en créer un en quelques minutes. Si vous disposez d’un abonnement MSDN, consultez Crédit Azure mensuel pour les abonnés Visual Studio. Dans le cas contraire, découvrez comment créer un compte d'essai gratuit.
  • Azure CLI : Vérifiez que vous avez installé la dernière version d’Azure CLI et que vous êtes connecté à votre compte Azure avec az login.
  • Système d’exploitation OpenBSD installé dans un fichier .vhd : un système d’exploitation OpenBSD pris en charge (version 6.6 AMD64) doit être installé sur un disque dur virtuel. Plusieurs outils permettent de créer des fichiers .vhd. Par exemple, vous pouvez utiliser une solution de virtualisation comme Hyper-V pour créer le fichier .vhd et installer le système d'exploitation. Pour obtenir des instructions pour installer et utiliser Hyper-V, consultez la page Installer Hyper-V et créer une machine virtuelle.

Préparer l’image OpenBSD pour Azure

Sur la machine virtuelle sur laquelle vous avez installé le système d’exploitation OpenBSD 6.1, qui a ajouté la prise en charge de Hyper-V, procédez comme suit :

  1. Si le protocole DHCP n’est pas activé lors de l’installation, activez le service comme suit :

    doas echo dhcp > /etc/hostname.hvn0
    
  2. Configurez une console série comme suit :

    doas echo "stty com0 115200" >> /etc/boot.conf
    doas echo "set tty com0" >> /etc/boot.conf
    
  3. Configurez l’installation du package comme suit :

    doas echo "https://ftp.openbsd.org/pub/OpenBSD" > /etc/installurl
    
  4. Par défaut, l’utilisateur root est désactivé sur les machines virtuelles dans Microsoft Azure. Les utilisateurs peuvent exécuter des commandes avec des privilèges élevés à l’aide de la commande doas sur une machine virtuelle OpenBSD. Doas est activé par défaut.

  5. Installez et configurez les éléments requis pour l’agent Azure comme suit :

    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 dernière version de l’agent Azure se trouve toujours sur GitHub. Installez l’agent comme suit :

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

    Important

    Après avoir installé l’agent Azure, il est judicieux de vérifier qu’il s’exécute comme suit :

    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. Déprovisionner le système pour le nettoyer et le préparer pour son déprovisionnement. La commande suivante supprime également le dernier compte d'utilisateur alloué et les données associées :

    doas waagent -deprovision+user -force
    

Notes

Si vous migrez une machine virtuelle spécifique et que vous ne souhaitez pas créer d’image généralisée, ignorez l’étape de déprovisionnement.

Vous pouvez à présent arrêter votre machine virtuelle.

Préparer le disque dur virtuel

Azure ne prend pas en charge le format VHDX, seulement le VHD fixe. Vous pouvez convertir le disque au format VHD fixe à l’aide du Gestionnaire Hyper-V ou de l’applet de commande PowerShell convert-vhd. Voici un exemple.

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

Créer des ressources de stockage et charger

Tout d’abord, créez un groupe de ressources avec la commande az group create. L’exemple suivant crée un groupe de ressources nommé myResourceGroup à l’emplacement eastus :

az group create --name myResourceGroup --location eastus

Pour charger votre disque dur virtuel, créez un compte de stockage avec la commande az storage account create. Le nom du compte de stockage devant être unique, entrez votre propre nom. L’exemple qui suit permet de créer un compte de stockage nommé mystorageaccount :

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

Pour contrôler l’accès au compte de stockage, obtenez la clé de stockage avec la commande az storage account keys list comme suit :

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

Pour séparer logiquement les disques durs virtuels que vous chargez, créez un conteneur dans le compte de stockage avec la commande az storage container create :

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

Enfin, chargez votre disque dur virtuel avec la commande az storage blob upload comme suit :

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

Créer la machine virtuelle à partir de votre disque dur virtuel

Vous pouvez créer une machine virtuelle avec un exemple de script ou directement avec la commande az vm create. Pour spécifier le disque dur virtuel OpenBSD que vous avez chargé, utilisez le paramètre --image comme suit :

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

Obtenez l’adresse IP de votre machine virtuelle OpenBSD avec la commande az vm list-ip-addresses comme suit :

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

Vous pouvez désormais appliquer clé SSH à votre machine virtuelle OpenBSD comme d’habitude :

ssh azureuser@<ip address>

Étapes suivantes

Pour en savoir plus sur la prise en charge de Hyper-V sur OpenBSD6.1, voir OpenBSD 6.1.

Pour savoir comment créer une machine virtuelle à partir d’un disque géré, voir az disk.