Présentation de FreeBSD sur Azure

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

Cet article offre une vue d’ensemble de l’exécution d’une machine virtuelle FreeBSD dans Azure.

Vue d’ensemble

FreeBSD pour Azure est un système d’exploitation informatique avancé utilisé sur les serveurs, ordinateurs de bureau et plateformes intégrées modernes.

Microsoft rend disponibles des images de FreeBSD sur Azure avec l’agent invité de machine virtuelle Azure préconfiguré. Actuellement, les versions FreeBSD suivantes sont proposées sous forme d’images par Microsoft :

  • FreeBSD 10.4 sur la Place de marché Azure
  • FreeBSD 11.2 sur la Place de marché Azure
  • FreeBSD 11.3 sur la Place de marché Azure
  • FreeBSD 12.0 sur la Place de marché Azure

Les versions FreeBSD suivantes incluent également l’agent invité de machine virtuelle Azure. Elles sont proposées en tant qu’images par la FreeBSD Foundation :

  • FreeBSD 11.4 sur la Place de marché Azure
  • FreeBSD 12.2 sur la Place de marché Azure
  • FreeBSD 13.0 sur la Place de marché Azure

L’agent est responsable de la communication entre la machine virtuelle FreeBSD et l’a structure Azure pour les opérations telles que l’approvisionnement de la machine virtuelle à la première utilisation (nom d’utilisateur, mot de passe ou clé SSH et nom d’hôte) et l’activation de fonctionnalités pour certaines extensions de machines virtuelles.

Comme pour les versions futures de FreeBSD, la stratégie consiste à rester à jour et à rendre disponibles les dernières versions rapidement après leur publication par l’équipe d’ingénieurs de la version de FreeBSD.

Créer une machine virtuelle FreeBSD avec Azure CLI sur FreeBSD

Tout d’abord, vous devez installer Azure CLI via la commande suivante sur une machine FreeBSD :

curl -L https://aka.ms/InstallAzureCli | bash

Si bash n’est pas installé sur votre machine FreeBSD, exécutez la commande suivante avant l’installation :

sudo pkg install bash

Si Python n’est pas installé sur votre machine FreeBSD, exécutez les commandes suivantes avant l’installation :

sudo pkg install python38
cd /usr/local/bin 
sudo rm /usr/local/bin/python 
sudo ln -s /usr/local/bin/python3.8 /usr/local/bin/python

Pendant l’installation, on vous demande : Modify profile to update your $PATH and enable shell/tab completion now? (Y/n). Si vous répondez y et entrez /etc/rc.conf en tant que a path to an rc file to update, vous pouvez voir ERROR: [Errno 13] Permission denied. Pour résoudre ce problème, vous devez accorder le droit d’écriture à l’utilisateur actif pour le fichier etc/rc.conf.

Vous pouvez maintenant vous connecter à Azure et créer votre machine virtuelle FreeBSD. L’exemple suivant montre comment créer une machine virtuelle FreeBSD 11.0. Vous pouvez également ajouter le paramètre --public-ip-address-dns-name avec un nom DNS globalement unique pour une adresse IP publique nouvellement créée.

az login 
az group create --name myResourceGroup --location eastus
az vm create --name myFreeBSD11 \
    --resource-group myResourceGroup \
    --image MicrosoftOSTC:FreeBSD:11.0:latest \
    --admin-username azureuser \
    --generate-ssh-keys

Vous pouvez ensuite vous connecter à votre machine virtuelle FreeBSD via l’adresse IP qui figure dans la sortie du déploiement précédent.

ssh azureuser@xx.xx.xx.xx -i /etc/ssh/ssh_host_rsa_key

Extension de machine virtuelle pour FreeBSD

Les extensions de machine virtuelle suivantes sont prises en charge dans FreeBSD.

VMAccess

L’extension VMAccess peut :

  • Réinitialiser le mot de passe de l’utilisateur sudo d’origine.
  • Créer un nouvel utilisateur sudo avec le mot de passe spécifié.
  • Définir une clé hôte publique donnée.
  • Réinitialisez la clé d’hôte publique fournie pendant l’approvisionnement de la machine virtuelle si la clé d’hôte n’est pas fournie.
  • Ouvrez le port SSH (22) et restaurez sshd_config si reset_ssh est défini sur true.
  • Supprimer l’utilisateur existant.
  • Vérifier les disques.
  • Réparer un disque ajouté.

CustomScript

L’extension CustomScript peut :

  • Télécharger les scripts personnalisés dans le stockage Azure ou un stockage public externe (par exemple, GitHub) s’ils sont fournis.
  • Exécuter le script de point d’entrée.
  • Prendre en charge les commandes inline.
  • Convertir automatiquement le saut de ligne Windows dans des scripts Shell et Python.
  • Supprimer automatiquement les nomenclatures dans des scripts Shell et Python.
  • Protégez les données sensibles dans CommandToExecute.

Remarque

La machine virtuelle FreeBSD prend uniquement en charge CustomScript version 1.x à ce stade.

Authentification : noms d’utilisateurs, mots de passe et clés SSH

Lorsque vous créez une machine virtuelle FreeBSD avec le Portail Azure, vous devez fournir un nom d’utilisateur, un mot de passe ou une clé publique SSH.

Les noms d’utilisateur pour le déploiement d’une machine virtuelle FreeBSD sur Azure ne doivent pas correspondre aux noms des comptes système (UID <100) déjà présents dans la machine virtuelle (« root », par exemple).

Actuellement, seule la règle RSA SSH est prise en charge. Une clé SSH multiligne doit commencer par ---- BEGIN SSH2 PUBLIC KEY ---- et se terminer par ---- END SSH2 PUBLIC KEY ----.

Obtenir des privilèges de superutilisateur

Le compte utilisateur qui est spécifié pendant le déploiement de l’instance de machine virtuelle dans Azure est un compte privilégié. Le package de « sudo » a été installé dans l’image FreeBSD publiée.

Une fois connecté avec ce compte utilisateur, vous pouvez exécuter les commandes en tant que root avec la syntaxe de commande.

$ sudo <COMMAND>

Vous pouvez éventuellement obtenir un interpréteur de commandes root avec sudo -s.

Problèmes connus

L’agent invité de machine virtuelle Azure version 2.2.2 présente un problème connu qui provoque l’échec de l’approvisionnement des machines virtuelles FreeBSD sur Azure. Le correctif a été capturé par l’Agent invité de machine virtuelle Azure 2.2.3 et versions ultérieures.